libcxxrt

git clone https://git.neptards.moe/neptards/libcxxrt.git
Log | Files | Refs | README | LICENSE

test.cc (917B)


      1 #include <stdio.h>
      2 #include <stdlib.h>
      3 #include <unistd.h>
      4 
      5 
      6 static int succeeded;
      7 static int failed;
      8 static bool verbose;
      9 
     10 void log_test(bool predicate, const char *file, int line, const char *message)
     11 {
     12 	if (predicate)
     13 	{
     14 		if (verbose)
     15 		{
     16 			printf("Test passed: %s:%d: %s\n", file, line, message);
     17 		}
     18 		succeeded++;
     19 		return;
     20 	}
     21 	failed++;
     22 	printf("Test failed: %s:%d: %s\n", file, line, message);
     23 }
     24 
     25 static void log_totals(void)
     26 {
     27 	printf("\n%d tests, %d passed, %d failed\n", succeeded+failed, succeeded, failed);
     28 }
     29 
     30 static void __attribute__((constructor)) init(void)
     31 {
     32 	atexit(log_totals);
     33 }
     34 
     35 void test_type_info(void);
     36 void test_exceptions();
     37 void test_guards(void);
     38 int main(int argc, char **argv)
     39 {
     40 	int ch;
     41 
     42 	while ((ch = getopt(argc, argv, "v")) != -1)
     43 	{
     44 		switch (ch)
     45 		{
     46 			case 'v':
     47 				verbose = true;
     48 			default: break;
     49 		}
     50 	}
     51 
     52 	test_type_info();
     53 	test_guards();
     54 	test_exceptions();
     55 	return 0;
     56 }