jak-project/test/goalc/test_game_no_debug.cpp
water111 4d713d5c8c
[Runtime] misc fixes to runtime and listener (#170)
* misc runtime fixes

* clang format
2020-12-28 18:37:05 -05:00

32 lines
1.2 KiB
C++

// Test the game running without loading debug segments.
#include "gtest/gtest.h"
#include "goalc/compiler/Compiler.h"
#include "test/goalc/framework/test_runner.h"
TEST(GameNoDebugSegment, Init) {
Compiler compiler;
compiler.run_front_end_on_string("(build-kernel)");
std::thread runtime_thread = std::thread(GoalTest::runtime_with_kernel_no_debug_segment);
// this shouldn't crash
compiler.run_test_from_string("(inspect *kernel-context*)");
// these should be equal, both the fallback inspect method
EXPECT_TRUE(compiler.run_test_from_string(
"(print (eq? (method kernel-context inspect) (method cpu-thread inspect))) 0") ==
std::vector<std::string>{"#t\n0\n"});
// should be below the debug heap.
EXPECT_TRUE(
compiler.run_test_from_string(
"(print (< (the uint (method kernel-context inspect)) (the uint (-> debug base)))) 0") ==
std::vector<std::string>{"#t\n0\n"});
// debug segment flag should be disabled.
EXPECT_TRUE(compiler.run_test_from_string("(print *debug-segment*) 0") ==
std::vector<std::string>{"#f\n0\n"});
compiler.shutdown_target();
runtime_thread.join();
}