mirror of
https://github.com/usatiuk/psil.git
synced 2025-10-28 18:57:48 +01:00
simple secd parser
This commit is contained in:
@@ -8,5 +8,16 @@ target_link_libraries(
|
||||
GTest::gtest_main
|
||||
)
|
||||
|
||||
add_executable(
|
||||
VMWithParserTest
|
||||
VMWithParserTest.cpp
|
||||
)
|
||||
target_link_libraries(
|
||||
VMWithParserTest
|
||||
vm
|
||||
GTest::gtest_main
|
||||
)
|
||||
|
||||
include(GoogleTest)
|
||||
gtest_discover_tests(VMTest)
|
||||
gtest_discover_tests(VMTest)
|
||||
gtest_discover_tests(VMWithParserTest)
|
||||
|
||||
30
test/vm/VMWithParserTest.cpp
Normal file
30
test/vm/VMWithParserTest.cpp
Normal file
@@ -0,0 +1,30 @@
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#include "VM.h"
|
||||
#include "Parser.h"
|
||||
|
||||
TEST(VMWithParserTest, BasicHello) {
|
||||
std::stringstream ssin;
|
||||
std::stringstream ssout;
|
||||
{
|
||||
VM vm(ssin, ssout);
|
||||
Parser parser(vm);
|
||||
parser.loadSecd("( LDC 104 PUTCHAR STOP )");
|
||||
vm.run();
|
||||
}
|
||||
ssout.flush();
|
||||
EXPECT_EQ(ssout.str(), "h");
|
||||
}
|
||||
|
||||
TEST(VMWithParserTest, BasicFunction) {
|
||||
std::stringstream ssin;
|
||||
std::stringstream ssout;
|
||||
{
|
||||
VM vm(ssin, ssout);
|
||||
Parser parser(vm);
|
||||
parser.loadSecd("( NIL LDC 1 CONS LDC 2 CONS LDF ( LD ( 1 . 1 ) LD ( 1 . 2 ) ADD RET ) AP PUTNUM STOP )");
|
||||
vm.run();
|
||||
}
|
||||
ssout.flush();
|
||||
EXPECT_EQ(ssout.str(), "3");
|
||||
}
|
||||
Reference in New Issue
Block a user