More CBot tests
parent
5443006979
commit
5b7638d9f4
|
@ -389,6 +389,44 @@ TEST_F(CBotUT, BasicOperations)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_F(CBotUT, VarBasic)
|
||||||
|
{
|
||||||
|
ExecuteTest(
|
||||||
|
"extern void VarBasic()\n"
|
||||||
|
"{\n"
|
||||||
|
" int a = 5;\n"
|
||||||
|
" ASSERT(a == 5);\n"
|
||||||
|
" int b = 3;\n"
|
||||||
|
" ASSERT(b == 3);\n"
|
||||||
|
" b = a;\n"
|
||||||
|
" ASSERT(b == 5);\n"
|
||||||
|
" ASSERT(b == a);\n"
|
||||||
|
" b = a + b;\n"
|
||||||
|
" ASSERT(b == 10);\n"
|
||||||
|
" ASSERT(b == 2*a);\n"
|
||||||
|
"}\n"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_F(CBotUT, VarDefinitions)
|
||||||
|
{
|
||||||
|
ExecuteTest(
|
||||||
|
"extern void TestUndefined()\n"
|
||||||
|
"{\n"
|
||||||
|
" ASSERT(a == 0);\n"
|
||||||
|
"}\n",
|
||||||
|
CBotErrUndefVar
|
||||||
|
);
|
||||||
|
ExecuteTest(
|
||||||
|
"extern void TestRedefined()\n"
|
||||||
|
"{\n"
|
||||||
|
" int a = 5;\n"
|
||||||
|
" int a = 3;\n"
|
||||||
|
"}\n",
|
||||||
|
CBotErrRedefVar
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
TEST_F(CBotUT, Functions)
|
TEST_F(CBotUT, Functions)
|
||||||
{
|
{
|
||||||
ExecuteTest(
|
ExecuteTest(
|
||||||
|
@ -439,21 +477,38 @@ TEST_F(CBotUT, FunctionRecursionStackOverflow)
|
||||||
TEST_F(CBotUT, FunctionOverloading)
|
TEST_F(CBotUT, FunctionOverloading)
|
||||||
{
|
{
|
||||||
ExecuteTest(
|
ExecuteTest(
|
||||||
"void func(int test)\n"
|
"int func(string test)\n"
|
||||||
"{\n"
|
"{\n"
|
||||||
" FAIL();\n"
|
" return 1;\n"
|
||||||
"}\n"
|
"}\n"
|
||||||
"void func(string test)\n"
|
"int func(int test)\n"
|
||||||
"{\n"
|
"{\n"
|
||||||
|
" return 2;\n"
|
||||||
"}\n"
|
"}\n"
|
||||||
"\n"
|
"\n"
|
||||||
"extern void FunctionOverloading()\n"
|
"extern void FunctionOverloading()\n"
|
||||||
"{\n"
|
"{\n"
|
||||||
" func(\"5\");\n"
|
" ASSERT(func(\"5\") == 1);\n"
|
||||||
|
" ASSERT(func(5) == 2);\n"
|
||||||
"}\n"
|
"}\n"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_F(CBotUT, FunctionRedefined)
|
||||||
|
{
|
||||||
|
ExecuteTest(
|
||||||
|
"int func(int test)\n"
|
||||||
|
"{\n"
|
||||||
|
" return 1;\n"
|
||||||
|
"}\n"
|
||||||
|
"int func(int test)\n"
|
||||||
|
"{\n"
|
||||||
|
" return 2;\n"
|
||||||
|
"}\n",
|
||||||
|
CBotErrRedefFunc
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
TEST_F(CBotUT, ClassConstructor)
|
TEST_F(CBotUT, ClassConstructor)
|
||||||
{
|
{
|
||||||
ExecuteTest(
|
ExecuteTest(
|
||||||
|
@ -526,3 +581,48 @@ TEST_F(CBotUT, DISABLED_ClassDestructorNaming)
|
||||||
static_cast<CBotError>(-1)
|
static_cast<CBotError>(-1)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: This doesn't work
|
||||||
|
TEST_F(CBotUT, DISABLED_ClassMethodOverloading)
|
||||||
|
{
|
||||||
|
ExecuteTest(
|
||||||
|
"public class TestClass {\n"
|
||||||
|
" public int test(string test) {\n"
|
||||||
|
" return 1;\n"
|
||||||
|
" }\n"
|
||||||
|
" public int test(int test) {\n"
|
||||||
|
" return 2;"
|
||||||
|
" }\n"
|
||||||
|
"}\n"
|
||||||
|
"extern void ClassMethodOverloading() {\n"
|
||||||
|
" TestClass t();\n"
|
||||||
|
" ASSERT(t.test(\"5\") == 1);\n"
|
||||||
|
" ASSERT(t.test(5) == 2);\n"
|
||||||
|
"}\n"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_F(CBotUT, ClassMethodRedefined)
|
||||||
|
{
|
||||||
|
ExecuteTest(
|
||||||
|
"public class TestClass {\n"
|
||||||
|
" public int test(string test) {\n"
|
||||||
|
" return 1;\n"
|
||||||
|
" }\n"
|
||||||
|
" public int test(string test) {\n"
|
||||||
|
" return 2;"
|
||||||
|
" }\n"
|
||||||
|
"}\n",
|
||||||
|
CBotErrRedefFunc
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: Not only doesn't work but segfaults
|
||||||
|
TEST_F(CBotUT, DISABLED_ClassRedefined)
|
||||||
|
{
|
||||||
|
ExecuteTest(
|
||||||
|
"public class TestClass {}\n"
|
||||||
|
"public class TestClass {}\n",
|
||||||
|
CBotErrRedefClass
|
||||||
|
);
|
||||||
|
}
|
Loading…
Reference in New Issue