Move VMX's assert macros to the top of vmx.h so that they can be used in inlined helpers. Signed-off-by: Sean Christopherson <seanjc@xxxxxxxxxx> --- x86/vmx.h | 110 +++++++++++++++++++++++++++--------------------------- 1 file changed, 55 insertions(+), 55 deletions(-) diff --git a/x86/vmx.h b/x86/vmx.h index 472b28a..c1a8f6a 100644 --- a/x86/vmx.h +++ b/x86/vmx.h @@ -7,6 +7,61 @@ #include "asm/page.h" #include "asm/io.h" +void __abort_test(void); + +#define TEST_ASSERT(cond) \ +do { \ + if (!(cond)) { \ + report_fail("%s:%d: Assertion failed: %s", \ + __FILE__, __LINE__, #cond); \ + dump_stack(); \ + __abort_test(); \ + } \ + report_passed(); \ +} while (0) + +#define TEST_ASSERT_MSG(cond, fmt, args...) \ +do { \ + if (!(cond)) { \ + report_fail("%s:%d: Assertion failed: %s\n" fmt,\ + __FILE__, __LINE__, #cond, ##args); \ + dump_stack(); \ + __abort_test(); \ + } \ + report_passed(); \ +} while (0) + +#define __TEST_EQ(a, b, a_str, b_str, assertion, fmt, args...) \ +do { \ + typeof(a) _a = a; \ + typeof(b) _b = b; \ + if (_a != _b) { \ + char _bin_a[BINSTR_SZ]; \ + char _bin_b[BINSTR_SZ]; \ + binstr(_a, _bin_a); \ + binstr(_b, _bin_b); \ + report_fail("%s:%d: %s failed: (%s) == (%s)\n" \ + "\tLHS: %#018lx - %s - %lu\n" \ + "\tRHS: %#018lx - %s - %lu%s" fmt, \ + __FILE__, __LINE__, \ + assertion ? "Assertion" : "Expectation", a_str, b_str, \ + (unsigned long) _a, _bin_a, (unsigned long) _a, \ + (unsigned long) _b, _bin_b, (unsigned long) _b, \ + fmt[0] == '\0' ? "" : "\n", ## args); \ + dump_stack(); \ + if (assertion) \ + __abort_test(); \ + } \ + report_passed(); \ +} while (0) + +#define TEST_ASSERT_EQ(a, b) __TEST_EQ(a, b, #a, #b, 1, "") +#define TEST_ASSERT_EQ_MSG(a, b, fmt, args...) \ + __TEST_EQ(a, b, #a, #b, 1, fmt, ## args) +#define TEST_EXPECT_EQ(a, b) __TEST_EQ(a, b, #a, #b, 0, "") +#define TEST_EXPECT_EQ_MSG(a, b, fmt, args...) \ + __TEST_EQ(a, b, #a, #b, 0, fmt, ## args) + struct vmcs_hdr { u32 revision_id:31; u32 shadow_vmcs:1; @@ -926,59 +981,4 @@ void test_set_guest(test_guest_func func); void test_add_teardown(test_teardown_func func, void *data); void test_skip(const char *msg); -void __abort_test(void); - -#define TEST_ASSERT(cond) \ -do { \ - if (!(cond)) { \ - report_fail("%s:%d: Assertion failed: %s", \ - __FILE__, __LINE__, #cond); \ - dump_stack(); \ - __abort_test(); \ - } \ - report_passed(); \ -} while (0) - -#define TEST_ASSERT_MSG(cond, fmt, args...) \ -do { \ - if (!(cond)) { \ - report_fail("%s:%d: Assertion failed: %s\n" fmt, \ - __FILE__, __LINE__, #cond, ##args); \ - dump_stack(); \ - __abort_test(); \ - } \ - report_passed(); \ -} while (0) - -#define __TEST_EQ(a, b, a_str, b_str, assertion, fmt, args...) \ -do { \ - typeof(a) _a = a; \ - typeof(b) _b = b; \ - if (_a != _b) { \ - char _bin_a[BINSTR_SZ]; \ - char _bin_b[BINSTR_SZ]; \ - binstr(_a, _bin_a); \ - binstr(_b, _bin_b); \ - report_fail("%s:%d: %s failed: (%s) == (%s)\n" \ - "\tLHS: %#018lx - %s - %lu\n" \ - "\tRHS: %#018lx - %s - %lu%s" fmt, \ - __FILE__, __LINE__, \ - assertion ? "Assertion" : "Expectation", a_str, b_str, \ - (unsigned long) _a, _bin_a, (unsigned long) _a, \ - (unsigned long) _b, _bin_b, (unsigned long) _b, \ - fmt[0] == '\0' ? "" : "\n", ## args); \ - dump_stack(); \ - if (assertion) \ - __abort_test(); \ - } \ - report_passed(); \ -} while (0) - -#define TEST_ASSERT_EQ(a, b) __TEST_EQ(a, b, #a, #b, 1, "") -#define TEST_ASSERT_EQ_MSG(a, b, fmt, args...) \ - __TEST_EQ(a, b, #a, #b, 1, fmt, ## args) -#define TEST_EXPECT_EQ(a, b) __TEST_EQ(a, b, #a, #b, 0, "") -#define TEST_EXPECT_EQ_MSG(a, b, fmt, args...) \ - __TEST_EQ(a, b, #a, #b, 0, fmt, ## args) - #endif -- 2.34.0.rc2.393.gf8c9666880-goog