Unit-test for Nasal parsing bug
This commit is contained in:
parent
de90c281a5
commit
8716801c8c
2 changed files with 37 additions and 0 deletions
|
@ -168,3 +168,38 @@ void NasalSysTests::testAirportGhost()
|
||||||
CPPUNIT_ASSERT(ok);
|
CPPUNIT_ASSERT(ok);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// https://sourceforge.net/p/flightgear/codetickets/2246/
|
||||||
|
|
||||||
|
void NasalSysTests::testCompileLarge()
|
||||||
|
{
|
||||||
|
auto nasalSys = globals->get_subsystem<FGNasalSys>();
|
||||||
|
nasalSys->getAndClearErrorList();
|
||||||
|
|
||||||
|
|
||||||
|
string code = "var foo = 0;\n";
|
||||||
|
for (int i=0; i<14; ++i) {
|
||||||
|
code = code + code;
|
||||||
|
}
|
||||||
|
|
||||||
|
nasalSys->parseAndRun(code);
|
||||||
|
|
||||||
|
// bool ok = FGTestApi::executeNasal(R"(
|
||||||
|
//var try_compile = func(code) {
|
||||||
|
// call(compile, [code], nil,nil,var err=[]);
|
||||||
|
// return size(err);
|
||||||
|
//}
|
||||||
|
//
|
||||||
|
//var expression = "var foo = 0;\n";
|
||||||
|
//var code = "";
|
||||||
|
//
|
||||||
|
//for(var i=0;i<=10000;i+=1) {
|
||||||
|
// code ~= expression;
|
||||||
|
// if (try_compile(code) == 1) {
|
||||||
|
// print("Error compiling, LOC count is:", i+1);
|
||||||
|
// break;
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
// )");
|
||||||
|
// CPPUNIT_ASSERT(ok);
|
||||||
|
}
|
||||||
|
|
|
@ -34,6 +34,7 @@ class NasalSysTests : public CppUnit::TestFixture
|
||||||
CPPUNIT_TEST(testStructEquality);
|
CPPUNIT_TEST(testStructEquality);
|
||||||
CPPUNIT_TEST(testCommands);
|
CPPUNIT_TEST(testCommands);
|
||||||
CPPUNIT_TEST(testAirportGhost);
|
CPPUNIT_TEST(testAirportGhost);
|
||||||
|
CPPUNIT_TEST(testCompileLarge);
|
||||||
CPPUNIT_TEST_SUITE_END();
|
CPPUNIT_TEST_SUITE_END();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
@ -47,6 +48,7 @@ public:
|
||||||
void testStructEquality();
|
void testStructEquality();
|
||||||
void testCommands();
|
void testCommands();
|
||||||
void testAirportGhost();
|
void testAirportGhost();
|
||||||
|
void testCompileLarge();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // _FG_NASALSYS_UNIT_TESTS_HXX
|
#endif // _FG_NASALSYS_UNIT_TESTS_HXX
|
||||||
|
|
Loading…
Reference in a new issue