/ tests / assumes.c
assumes.c
 1  #define OS_CRASH_ENABLE_EXPERIMENTAL_LIBTRACE 1
 2  #include <os/assumes.h>
 3  
 4  #include <darwintest.h>
 5  
 6  void os_crash_function(const char *message);
 7  
 8  static const char *expected_message = NULL;
 9  
10  void os_crash_function(const char *message) {
11  	if (expected_message) {
12  		T_ASSERT_EQ_STR(message, expected_message, NULL);
13  		T_END;
14  	} else {
15  		T_PASS("Got crash message: %s", message);
16  		T_END;
17  	}
18  }
19  
20  T_DECL(os_crash_sanity, "sanity check for os_crash")
21  {
22  	expected_message = "My AWESOME assertion message.";
23  	os_crash(expected_message);
24  }
25  
26  extern int two;
27  int two = 2;
28  
29  T_DECL(os_assert_no_msg, "sanity check for os_assert w/o a message")
30  {
31  	expected_message = "assertion failure: \"two + two == 5\" -> %lld";
32  	os_assert(two + two == 5);
33  }
34  
35  #define DOGMA "Today, we celebrate the first glorious anniversary of the Information Purification Directives."
36  T_DECL(os_assert_msg, "sanity check for os_assert with a message")
37  {
38  	expected_message = "assertion failure: " DOGMA;
39  	os_assert(two + two == 5, DOGMA);
40  }