pcsx2/tests/ctest/common/x86emitter/codegen_tests.cpp

33 lines
804 B
C++
Raw Normal View History

// SPDX-FileCopyrightText: 2002-2023 PCSX2 Dev Team
// SPDX-License-Identifier: LGPL-3.0+
2021-08-13 05:39:40 +00:00
#include "codegen_tests.h"
#include <gtest/gtest.h>
2021-09-02 16:36:36 +00:00
#include <common/emitter/x86emitter.h>
#include <common/Assertions.h>
using namespace x86Emitter;
thread_local const char *currentTest;
void runCodegenTest(void (*exec)(void *base), const char* description, const char* expected) {
u8 code[4096];
memset(code, 0xcc, sizeof(code));
char str[4096] = {0};
if (!expected) return;
currentTest = description;
xSetPtr(code);
exec(code);
char *strPtr = str;
for (u8* ptr = code; ptr < xGetPtr(); ptr++) {
sprintf(strPtr, "%02x ", *ptr);
strPtr += 3;
}
if (strPtr != str) {
// Remove final space
*--strPtr = '\0';
}
EXPECT_STRCASEEQ(expected, str) << "Unexpected codegen from " << description;
}