// 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-of-type kernel-context inspect) " "(method-of-type 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-of-type 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(); }