module common;
import std.conv : text;
import std.stdio : File, stdout, stderr;
/// Name of the log file
enum logFile = "test.log";
/// has true if some test fails
bool any_errors = false;
/// prints (non error) message to standard output and log file
void log(Args...)(Args args)
if (Args.length)
{
const str = text("[INFO] ", args);
version(Windows) stdout.writeln(str);
else stdout.writeln("\033[0;33m", str, "\033[0m");
stdout.flush;
File(logFile, "a").writeln(str);
}
/// prints error message to standard error stream and log file
/// and set any_errors var to true value to indicate that some
/// test fails
void logError(Args...)(Args args)
{
const str = text("[ERROR] ", args);
version(Windows) stderr.writeln(str);
else stderr.writeln("\033[0;31m", str, "\033[0m");
stderr.flush;
File(logFile, "a").writeln(str);
any_errors = true;
}
void die(Args...)(Args args)
{
stderr.writeln(args);
throw new Exception("Test failed");
}