38 lines
1 KiB
D
38 lines
1 KiB
D
|
|
// Copyright Ferdinand Majerech 2011.
|
|
// Distributed under the Boost Software License, Version 1.0.
|
|
// (See accompanying file LICENSE_1_0.txt or copy at
|
|
// http://www.boost.org/LICENSE_1_0.txt)
|
|
|
|
module dyaml.test.reader;
|
|
|
|
@safe unittest
|
|
{
|
|
import std.exception :assertThrown;
|
|
|
|
import dyaml.test.common : readData, run;
|
|
import dyaml.reader : Reader, ReaderException;
|
|
|
|
/**
|
|
Try reading entire file through Reader, expecting an error (the file is invalid).
|
|
|
|
Params: data = Stream to read.
|
|
*/
|
|
static void runReader(ubyte[] fileData) @safe
|
|
{
|
|
auto reader = new Reader(fileData);
|
|
while(reader.peek() != '\0') { reader.forward(); }
|
|
}
|
|
|
|
/**
|
|
Stream error unittest. Tries to read invalid input files, expecting errors.
|
|
|
|
Params: errorFilename = File name to read from.
|
|
*/
|
|
static void testStreamError(string errorFilename) @safe
|
|
{
|
|
assertThrown!ReaderException(runReader(readData(errorFilename)));
|
|
}
|
|
run(&testStreamError, ["stream-error"]);
|
|
}
|