// 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.testreader; import dyaml.testcommon; import dyaml.reader; // Try reading entire file through Reader, expecting an error (the file is invalid). // // Params: verbose = Print verbose output? // data = Stream to read. void runReader(const bool verbose, void[] fileData) { try { auto reader = new Reader(cast(ubyte[])fileData); while(reader.peek() != '\0') { reader.forward(); } } catch(ReaderException e) { if(verbose) { writeln(typeid(e).toString(), "\n", e); } return; } assert(false, "Expected an exception"); } /// Stream error unittest. Tries to read invalid input files, expecting errors. /// /// Params: verbose = Print verbose output? /// errorFilename = File name to read from. void testStreamError(bool verbose, string errorFilename) { import std.file; runReader(verbose, std.file.read(errorFilename)); } unittest { writeln("D:YAML Reader unittest"); run("testStreamError", &testStreamError, ["stream-error"]); }