// 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{"#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{"#t\n0\n"}); // debug segment flag should be disabled. EXPECT_TRUE(compiler.run_test_from_string("(print *debug-segment*) 0") == std::vector{"#f\n0\n"}); compiler.shutdown_target(); runtime_thread.join(); }