xref: /aosp_15_r20/external/marisa-trie/tests/marisa-assert.h (revision ab8db090fce404b23716c4c9194221ee27efe31c)
1*ab8db090SAndroid Build Coastguard Worker #ifndef MARISA_ASSERT_H_
2*ab8db090SAndroid Build Coastguard Worker #define MARISA_ASSERT_H_
3*ab8db090SAndroid Build Coastguard Worker 
4*ab8db090SAndroid Build Coastguard Worker #include <iostream>
5*ab8db090SAndroid Build Coastguard Worker #include <cstdlib>
6*ab8db090SAndroid Build Coastguard Worker 
7*ab8db090SAndroid Build Coastguard Worker #define ASSERT(cond) (void)((!!(cond)) || \
8*ab8db090SAndroid Build Coastguard Worker   ((std::cout << __LINE__ << ": Assertion `" << #cond << "' failed." \
9*ab8db090SAndroid Build Coastguard Worker       << std::endl), std::exit(-1), 0))
10*ab8db090SAndroid Build Coastguard Worker 
11*ab8db090SAndroid Build Coastguard Worker #define EXCEPT(code, expected_error_code) try { \
12*ab8db090SAndroid Build Coastguard Worker   code; \
13*ab8db090SAndroid Build Coastguard Worker   std::cout << __LINE__ << ": Exception `" << #code << "' failed." \
14*ab8db090SAndroid Build Coastguard Worker       << std::endl; \
15*ab8db090SAndroid Build Coastguard Worker   std::exit(-1); \
16*ab8db090SAndroid Build Coastguard Worker } catch (const marisa::Exception &ex) { \
17*ab8db090SAndroid Build Coastguard Worker   ASSERT(ex.error_code() == expected_error_code); \
18*ab8db090SAndroid Build Coastguard Worker }
19*ab8db090SAndroid Build Coastguard Worker 
20*ab8db090SAndroid Build Coastguard Worker #define TEST_START() \
21*ab8db090SAndroid Build Coastguard Worker   (std::cout << __FILE__ << ":" << __LINE__ << ": " << __FUNCTION__ << "(): ")
22*ab8db090SAndroid Build Coastguard Worker 
23*ab8db090SAndroid Build Coastguard Worker #define TEST_END() \
24*ab8db090SAndroid Build Coastguard Worker   (std::cout << "ok" << std::endl)
25*ab8db090SAndroid Build Coastguard Worker 
26*ab8db090SAndroid Build Coastguard Worker #endif  // MARISA_ASSERT_H_
27