11 void foo_invariant (struct foo
* self
, int depth
, const char* file
, int line
)
15 INVARIANT_ASSERT(self
->b
!= 7);
18 foo_invariant (self
->bar
, depth
-1, file
, line
);
21 void foo_dump (struct foo
* self
, int depth
, const char* file
, int line
)
25 DUMP_LOG("dump b is %d", self
->b
);
28 foo_dump (self
->bar
, depth
-1, file
, line
);
31 NOBUG_DEFINE_FLAG(test
);
33 int main(int argc
, char* argv
[])
37 NOBUG_INIT_FLAG(test
);
42 fprintf (stderr
, "testing %d\n", c
);
47 REQUIRE(c
!= 2, "require %d failed", c
);
50 ENSURE(c
!= 4, "ensure %d failed", c
);
52 ASSERT(c
!= 5, "assert5");
53 ASSERT(c
!= 6, "assert", "assert %d failed", c
);
60 INVARIANT(foo
, &f
, 2);
62 ERROR(test
, "logging");
63 ERROR(test
, "logging %d", c
);
65 WARN_IF(c
==8, test
, "logging = 8");
66 TRACE_IF(c
==9, test
, "logging if %d=9", c
);
69 DUMP_IF(c
==10, foo
, &f
, 2);
72 UNIMPLEMENTED("this is unimplemented");
75 PLANNED("this is planned");
81 TODO("something todo");