summaryrefslogtreecommitdiffstatshomepage
path: root/3rdparty/asmjit/test/asmjit_test_assembler.h
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/asmjit/test/asmjit_test_assembler.h')
-rw-r--r--3rdparty/asmjit/test/asmjit_test_assembler.h29
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