Skip to content
Snippets Groups Projects
Commit c1d8d089 authored by Stéphane Del Pino's avatar Stéphane Del Pino
Browse files

Add ASTSymbolTableBuilder tests

parent 32abd3af
Branches
Tags
1 merge request!37Feature/language
......@@ -3,6 +3,7 @@ set(EXECUTABLE_OUTPUT_PATH ${PUGS_BINARY_DIR})
add_executable (unit_tests
test_main.cpp
test_ASTSymbolTableBuilder.cpp
test_ASTBuilder.cpp
test_Array.cpp
test_ArrayUtils.cpp
......
#include <catch2/catch.hpp>
#include <ASTBuilder.hpp>
#include <ASTSymbolTableBuilder.hpp>
TEST_CASE("ASTSymbolTableBuilder", "[language]")
{
SECTION("Build symbols")
{
std::string_view data = R"(
N n = 2;
{
N m = n;
R n = m/3.;
}
)";
string_input input{data, "test.pgs"};
auto ast = ASTBuilder::build(input);
ASTSymbolTableBuilder{*ast};
}
SECTION("Undeclared symbol")
{
std::string_view data = R"(
N n = a;
)";
string_input input{data, "test.pgs"};
auto ast = ASTBuilder::build(input);
REQUIRE_THROWS_AS(ASTSymbolTableBuilder{*ast}, parse_error);
}
SECTION("Re-declared symbol")
{
std::string_view data = R"(
N n = 0;
N n = 1;
)";
string_input input{data, "test.pgs"};
auto ast = ASTBuilder::build(input);
REQUIRE_THROWS_AS(ASTSymbolTableBuilder{*ast}, parse_error);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment