diff options
Diffstat (limited to '3rdparty/asmjit/test/asmjit_test_assembler.h')
-rw-r--r-- | 3rdparty/asmjit/test/asmjit_test_assembler.h | 29 |
1 files changed, 26 insertions, 3 deletions
diff --git a/3rdparty/asmjit/test/asmjit_test_assembler.h b/3rdparty/asmjit/test/asmjit_test_assembler.h index 61d774bbb1d..26f2c97ed98 100644 --- a/3rdparty/asmjit/test/asmjit_test_assembler.h +++ b/3rdparty/asmjit/test/asmjit_test_assembler.h @@ -10,7 +10,7 @@ #include <stdio.h> struct TestSettings { - bool quiet; + bool verbose; bool validate; }; @@ -52,7 +52,7 @@ public: assembler.addDiagnosticOptions(asmjit::DiagnosticOptions::kValidateAssembler); } - ASMJIT_NOINLINE bool testInstruction(const char* expectedOpcode, const char* s, uint32_t err) noexcept { + ASMJIT_NOINLINE bool testValidInstruction(const char* s, const char* expectedOpcode, asmjit::Error err = asmjit::kErrorOk) noexcept { count++; if (err) { @@ -73,13 +73,36 @@ public: return false; } - if (!settings.quiet) + if (settings.verbose) printf(" OK [%s] <- %s\n", encodedOpcode.data(), s); passed++; prepare(); return true; } + + ASMJIT_NOINLINE bool testInvalidInstruction(const char* s, asmjit::Error expectedError, asmjit::Error err) noexcept { + count++; + + if (err == asmjit::kErrorOk) { + printf(" !! %s passed, but should have failed with <%s> error\n", s, asmjit::DebugUtils::errorAsString(expectedError)); + prepare(); + return false; + } + + if (err != asmjit::kErrorOk) { + printf(" !! %s failed with <%s>, but should have failed with <%s>\n", s, asmjit::DebugUtils::errorAsString(err), asmjit::DebugUtils::errorAsString(expectedError)); + prepare(); + return false; + } + + if (settings.verbose) + printf(" OK [%s] <- %s\n", asmjit::DebugUtils::errorAsString(err), s); + + passed++; + prepare(); + return true; + } }; #endif // ASMJIT_TEST_ASSEMBLER_H_INCLUDED |