#include #include "../src/SymTable.hpp" class SymTableTest { public: explicit SymTableTest() {} virtual ~SymTableTest() {} protected: fk::Loc m_loc {"tests/symtable"}; fk::SymTable m_sym; }; TEST_CASE_METHOD(SymTableTest, "SymTable_declare_var") { REQUIRE(std::nullopt == m_sym.find("hello")); m_sym.declare_local("hello", 404, m_loc); auto entry = m_sym.find("hello"); REQUIRE(std::nullopt != entry); REQUIRE("hello" == entry->name()); REQUIRE(404 == entry->addr()); REQUIRE(false == entry->is_global()); REQUIRE_THROWS_AS(m_sym.declare_local("hello", 407, m_loc), fk::symbol_error); }