8 #include "gtest/gtest.h"
9 #include "sw/device/lib/base/status.h"
10 #include "sw/device/lib/base/status_report_unittest_c.h"
12 namespace status_list_unittest {
16 std::vector<status_t> StatusList;
19 extern "C" void status_report(
status_t code) { StatusList.push_back(code); }
25 status_create(absl_status_t::kOk, 0,
"", 654321),
29 status_create(absl_status_t::kPermissionDenied,
30 MAKE_MODULE_ID(
'p',
's',
'y'),
"", 21),
36 status_create(absl_status_t::kAborted, MAKE_MODULE_ID(
'u',
'n',
't'),
"",
41 status_create(absl_status_t::kAborted, MAKE_MODULE_ID(
't',
'h',
'k'),
"",
49 std::stringstream oss;
50 if (status_extract(
status, &message, &arg, mod_id)) {
52 oss << message <<
"(" << arg <<
") in " << mod_id;
54 oss <<
"Ok(" << arg <<
")";
59 TEST(StackTrace, Trace) {
66 EXPECT_EQ(StatusList.size(),
ARRAYSIZE(kExpectedList));
68 for (
size_t i = 0; i < StatusList.size(); i++) {
69 EXPECT_EQ(StatusList[i].value, kExpectedList[i].value)
70 <<
"GOT " << status_to_string(StatusList[i]) <<
", EXPECTED "
71 << status_to_string(kExpectedList[i]);