This commit is contained in:
Ilusha 2024-03-13 14:20:50 +03:00 committed by Ilya Shurupov
parent 0494bf05af
commit 0b3f780ec7
2 changed files with 59 additions and 3 deletions

View file

@ -0,0 +1,54 @@
#include "Testing.hpp"
#include "compiler/function.h"
#include "core/object.h"
#include "interpreter/interpreter.h"
#include "primitives/interpreterobject.h"
#include "primitives/linkobject.h"
#include "primitives/methodobject.h"
using namespace tp;
using namespace obj;
TEST_DEF_STATIC(Basic) {
{
// no errors
auto method = NDO_CAST(MethodObject, NDO->create("method"));
method->mScript->mReadable->val = "print 1 * 20 + 10;";
method->compile();
NDO->destroy(method);
assertNoLeaks();
}
{
// with errors
auto method = NDO_CAST(MethodObject, NDO->create("method"));
method->mScript->mReadable->val = "print undefinedVariable;";
method->compile();
NDO->destroy(method);
assertNoLeaks();
}
}
TEST_DEF_STATIC(ErrorHandling) {
Parser parser;
String stream = "var i = true; print (i + 1) * 10; invalidCharacter ";
auto res = parser.parse(stream);
TEST(res.isError);
delete res.scope;
}
TEST_DEF(Compiler) {
testBasic();
testErrorHandling();
}

View file

@ -1,10 +1,12 @@
#include "Testing.hpp"
#include "compiler/function.h"
#include "core/object.h"
#include "primitives/dictobject.h"
#include "primitives/intobject.h"
#include "interpreter/interpreter.h"
#include "primitives/interpreterobject.h"
#include "primitives/linkobject.h"
#include "primitives/methodobject.h"
using namespace tp;
using namespace obj;