64 lines
No EOL
940 B
C++
64 lines
No EOL
940 B
C++
|
|
#include "ObjectTests.hpp"
|
|
|
|
#include "parser/Parser.hpp"
|
|
|
|
using namespace tp;
|
|
using namespace obj;
|
|
|
|
SUITE(Parser) {
|
|
TEST(Basic) {
|
|
objTestModule.initialize();
|
|
|
|
{
|
|
Parser parser;
|
|
|
|
std::string stream = "";
|
|
auto res = parser.parse(stream);
|
|
|
|
CHECK(!res.isError);
|
|
|
|
delete res.scope;
|
|
}
|
|
|
|
{
|
|
Parser parser;
|
|
|
|
std::string stream = "var i = true;";
|
|
auto res = parser.parse(stream);
|
|
|
|
CHECK(!res.isError);
|
|
|
|
delete res.scope;
|
|
}
|
|
|
|
{
|
|
Parser parser;
|
|
|
|
std::string stream = "var i = true; print (i + 1) * 10;";
|
|
auto res = parser.parse(stream);
|
|
|
|
CHECK(!res.isError);
|
|
|
|
delete res.scope;
|
|
}
|
|
|
|
objTestModule.deinitialize();
|
|
}
|
|
|
|
TEST(ErrorHandling) {
|
|
objTestModule.initialize();
|
|
|
|
{
|
|
Parser parser;
|
|
std::string stream = "var i = true; print (i + 1) * 10; invalidCharacter ";
|
|
auto res = parser.parse(stream);
|
|
|
|
CHECK(res.isError);
|
|
|
|
delete res.scope;
|
|
}
|
|
|
|
objTestModule.deinitialize();
|
|
}
|
|
} |