diff --git a/src/test/functionCall/functionCall.c b/src/test/functionCall/functionCall.c index 68c9f63..b515c13 100644 --- a/src/test/functionCall/functionCall.c +++ b/src/test/functionCall/functionCall.c @@ -9,24 +9,28 @@ void printArgError(char* name, int expected, int result) { printf("ERROR:\t\t%s()\tGOT: %d\tExpected: %d\n", name, result, expected); } -void argumentTest(char* name, int expected, int result) { +int argumentTest(char* name, int expected, int result) { if (expected == result) { printArgSuccess(name, expected, result); + return 0; } else { printArgError(name, expected, result); + return 1; } } -void runFunctionCallTests () { +int runFunctionCallTests () { + int failed = 0; printf("\nFunctionCallTests Tests \n"); - argumentTest("arg1", 1, arg1(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)); - argumentTest("arg2", 2, arg2(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)); - argumentTest("arg3", 3, arg3(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)); - argumentTest("arg4", 4, arg4(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)); - argumentTest("arg5", 5, arg5(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)); - argumentTest("arg6", 6, arg6(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)); - argumentTest("arg7", 7, arg7(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)); - argumentTest("arg8", 8, arg8(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)); - argumentTest("arg9", 9, arg9(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)); - argumentTest("arg10", 10, arg10(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)); + failed += argumentTest("arg1", 1, arg1(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)); + failed += argumentTest("arg2", 2, arg2(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)); + failed += argumentTest("arg3", 3, arg3(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)); + failed += argumentTest("arg4", 4, arg4(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)); + failed += argumentTest("arg5", 5, arg5(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)); + failed += argumentTest("arg6", 6, arg6(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)); + failed += argumentTest("arg7", 7, arg7(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)); + failed += argumentTest("arg8", 8, arg8(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)); + failed += argumentTest("arg9", 9, arg9(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)); + failed += argumentTest("arg10", 10, arg10(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)); + return failed; } \ No newline at end of file diff --git a/src/test/testCode.c b/src/test/testCode.c index 9b55e27..865c775 100644 --- a/src/test/testCode.c +++ b/src/test/testCode.c @@ -1,4 +1,5 @@ #include +#include #include "tests.h" #include "testCode.h" @@ -37,72 +38,81 @@ void printErrorOneArg(char* name, int x, int expected, int result) { printf("ERROR:\t\t%s(%d)\tGOT: %d\tExpected: %d\n", name, x, result, expected); } -void testExpected(char* name, int x, int y, int expected, int result) { +int testExpected(char* name, int x, int y, int expected, int result) { if (expected == result) { printSuccess(name, x, y, expected, result); + return 0; } else { printError(name, x, y, expected, result); + return 1; } } -void test(char* name, int (*correctFunction)(int, int), int (*testFunction)(int, int), int x, int y) { +int test(char* name, int (*correctFunction)(int, int), int (*testFunction)(int, int), int x, int y) { int expected = correctFunction(x, y); int result = testFunction(x, y); - testExpected(name, x, y, expected, result); + return testExpected(name, x, y, expected, result); } -void testOneArg(char* name, int (*correctFunction)(int), int (*testFunction)(int), int x) { +int testOneArg(char* name, int (*correctFunction)(int), int (*testFunction)(int), int x) { int expected = correctFunction(x); int result = testFunction(x); if (expected == result) { printSuccessOneArg(name, x, expected, result); + return 0; } else { printErrorOneArg(name, x, expected, result); + return 1; } } int main(){ + int failed = 0; printf("\nAddition Tests \n"); - test("add", cAdd, add, 0, 0); - test("add", cAdd, add, 1, 1); - test("add", cAdd, add, 2, 0); - test("add", cAdd, add, 1, 5); - test("add", cAdd, add, -1, -1); + failed += test("add", cAdd, add, 0, 0); + failed += test("add", cAdd, add, 1, 1); + failed += test("add", cAdd, add, 2, 0); + failed += test("add", cAdd, add, 1, 5); + failed += test("add", cAdd, add, -1, -1); printf("\nSubtraction Tests \n"); - test("sub", cSub, sub, 0, 0); - test("sub", cSub, sub, 1, 1); - test("sub", cSub, sub, 2, 0); - test("sub", cSub, sub, 1, 5); - test("sub", cSub, sub, -1, -1); + failed += test("sub", cSub, sub, 0, 0); + failed += test("sub", cSub, sub, 1, 1); + failed += test("sub", cSub, sub, 2, 0); + failed += test("sub", cSub, sub, 1, 5); + failed += test("sub", cSub, sub, -1, -1); printf("\nMultiplication Tests \n"); - test("mul", cMul, mul, 0, 0); - test("mul", cMul, mul, 1, 1); - test("mul", cMul, mul, 2, 0); - test("mul", cMul, mul, 1, 5); - test("mul", cMul, mul, -1, -1); + failed += test("mul", cMul, mul, 0, 0); + failed += test("mul", cMul, mul, 1, 1); + failed += test("mul", cMul, mul, 2, 0); + failed += test("mul", cMul, mul, 1, 5); + failed += test("mul", cMul, mul, -1, -1); printf("\nModulo Tests \n"); - test("modulo", cModulo, modulo, 1, 1); - test("modulo", cModulo, modulo, 1, 5); - test("modulo", cModulo, modulo, -1, -1); - test("modulo", cModulo, modulo, 1337, 42); + failed += test("modulo", cModulo, modulo, 1, 1); + failed += test("modulo", cModulo, modulo, 1, 5); + failed += test("modulo", cModulo, modulo, -1, -1); + failed += test("modulo", cModulo, modulo, 1337, 42); printf("\nNegative Tests\n"); - testOneArg("neg", cNeg, neg, 0); - testOneArg("neg", cNeg, neg, 1); - testOneArg("neg", cNeg, neg, -1); + failed += testOneArg("neg", cNeg, neg, 0); + failed += testOneArg("neg", cNeg, neg, 1); + failed += testOneArg("neg", cNeg, neg, -1); printf("\nIdentity Tests\n"); - testOneArg("id", cId, id, 0); - testOneArg("id", cId, id, -1); - testOneArg("id", cId, id, 15); + failed += testOneArg("id", cId, id, 0); + failed += testOneArg("id", cId, id, -1); + failed += testOneArg("id", cId, id, 15); printf("\nFunction Argument Tests\n"); - runFunctionCallTests(); + failed += runFunctionCallTests(); + printf("\n=== Failed Tests: %d\n", failed); + if (failed > 0) { + return EXIT_FAILURE; + } - return 0; + return EXIT_SUCCESS; } \ No newline at end of file diff --git a/src/test/tests.h b/src/test/tests.h index b0374b9..112df7f 100644 --- a/src/test/tests.h +++ b/src/test/tests.h @@ -2,4 +2,4 @@ Alle Test Module */ -void runFunctionCallTests (); \ No newline at end of file +int runFunctionCallTests (); \ No newline at end of file