ucg/std/testing.ucg

62 lines
1.7 KiB
Plaintext

// A module with helper test assertions for ucg tests.
// Each contained module will output a struct with
// ok and desc fields.
//
// ok will be a boolean.
// desc will be a descriptive message.
let asserts = module{
// allows you to specify a a prefix for messages.
// specify the prefix to add when the condition is not true.
// A default description to use for messages.
default_description = "TODO description",
} => {
// Test that a value is true.
let ok = module{
// test value expected to be true for success.
test=false,
// descriptive message to use in output.
desc=mod.default_description,
} => {
let ok = mod.test;
let desc = "@" % (mod.desc);
};
// Test that a value is not true.
let not_ok = module{
// Test value expected to to be false for success.
test=true,
// descriptive message to use in output.
desc=mod.default_description,
} => {
let ok = mod.test != true;
let desc = "@" % (mod.desc);
};
// Asserts that two values are equal. Does deep equal comparisons.
let equal = module{
// Left value for deep equal comparison.
left=NULL,
// right value for deep equal comparison.
right=NULL,
} => {
let ok = mod.left == mod.right;
let desc = "@ == @" % (mod.left, mod.right);
};
// Asserts that two values are not equal. Does deep equal comparisons.
let not_equal = module{
// Left value for deep equal comparison.
left=NULL,
// right value for deep equal comparison.
right=NULL,
} => {
let ok = mod.left != mod.right;
let desc = "@ != @" % (mod.left, mod.right);
};
};