NOVA User-Level Environment  Version testbox/changed-memory-timing-317-g320d8b5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
wvtest.h File Reference
#include <nul/error.h>
#include <nul/parent.h>
#include <service/vprintf.h>
#include <service/string.h>
#include <service/logging.h>
#include <nul/baseprogram.h>

Classes

class  WvTest
struct  WvTest::NulErr
struct  WvTest::NovaErr

Macros

#define WVTEST_PRINT_INFO_BEFORE   0
#define WVSTART(title)   Logging::printf("Testing \"%s\" in %s:%d:\n", title, WvTest::repo_rel_path(__FILE__), __LINE__);
#define WVPASS(cond)   ({ WvTest __t(__FILE__, __LINE__, #cond); __t.check(cond); })
#define WVNUL(nulerr)   ({ WvTest __t(__FILE__, __LINE__, #nulerr); __t.check_nulerr(nulerr); })
#define WVNOVA(novaerr)   ({ WvTest __t(__FILE__, __LINE__, #novaerr); __t.check_novaerr(novaerr); })
#define WVPASSEQ(a, b)   ({ WvTest __t(__FILE__, __LINE__, #a " == " #b); __t.check_eq((a), (b), true); })
#define WVPASSLT(a, b)   ({ WvTest __t(__FILE__, __LINE__, #a " < " #b); __t.check_lt((a), (b)); })
#define WVPASSGE(a, b)   ({ WvTest __t(__FILE__, __LINE__, #a " >= " #b); __t.check_le((b), (a)); })
#define WVFAIL(cond)   ({ WvTest __t(__FILE__, __LINE__, "NOT(" #cond ")"); !__t.check(!(cond)); })
#define WVFAILEQ(a, b)   ({ WvTest __t(__FILE__, __LINE__, #a " != " #b); __t.check_eq((a), (b), false); })
#define WVPASSNE(a, b)   WVFAILEQ(a, b)
#define WVFAILNE(a, b)   WVPASSEQ(a, b)
#define WVPERF(value, units)   ({ WvTest __t(__FILE__, __LINE__, "PERF: " #value); __t.check_perf(value, units); })
#define WV(code)   ({ WvTest __t(__FILE__, __LINE__, #code); __t.check(true); code; })
#define WVSHOW(val)   ({ WvTest __t(__FILE__, __LINE__, #val); __t.show(val); })
#define WVSHOWHEX(val)   ({ WvTest __t(__FILE__, __LINE__, #val); __t.show_hex(val); })
#define WVPRINTF(fmt,...)   Logging::printf("! %s:%d " fmt " ok\n", WvTest::repo_rel_path(__FILE__), __LINE__, ##__VA_ARGS__)
#define ER(x)   case x: return #x
#define ER(x)   case NOVA_##x: return #x

Macro Definition Documentation

#define ER (   x)    case x: return #x
#define ER (   x)    case NOVA_##x: return #x
#define WV (   code)    ({ WvTest __t(__FILE__, __LINE__, #code); __t.check(true); code; })
#define WVFAIL (   cond)    ({ WvTest __t(__FILE__, __LINE__, "NOT(" #cond ")"); !__t.check(!(cond)); })
#define WVFAILEQ (   a,
 
)    ({ WvTest __t(__FILE__, __LINE__, #a " != " #b); __t.check_eq((a), (b), false); })
#define WVFAILNE (   a,
 
)    WVPASSEQ(a, b)
#define WVNOVA (   novaerr)    ({ WvTest __t(__FILE__, __LINE__, #novaerr); __t.check_novaerr(novaerr); })
#define WVNUL (   nulerr)    ({ WvTest __t(__FILE__, __LINE__, #nulerr); __t.check_nulerr(nulerr); })
#define WVPASS (   cond)    ({ WvTest __t(__FILE__, __LINE__, #cond); __t.check(cond); })
#define WVPASSEQ (   a,
 
)    ({ WvTest __t(__FILE__, __LINE__, #a " == " #b); __t.check_eq((a), (b), true); })
#define WVPASSGE (   a,
 
)    ({ WvTest __t(__FILE__, __LINE__, #a " >= " #b); __t.check_le((b), (a)); })
#define WVPASSLT (   a,
 
)    ({ WvTest __t(__FILE__, __LINE__, #a " < " #b); __t.check_lt((a), (b)); })
#define WVPASSNE (   a,
 
)    WVFAILEQ(a, b)
#define WVPERF (   value,
  units 
)    ({ WvTest __t(__FILE__, __LINE__, "PERF: " #value); __t.check_perf(value, units); })
#define WVPRINTF (   fmt,
  ... 
)    Logging::printf("! %s:%d " fmt " ok\n", WvTest::repo_rel_path(__FILE__), __LINE__, ##__VA_ARGS__)
#define WVSHOW (   val)    ({ WvTest __t(__FILE__, __LINE__, #val); __t.show(val); })
#define WVSHOWHEX (   val)    ({ WvTest __t(__FILE__, __LINE__, #val); __t.show_hex(val); })
#define WVSTART (   title)    Logging::printf("Testing \"%s\" in %s:%d:\n", title, WvTest::repo_rel_path(__FILE__), __LINE__);
#define WVTEST_PRINT_INFO_BEFORE   0