From cd3e643660840d40a5d2de3604f0d0cfb818d0e0 Mon Sep 17 00:00:00 2001 From: fdai7057 Date: Thu, 2 Feb 2023 08:46:32 +0100 Subject: [PATCH] fix errors that occured while using ceedling to run tests of different files with one call to test:all. --- build-script.sh | 2 +- project.yml | 10 +- src/customerProperties.h | 1 + src/loginCustomer.c | 88 +++++++ src/loginCustomer.h | 10 + src/mainMenu.c | 51 ++-- src/mainMenu.h | 2 +- src/stringManipulation.c | 15 +- src/stringManipulation.h | 5 +- {tests => test}/test_CreateCustomer.c | 6 +- {tests/test => test}/test_LoginCustomer.c | 3 +- .../test => test}/test_StringManipulation.c | 4 +- test/test_mainMenu.c => test_mainMenu.c | 11 +- tests/build/test/cache/defines_dependency.yml | 11 - tests/build/test/cache/input.yml | 242 ------------------ tests/build/test/cache/test_LoginCustomer.c | 87 ------- .../test/cache/test_StringManipulation.c | 195 -------------- tests/build/test/dependencies/LoginCustomer.d | 3 - .../test/dependencies/StringManipulation.d | 3 - tests/build/test/dependencies/cmock.d | 6 - .../test/dependencies/test_LoginCustomer.d | 4 - .../dependencies/test_LoginCustomer_runner.d | 4 - .../dependencies/test_StringManipulation.d | 5 - .../test_StringManipulation_runner.d | 4 - tests/build/test/dependencies/unity.d | 4 - tests/build/test/out/c/LoginCustomer.o | Bin 3008 -> 0 bytes tests/build/test/out/c/StringManipulation.o | Bin 4384 -> 0 bytes tests/build/test/out/c/cmock.o | Bin 8152 -> 0 bytes tests/build/test/out/c/test_LoginCustomer.o | Bin 4140 -> 0 bytes .../test/out/c/test_LoginCustomer_runner.o | Bin 6640 -> 0 bytes .../test/out/c/test_StringManipulation.o | Bin 10300 -> 0 bytes .../out/c/test_StringManipulation_runner.o | Bin 7004 -> 0 bytes tests/build/test/out/c/unity.o | Bin 39856 -> 0 bytes tests/build/test/out/test_LoginCustomer.out | Bin 56560 -> 0 bytes .../test/out/test_StringManipulation.out | Bin 59008 -> 0 bytes .../preprocess/files/test_LoginCustomer.c | 87 ------- .../files/test_StringManipulation.c | 195 -------------- .../preprocess/includes/test_LoginCustomer.c | 3 - .../includes/test_StringManipulation.c | 3 - .../test/results/test_LoginCustomer.pass | 18 -- .../test/results/test_StringManipulation.pass | 42 --- .../test/runners/test_LoginCustomer_runner.c | 81 ------ .../runners/test_StringManipulation_runner.c | 89 ------- tests/project.yml | 101 -------- tests/support/.gitkeep | 0 tests/test/support/.gitkeep | 0 46 files changed, 161 insertions(+), 1234 deletions(-) create mode 100644 src/loginCustomer.c create mode 100644 src/loginCustomer.h rename {tests => test}/test_CreateCustomer.c (78%) rename {tests/test => test}/test_LoginCustomer.c (90%) rename {tests/test => test}/test_StringManipulation.c (98%) rename test/test_mainMenu.c => test_mainMenu.c (98%) delete mode 100644 tests/build/test/cache/defines_dependency.yml delete mode 100644 tests/build/test/cache/input.yml delete mode 100644 tests/build/test/cache/test_LoginCustomer.c delete mode 100644 tests/build/test/cache/test_StringManipulation.c delete mode 100644 tests/build/test/dependencies/LoginCustomer.d delete mode 100644 tests/build/test/dependencies/StringManipulation.d delete mode 100644 tests/build/test/dependencies/cmock.d delete mode 100644 tests/build/test/dependencies/test_LoginCustomer.d delete mode 100644 tests/build/test/dependencies/test_LoginCustomer_runner.d delete mode 100644 tests/build/test/dependencies/test_StringManipulation.d delete mode 100644 tests/build/test/dependencies/test_StringManipulation_runner.d delete mode 100644 tests/build/test/dependencies/unity.d delete mode 100644 tests/build/test/out/c/LoginCustomer.o delete mode 100644 tests/build/test/out/c/StringManipulation.o delete mode 100644 tests/build/test/out/c/cmock.o delete mode 100644 tests/build/test/out/c/test_LoginCustomer.o delete mode 100644 tests/build/test/out/c/test_LoginCustomer_runner.o delete mode 100644 tests/build/test/out/c/test_StringManipulation.o delete mode 100644 tests/build/test/out/c/test_StringManipulation_runner.o delete mode 100644 tests/build/test/out/c/unity.o delete mode 100755 tests/build/test/out/test_LoginCustomer.out delete mode 100755 tests/build/test/out/test_StringManipulation.out delete mode 100644 tests/build/test/preprocess/files/test_LoginCustomer.c delete mode 100644 tests/build/test/preprocess/files/test_StringManipulation.c delete mode 100644 tests/build/test/preprocess/includes/test_LoginCustomer.c delete mode 100644 tests/build/test/preprocess/includes/test_StringManipulation.c delete mode 100644 tests/build/test/results/test_LoginCustomer.pass delete mode 100644 tests/build/test/results/test_StringManipulation.pass delete mode 100644 tests/build/test/runners/test_LoginCustomer_runner.c delete mode 100644 tests/build/test/runners/test_StringManipulation_runner.c delete mode 100644 tests/project.yml delete mode 100644 tests/support/.gitkeep delete mode 100644 tests/test/support/.gitkeep diff --git a/build-script.sh b/build-script.sh index 0f1eb09..61629a5 100755 --- a/build-script.sh +++ b/build-script.sh @@ -1,6 +1,6 @@ clear cd src/ -gcc stringManipulation.c createCustomer.c mainMenu.c program.c -o program.out +gcc stringManipulation.c loginCustomer.c createCustomer.c mainMenu.c program.c -lm -o program.out ./program.out rm program.out cd .. diff --git a/project.yml b/project.yml index 640cb8f..cc2e939 100644 --- a/project.yml +++ b/project.yml @@ -31,12 +31,14 @@ :paths: :test: - - +:tests/** - - -:tests/support + - +:test/** + - -:test/support :source: - - src/** + - src/createCustomer.* + - src/customerLogin.* + - src/stringManipulation.* :support: - - tests/support + - test/support :libraries: [] :defines: diff --git a/src/customerProperties.h b/src/customerProperties.h index 0463c2d..c5d6b3e 100644 --- a/src/customerProperties.h +++ b/src/customerProperties.h @@ -1,6 +1,7 @@ typedef struct Customer { unsigned int ID; + char *IDAsString; char *password; char *forename, *surname; float balance; diff --git a/src/loginCustomer.c b/src/loginCustomer.c new file mode 100644 index 0000000..457d14f --- /dev/null +++ b/src/loginCustomer.c @@ -0,0 +1,88 @@ +#include "loginCustomer.h" + +bool checkLogin(bool loginSuccessful) +{ + return (loginSuccessful) ? true : false; +} + +void collectCustomerDataForLogin(int attempts) +{ + customer_t c; + c.IDAsString = calloc(15+1, sizeof(char)); + c.password = calloc(20+1, sizeof(char)); + int digitCharacterFromUser, passwordCharacterFromUser; + int IDLengthCounter = 0, passwordLengthCounter = 0; + const int IDMaxLength = 16, passwordMaxLength = 21; + printf("Enter ID:\n"); + while((digitCharacterFromUser=getchar())!='\n'&&IDLengthCounter='0'&&digitCharacterFromUser<='9'){ + *(c.IDAsString+IDLengthCounter) = digitCharacterFromUser; + } + else{ + printf("Character entered is not a digit. Aborting.\n"); + exit(-1); + } + ++IDLengthCounter; + } + *(c.IDAsString+IDLengthCounter) = '\0'; + if(IDLengthCounter>=IDMaxLength){ + printf("ID entered is too long. Aborting.\n"); + exit(-1); + } + printf("Enter password:\n"); + while((passwordCharacterFromUser=getchar())!='\n'&&passwordLengthCounter=passwordMaxLength){ + printf("Password entered is too long. Aborting.\n"); + exit(-1); + } + bool loginSuccessful = loginCustomer(&c); + free(c.IDAsString); + free(c.password); + if(loginSuccessful ) { + printf("Welcome!\n"); + //call menu() + }else if(!loginSuccessful && attempts < MAX_LOGIN_ATTEMPTS){ + printf("You have %d attempts left.\n", MAX_LOGIN_ATTEMPTS - attempts); + collectCustomerDataForLogin(++attempts); + }else{ + printf("Maximum number of attempts reached. Program terminates.\n"); + exit(-1); + //call error() + } +} + +bool loginCustomer(customer_t *c) +{ + bool foundCustomerEntryInFile = false; + unsigned int IDAsNumber = toUnsignedInteger(c->IDAsString); + char *searchForThisString = generateCheckString(IDAsNumber,c->password); + printf("Searching for: %s\n", searchForThisString); + char *lineFromCustomerFile = calloc(40,sizeof(char)); + FILE *readCustomerFile = fopen("CustomerData.txt", "r"); + if(readCustomerFile==NULL){ + printf("Could not find file. Aborting.\n"); + exit(-1); + //call error() + } + while((fscanf(readCustomerFile,"%s",lineFromCustomerFile)!=EOF)){ + if(strcmp(searchForThisString,lineFromCustomerFile)==0){ + foundCustomerEntryInFile = true; + break; + } + } + free(lineFromCustomerFile); + if(checkLogin(foundCustomerEntryInFile)){ + printf("Login successful.\n"); + fclose(readCustomerFile); + return foundCustomerEntryInFile; + }else{ + printf("Login not successful.\n"); + } + fclose(readCustomerFile); + return foundCustomerEntryInFile; +} diff --git a/src/loginCustomer.h b/src/loginCustomer.h new file mode 100644 index 0000000..5d15599 --- /dev/null +++ b/src/loginCustomer.h @@ -0,0 +1,10 @@ +#include +#include +#include +#include +/*#include "stringManipulation.h"*/ +#include "createCustomer.h" +#define MAX_LOGIN_ATTEMPTS 3 +bool checkLogin(bool); +void collectCustomerDataForLogin(int); +bool loginCustomer(customer_t *); diff --git a/src/mainMenu.c b/src/mainMenu.c index 0bed352..60850ab 100644 --- a/src/mainMenu.c +++ b/src/mainMenu.c @@ -1,4 +1,4 @@ -#include"mainMenu.h" +#include "mainMenu.h" bool agePermission(int age) @@ -33,20 +33,21 @@ void ageInput() char* userInput = malloc(20*sizeof(char*)); char* userInputPointer; - + int input, ctr=0; long age; - printf("\nPlease specify your age : "); - scanf("%s",userInput); - - + while((input=getchar())!='\n'){ + *(userInput+ctr) = input; + ++ctr; + } + *(userInput+ctr) = '\0'; while (true) { /*the userInput string is changed to a number with the strtol function*/ age = strtol(userInput,&userInputPointer,10); - - if((checkIfInteger(userInput))&& (agePermission(age))) + + if((checkIfInteger(userInput))&& (agePermission(age))) { printf("Access granted!\n\n\n\n"); @@ -55,8 +56,6 @@ void ageInput() menuInput(); - //menuInput(); - break; } @@ -86,31 +85,39 @@ void menuInput() { char choiceInput[20]; char* choiceInputPointer; - int selection; + int selection, input, ctr = 0; + + while((input=getchar())!='\n'){ + choiceInput[ctr] = input; + ++ctr; + } + choiceInput[ctr] = '\0'; + + selection = strtol(choiceInput, &choiceInputPointer, 10); - scanf("%s", choiceInput); - selection = strtol(choiceInput, &choiceInputPointer, 10); - while (!checkIfInteger(choiceInput) || !chooseOption(selection)) { printf("Input invalid! try again!\n"); - - scanf("%s", choiceInput); - - selection = strtol(choiceInput, &choiceInputPointer, 10); + ctr = 0; + while((input=getchar())!='\n'){ + choiceInput[ctr] = input; + ++ctr; + } + choiceInput[ctr] = '\0'; + selection = strtol(choiceInput, &choiceInputPointer, 10); } switch(selection) { - case 1 : printf("\nLoginAsCostumer() function will be implemented here soon\n\n"); - break; - + case 1 : + collectCustomerDataForLogin(0); + break; case 2 : collectCustomerProperties(); break; case 3 : printf("\nLoginAsEmployee() function will be implemented here soon\n\n"); break; - case 4 : printf("\e[1;1H\e[2J"); + case 4 : printf("\nsee you next time !\n\n"); break; } diff --git a/src/mainMenu.h b/src/mainMenu.h index 0891487..cde6dd7 100644 --- a/src/mainMenu.h +++ b/src/mainMenu.h @@ -6,7 +6,7 @@ #include #include -#include "createCustomer.h" +#include "loginCustomer.h" bool agePermission(int age); bool checkIfInteger(char* userInput); diff --git a/src/stringManipulation.c b/src/stringManipulation.c index eb105cd..a9f39ef 100644 --- a/src/stringManipulation.c +++ b/src/stringManipulation.c @@ -54,18 +54,27 @@ char *to_string(int number) } } -unsigned int to_unsignedInteger(char *ID) +unsigned int powerOfTen(unsigned int n){ + unsigned int result = 1, ctr = 0; + while(ctr char *stringConcatenation(char *, char *); char *to_string(int); -char *generateCheckString(int, char *); -unsigned int to_unsignedInteger(char *); +char *generateCheckString(unsigned int, char *); +unsigned int toUnsignedInteger(char *); +unsigned int powerOfTen(unsigned int); diff --git a/tests/test_CreateCustomer.c b/test/test_CreateCustomer.c similarity index 78% rename from tests/test_CreateCustomer.c rename to test/test_CreateCustomer.c index 5cf0933..f681375 100644 --- a/tests/test_CreateCustomer.c +++ b/test/test_CreateCustomer.c @@ -1,6 +1,8 @@ #include #include -#include "createCustomer.h" +#include +#include "../src/stringManipulation.c" +#include "../src/createCustomer.c" void setUp(){} void tearDown(){} @@ -14,7 +16,7 @@ void test_generateID(){ for(int i=0;i -#include "LoginCustomer.h" +#include "../src/loginCustomer.c" +#include "../src/stringManipulation.c" void setUp(){}; void tearDown(){}; void test_checkLogin() diff --git a/tests/test/test_StringManipulation.c b/test/test_StringManipulation.c similarity index 98% rename from tests/test/test_StringManipulation.c rename to test/test_StringManipulation.c index accd414..cd681bf 100644 --- a/tests/test/test_StringManipulation.c +++ b/test/test_StringManipulation.c @@ -1,7 +1,7 @@ -#include "unity.h" -#include "StringManipulation.h" #include #include +#include +#include "../src/stringManipulation.c" void test_to_string() { diff --git a/test/test_mainMenu.c b/test_mainMenu.c similarity index 98% rename from test/test_mainMenu.c rename to test_mainMenu.c index af93eaf..dcb1191 100644 --- a/test/test_mainMenu.c +++ b/test_mainMenu.c @@ -1,8 +1,6 @@ #ifdef TEST - -#include "unity.h" - -#include "mainMenu.h" +#include +#include "../src/loginCustomer.c" void setUp(void) { @@ -211,9 +209,4 @@ void test_invalidChoiceInput_secondCase(void) } - - - - - #endif // TEST diff --git a/tests/build/test/cache/defines_dependency.yml b/tests/build/test/cache/defines_dependency.yml deleted file mode 100644 index c173160..0000000 --- a/tests/build/test/cache/defines_dependency.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- -<<<<<<< HEAD -<<<<<<< HEAD -"/home/julius/Documents/Studium/Informatik/1. Semester/ProgMeth/Bankmanagement/bankmanagement-system/src/StringManipulation.c": -======= -"/home/julius/Documents/Studium/Informatik/1. Semester/ProgMeth/Bankmanagement/bankmanagement-system/src/LoginCustomer.c": ->>>>>>> 0155f61 (implementation of unit tests for checkLogin()) -======= -"/home/julius/Documents/Studium/Informatik/1. Semester/ProgMeth/Bankmanagement/bankmanagement-system/src/LoginCustomer.c": ->>>>>>> 4d810f5640d89a86c1f2feef3ab19118518ad49f -- TEST diff --git a/tests/build/test/cache/input.yml b/tests/build/test/cache/input.yml deleted file mode 100644 index fb9e794..0000000 --- a/tests/build/test/cache/input.yml +++ /dev/null @@ -1,242 +0,0 @@ ---- -:project: - :use_exceptions: false - :use_mocks: true - :compile_threads: 1 - :test_threads: 1 - :use_test_preprocessor: true - :use_preprocessor_directives: false - :use_deep_dependencies: false - :generate_deep_dependencies: true - :auto_link_deep_dependencies: false - :test_file_prefix: test_ - :options_paths: [] - :release_build: false - :use_auxiliary_dependencies: true - :build_root: build - :which_ceedling: gem - :ceedling_version: 0.31.1 - :default_tasks: - - test:all -:release_build: - :use_assembly: false - :artifacts: [] -:paths: - :test: - - "+:test/**" - - "-:test/support" - :source: - - "/home/julius/Documents/Studium/Informatik/1. Semester/ProgMeth/Bankmanagement/bankmanagement-system/src/**" - :support: - - test/support - :include: [] - :libraries: [] - :test_toolchain_include: [] - :release_toolchain_include: [] -:files: - :test: [] - :source: [] - :assembly: [] - :support: [] - :include: [] -:environment: -- :rake_columns: '120' -:defines: - :test: - - &1 [] - - TEST - :test_preprocess: - - *1 - - TEST - :release: [] - :release_preprocess: [] - :use_test_definition: false - :common: [] -:libraries: - :flag: "-l${1}" - :path_flag: "-L ${1}" - :test: [] - :test_preprocess: [] - :release: [] - :release_preprocess: [] - :placement: :end - :system: [] -:flags: {} -:extension: - :header: ".h" - :source: ".c" - :assembly: ".s" - :object: ".o" - :libraries: - - ".a" - - ".so" - :executable: ".out" - :map: ".map" - :list: ".lst" - :testpass: ".pass" - :testfail: ".fail" - :dependencies: ".d" -:unity: - :vendor_path: "/var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor" - :defines: [] -:cmock: - :vendor_path: "/var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor" - :defines: [] - :includes: [] - :mock_prefix: mock_ - :when_no_prototypes: :warn - :enforce_strict_ordering: true - :plugins: - - :ignore - - :callback - :treat_as: - uint8: HEX8 - uint16: HEX16 - uint32: UINT32 - int8: INT8 - bool: UINT8 - :mock_path: build/test/mocks - :verbosity: 3 - :unity_helper: false -:cexception: - :vendor_path: "/var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor" - :defines: [] -:test_runner: - :includes: [] - :file_suffix: _runner -:tools: - :test_compiler: - :executable: gcc - :name: default_test_compiler - :stderr_redirect: :none - :background_exec: :none - :optional: false - :arguments: - - '' - - '' - - -I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR - - -I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE - - "-D$": COLLECTION_DEFINES_TEST_AND_VENDOR - - "-DGNU_COMPILER" - - "-g" - - '' - - -c "${1}" - - -o "${2}" - - "-MMD" - - -MF "${4}" - :test_fixture: - :executable: "${1}" - :name: default_test_fixture - :stderr_redirect: :auto - :background_exec: :none - :optional: false - :arguments: [] - :test_linker: - :executable: gcc - :name: default_test_linker - :stderr_redirect: :none - :background_exec: :none - :optional: false - :arguments: - - '' - - '' - - '' - - '"${1}"' - - "${5}" - - -o "${2}" - - '' - - "${4}" - - '' - :test_file_preprocessor: - :executable: gcc - :name: default_test_file_preprocessor - :stderr_redirect: :none - :background_exec: :none - :optional: false - :arguments: - - '' - - '' - - "-E" - - -I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR - - -I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE - - "-D$": COLLECTION_DEFINES_TEST_AND_VENDOR - - "-D$": DEFINES_TEST_PREPROCESS - - "-DGNU_COMPILER" - - '"${1}"' - - -o "${2}" - :test_file_preprocessor_directives: - :executable: gcc - :name: default_test_file_preprocessor_directives - :stderr_redirect: :none - :background_exec: :none - :optional: false - :arguments: - - "-E" - - -I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR - - -I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE - - "-D$": COLLECTION_DEFINES_TEST_AND_VENDOR - - "-D$": DEFINES_TEST_PREPROCESS - - "-DGNU_COMPILER" - - "-fdirectives-only" - - '"${1}"' - - -o "${2}" - :test_includes_preprocessor: - :executable: gcc - :name: default_test_includes_preprocessor - :stderr_redirect: :none - :background_exec: :none - :optional: false - :arguments: - - '' - - '' - - "-E" - - "-MM" - - "-MG" - - -I"$": COLLECTION_PATHS_TEST_SUPPORT_SOURCE_INCLUDE_VENDOR - - -I"$": COLLECTION_PATHS_TEST_TOOLCHAIN_INCLUDE - - "-D$": COLLECTION_DEFINES_TEST_AND_VENDOR - - "-D$": DEFINES_TEST_PREPROCESS - - "-DGNU_COMPILER" - - '"${1}"' -:test_compiler: - :arguments: [] -:test_linker: - :arguments: [] -:test_fixture: - :arguments: [] - :link_objects: [] -:test_includes_preprocessor: - :arguments: [] -:test_file_preprocessor: - :arguments: [] -:test_file_preprocessor_directives: - :arguments: [] -:test_dependencies_generator: - :arguments: [] -:release_compiler: - :arguments: [] -:release_linker: - :arguments: [] -:release_assembler: - :arguments: [] -:release_dependencies_generator: - :arguments: [] -:plugins: - :load_paths: - - "/var/lib/gems/2.7.0/gems/ceedling-0.31.1/lib/../plugins" - :enabled: - - stdout_pretty_tests_report - - module_generator - :display_raw_test_results: false - :stdout_pretty_tests_report_path: "/var/lib/gems/2.7.0/gems/ceedling-0.31.1/lib/../plugins/stdout_pretty_tests_report" - :module_generator_path: "/var/lib/gems/2.7.0/gems/ceedling-0.31.1/lib/../plugins/module_generator" -:gcov: - :reports: - - HtmlDetailed - :gcovr: - :html_medium_threshold: 75 - :html_high_threshold: 90 -:module_generator: - :project_root: "./" - :source_root: src/ - :test_root: test/ diff --git a/tests/build/test/cache/test_LoginCustomer.c b/tests/build/test/cache/test_LoginCustomer.c deleted file mode 100644 index 28f8ec8..0000000 --- a/tests/build/test/cache/test_LoginCustomer.c +++ /dev/null @@ -1,87 +0,0 @@ -#include "Semester/ProgMeth/Bankmanagement/bankmanagement-system/src/LoginCustomer.h" -#include "/var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h" -void setUp(){}; - -void tearDown(){}; - -void test_checkLogin() - -{ - - - - - -_Bool - - expected_test_values_compute_to_true[] = {4==4, - - 1 - - == - - 1 - - , 1==1, - - 0 - - == - - 0 - - , 'z'=='z', '='=='=',0x1A==0x1A}; - - int length_1 = sizeof(expected_test_values_compute_to_true)/sizeof( - - _Bool - - ); - - - - - -_Bool - - expected_test_values_compute_to_false[] = {4!=4, - - 1 - - == - - 0 - - ,1==0, - - 0 - - == - - 1 - - ,'z'=='x','!'==')',0x1A==0x2B}; - - int length_2 = sizeof(expected_test_values_compute_to_false)/sizeof( - - _Bool - - ); - - - - - - for(int i=0;i<7;++i) { - - do {if ((checkLogin(expected_test_values_compute_to_true[i]))) {} else {UnityFail( ((" Expected TRUE Was FALSE")), (UNITY_UINT)((UNITY_UINT)(16)));}} while(0); - - } - - for(int i=0;i<7;++i){ - - do {if (!(checkLogin(expected_test_values_compute_to_false[i]))) {} else {UnityFail( ((" Expected FALSE Was TRUE")), (UNITY_UINT)((UNITY_UINT)(19)));}} while(0); - - } - -} diff --git a/tests/build/test/cache/test_StringManipulation.c b/tests/build/test/cache/test_StringManipulation.c deleted file mode 100644 index 0d87c99..0000000 --- a/tests/build/test/cache/test_StringManipulation.c +++ /dev/null @@ -1,195 +0,0 @@ -#include "Semester/ProgMeth/Bankmanagement/bankmanagement-system/src/StringManipulation.h" -#include "/var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h" - - - - - - -void test_to_string() - -{ - - - - char *result_1[] = {"0","1","2","3","4","5","6","7","8","9","10"}; - - char *result_2[] = {"500","502","504","506","508","510","512","514","516","518"}; - - char *result_3[] = {"1000","2000","3000","4000","5000","6000","7000","8000","9000","10000"}; - - char *result_4[] = {"9999","8999","7999","6999","5999","4999","3999","2999","1999","999"}; - - char *result_5[] = {"1000000","2000000","3000000","4000000","5000000","6000000","7000000", - - "8000000","9000000","10000000"}; - - - - for(int i=0;i<=10;++i){ - - UnityAssertEqualString((const char*)((result_1[i])), (const char*)((to_string(i))), ( - - ((void *)0) - - ), (UNITY_UINT)(17)); - - } - - - - for(int i=0, j=500;i<10;++i,j+=2){ - - UnityAssertEqualString((const char*)((result_2[i])), (const char*)((to_string(j))), ( - - ((void *)0) - - ), (UNITY_UINT)(21)); - - } - - - - for(int i=0, j=1000;i<10;++i,j+=1000){ - - UnityAssertEqualString((const char*)((result_3[i])), (const char*)((to_string(j))), ( - - ((void *)0) - - ), (UNITY_UINT)(25)); - - } - - - - for(int i=0, j=9999;i<10;++i,j-=1000){ - - UnityAssertEqualString((const char*)((result_4[i])), (const char*)((to_string(j))), ( - - ((void *)0) - - ), (UNITY_UINT)(29)); - - } - - for(int i=0, j=1000000;i<10;++i,j+=1000000){ - - UnityAssertEqualString((const char*)((result_5[i])), (const char*)((to_string(j))), ( - - ((void *)0) - - ), (UNITY_UINT)(32)); - - } - - - -} - - - - - -void test_generateCheckString() - -{ - - - - int numbers_1[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25}; - - char *strings_1[] = {"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"}; - - char *result_1[] = {"0=a","1=b","2=c","3=d","4=e","5=f","6=g","7=h","8=i","9=j","10=k","11=l","12=m","13=n","14=o","15=p","16=q","17=r", "18=s","19=t","20=u","21=v","22=w","23=x","24=y","25=z"}; - - for(int i=0;i<26;++i){ - - UnityAssertEqualString((const char*)((result_1[i])), (const char*)((generateCheckString(numbers_1[i],*(strings_1+i)))), ( - - ((void *)0) - - ), (UNITY_UINT)(45)); - - } - - - - int numbers_2[] = {0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368,75025}; - - char *strings_2[] = {"z","zy","zyx","zyxw","zyxwv","zyxwvu","zyxwvut","zyxwvuts","zyxwvutsr","zyxwvutsrq","zyxwvutsrqp", - - "zyxwvutsrqpo","zyxwvutsrqpon","zyxwvutsrqponm","zyxwvutsrqponml","zyxwvutsrqponmlk", - - "zyxwvutsrqponmlkj","zyxwvutsrqponmlkji","zyxwvutsrqponmlkjih","zyxwvutsrqponmlkjihg","zyxwvutsrqponmlkjihgf", - - "zyxwvutsrqponmlkjihgfe","zyxwvutsrqponmlkjihgfed","zyxwvutsrqponmlkjihgfedc","zyxwvutsrqponmlkjihgfedcb", - - "zyxwvutsrqponmlkjihgfedcba"}; - - char *result_2[] = {"0=z","1=zy","1=zyx","2=zyxw","3=zyxwv","5=zyxwvu","8=zyxwvut","13=zyxwvuts","21=zyxwvutsr","34=zyxwvutsrq", - - "55=zyxwvutsrqp","89=zyxwvutsrqpo","144=zyxwvutsrqpon","233=zyxwvutsrqponm","377=zyxwvutsrqponml", - - "610=zyxwvutsrqponmlk","987=zyxwvutsrqponmlkj","1597=zyxwvutsrqponmlkji","2584=zyxwvutsrqponmlkjih", - - "4181=zyxwvutsrqponmlkjihg","6765=zyxwvutsrqponmlkjihgf","10946=zyxwvutsrqponmlkjihgfe", - - "17711=zyxwvutsrqponmlkjihgfed","28657=zyxwvutsrqponmlkjihgfedc","46368=zyxwvutsrqponmlkjihgfedcb", - - "75025=zyxwvutsrqponmlkjihgfedcba"}; - - for(int i=0;i<26;++i){ - - UnityAssertEqualString((const char*)((result_2[i])), (const char*)((generateCheckString(numbers_2[i],*(strings_2+i)))), ( - - ((void *)0) - - ), (UNITY_UINT)(61)); - - } - - - - srand(time(0)); - - int random_number=0; - - char *random_numbers_strings[20]; - - int random_numbers[20]; - - for(int i=0;i<20;++i){ - - random_number = (rand() % 100) + 1; - - random_numbers_strings[i] = to_string(random_number); - - random_numbers[i] = random_number; - - } - - char *strings_3[] = {"tree","plant","tea","programming","assembler","unix","BSD","snow","mountain","table","wood","forest", "calculator","book","light","keyboard","old","paper","pencil","voltage"}; - - char *result_3[20]; - - for(int i=0;i<20;++i){ - - random_numbers_strings[i] = strcat(random_numbers_strings[i],"="); - - result_3[i] = strcat(random_numbers_strings[i],strings_3[i]); - - printf("%s\n",result_3[i]); - - } - - for(int i=0;i<20;++i){ - - UnityAssertEqualString((const char*)((result_3[i])), (const char*)((generateCheckString(random_numbers[i],strings_3[i]))), ( - - ((void *)0) - - ), (UNITY_UINT)(81)); - - } - -} diff --git a/tests/build/test/dependencies/LoginCustomer.d b/tests/build/test/dependencies/LoginCustomer.d deleted file mode 100644 index 45e2415..0000000 --- a/tests/build/test/dependencies/LoginCustomer.d +++ /dev/null @@ -1,3 +0,0 @@ -build/test/out/c/LoginCustomer.o: \ - /home/julius/Documents/Studium/Informatik/1.\ Semester/ProgMeth/Bankmanagement/bankmanagement-system/src/LoginCustomer.c \ - /home/julius/Documents/Studium/Informatik/1.\ Semester/ProgMeth/Bankmanagement/bankmanagement-system/src/LoginCustomer.h diff --git a/tests/build/test/dependencies/StringManipulation.d b/tests/build/test/dependencies/StringManipulation.d deleted file mode 100644 index 625c690..0000000 --- a/tests/build/test/dependencies/StringManipulation.d +++ /dev/null @@ -1,3 +0,0 @@ -build/test/out/c/StringManipulation.o: \ - /home/julius/Documents/Studium/Informatik/1.\ Semester/ProgMeth/Bankmanagement/bankmanagement-system/src/StringManipulation.c \ - /home/julius/Documents/Studium/Informatik/1.\ Semester/ProgMeth/Bankmanagement/bankmanagement-system/src/StringManipulation.h diff --git a/tests/build/test/dependencies/cmock.d b/tests/build/test/dependencies/cmock.d deleted file mode 100644 index 82b64c9..0000000 --- a/tests/build/test/dependencies/cmock.d +++ /dev/null @@ -1,6 +0,0 @@ -build/test/out/c/cmock.o: \ - /var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/cmock/src/cmock.c \ - /var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/cmock/src/cmock.h \ - /var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/cmock/src/cmock_internals.h \ - /var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h \ - /var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/unity/src/unity_internals.h diff --git a/tests/build/test/dependencies/test_LoginCustomer.d b/tests/build/test/dependencies/test_LoginCustomer.d deleted file mode 100644 index 1a634fe..0000000 --- a/tests/build/test/dependencies/test_LoginCustomer.d +++ /dev/null @@ -1,4 +0,0 @@ -build/test/out/c/test_LoginCustomer.o: test/test_LoginCustomer.c \ - /var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h \ - /var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/unity/src/unity_internals.h \ - /home/julius/Documents/Studium/Informatik/1.\ Semester/ProgMeth/Bankmanagement/bankmanagement-system/src/LoginCustomer.h diff --git a/tests/build/test/dependencies/test_LoginCustomer_runner.d b/tests/build/test/dependencies/test_LoginCustomer_runner.d deleted file mode 100644 index 1649170..0000000 --- a/tests/build/test/dependencies/test_LoginCustomer_runner.d +++ /dev/null @@ -1,4 +0,0 @@ -build/test/out/c/test_LoginCustomer_runner.o: \ - build/test/runners/test_LoginCustomer_runner.c \ - /var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h \ - /var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/unity/src/unity_internals.h diff --git a/tests/build/test/dependencies/test_StringManipulation.d b/tests/build/test/dependencies/test_StringManipulation.d deleted file mode 100644 index 2f65b3c..0000000 --- a/tests/build/test/dependencies/test_StringManipulation.d +++ /dev/null @@ -1,5 +0,0 @@ -build/test/out/c/test_StringManipulation.o: \ - test/test_StringManipulation.c \ - /var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h \ - /var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/unity/src/unity_internals.h \ - /home/julius/Documents/Studium/Informatik/1.\ Semester/ProgMeth/Bankmanagement/bankmanagement-system/src/StringManipulation.h diff --git a/tests/build/test/dependencies/test_StringManipulation_runner.d b/tests/build/test/dependencies/test_StringManipulation_runner.d deleted file mode 100644 index c54fbb6..0000000 --- a/tests/build/test/dependencies/test_StringManipulation_runner.d +++ /dev/null @@ -1,4 +0,0 @@ -build/test/out/c/test_StringManipulation_runner.o: \ - build/test/runners/test_StringManipulation_runner.c \ - /var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h \ - /var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/unity/src/unity_internals.h diff --git a/tests/build/test/dependencies/unity.d b/tests/build/test/dependencies/unity.d deleted file mode 100644 index 02f2997..0000000 --- a/tests/build/test/dependencies/unity.d +++ /dev/null @@ -1,4 +0,0 @@ -build/test/out/c/unity.o: \ - /var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/unity/src/unity.c \ - /var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h \ - /var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/unity/src/unity_internals.h diff --git a/tests/build/test/out/c/LoginCustomer.o b/tests/build/test/out/c/LoginCustomer.o deleted file mode 100644 index 82cb77b53f1898426f37bd91e324cb4ef976af5c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3008 zcmcgu%WoS+7@yhoi#m0iq%93WVyRLQM7_2n6iR6zab835f z-iEDfxOI8^W@2RfTlgfRJPH0O0{U)17>*Q-of4=d(mAjSPc6bl;h8A{C2bNU(wRt^ zx)v#ucL8c5*>nP?WRjFY$)q2OJd-Pc#9Mgqbn0PP4rB1!$v+8{)K>r^vhdp^rAp+h z93x)&013Hr85+j>`N`a1R?Q9P`uRZW@Pjaqux$2Os8C(7Xj4LG&kd=$GudadPiM(> z^7u#PA;ywA@9G~LS{U53@j;YLG8wZls2oQ@nv#Mcn?;=L4)I@NsO)__Ilq@Xh-dWv zX!Zr$ZCiz_VXGPXg&Efj+m;jfh2uO%tNwnf63;{Peh%Z)o{d!{2mF+jAW^ z^z)(fYSXFb1Ebcmd@&n(zifVb`iwR@W7V35BTD4QAMY)Ot$YN7h+jX?_-h$H+?Pmf zVN26tpg|PjR4#KvDIZK;{1F}<-C1Fy6V9Z)(y^2766rymyQjm)pLEJ4CD`3v$rGyL zC`z5$lSO6GwIj{&r<<`$Dob|-a4LJCM?TOa_w~rQWMZU7_gGhbhAC?9f@$jSW_vuPm0Q zD%Higx#iiF>dI8PGFxTlzidP5l7fP?`U6;!CghVsrmk{0k)5Muv}(em0&&mc@@DK& zLbP~P=nDeJ1x^T@5qM7Ed4X31HUv5XeSy~rQHMTVRR5NcKNIpd0;BojK|Lh@PXuZ} z1@ff8D}=O#bbqsr^8*aL4%(9Qtd<^F8v)bnIJr!(`96yj`agGHr+~Uu3merYZhVAA zyiu!p)-@Kh8lK@aaA0GqR@1R$0O~W{bldbXV7lW5mX6yZ?+1pt)`_v~>Z)h75z+A6 za2?C|zw`qf<2#rBFX&eTU&N?qbXI9Rf=wwX_!xjQG@RSej zj&f0c+D{atVi4IK*n7%+Pe4Qd|K(SN55=UY2#E50;S)}NH7YW zB^l(z2$FJ2qlf*-vTNivMib9^1^SO@*2(K=}Vk{_*$^2%Ib*&i?z np``B`-N@ue{iIxSPl074c)xXG1j+eP?zrC;>i#61fYR?Tlt#Mv diff --git a/tests/build/test/out/c/StringManipulation.o b/tests/build/test/out/c/StringManipulation.o deleted file mode 100644 index 531a498d6d4ebdfe69f990feb9684a617365fc45..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4384 zcmcguTWlOx89rxr&+gc}-uRLYNJ#YHAGofMX5lQK~Q$bCT(6;gy;$q+vn$>O2}neU%D z;~g7E@YH`b^Zoa8{{LKNU(&|UaL$=aocUNoVr;U-v7EHw80%#FZF>+h`Kfp=)jpkA zSnFB6zqz^jtwjZzg%?#;J-)D}PV;G{_K|H__)Tj~yHnThe8BqgUU-*(z!;dnEF++< zsWolmrnU~A-R)k`)_MJT^_^@cld0YQ$6ss9i~m#>?{(My*t=ZQR7(HSCv|NdN$f!` zc*j_|sjX2Ovaj-*wtDy3`uPnf*KcL6+DFLNd%N}?GT%}7GJm&sv39Gr{K}X6>z7vR z+6rH;-MZHLUvZ27>aN|QIczLwYkZ-&%In(N6WaQf*Xx(o?J&EjmHPAdKU~_@mnFL| zYvIkR+Gxkd0x32cigjBNZYb7J#VZ$R6uyjVQB7T2b!u)nt?WqiUR~SZ%bA-jfhKI! zG}zV6Dn?rI#JF{OCR`8qEY%P8EWL)6^-~L(pMM2>_!oHf*b2rzq-6&w{@{Ka#6f6$ zevvmVrl`WUaWw*^q6BX{o^g_R;GC@#hY8f+JFxlvUndV9Xo60B4?KT3I0NW}{Bsg- z+`~ICHVQ-c=fEnjvS5S^5BHLv@~U5blf-V-5ew?u2<6d$c2@mB4eLpO{Xc?XHNkZdm8*k@MH4w?UUm-cS1alCjsYB#VRu%Y;s1w%)%ou(4G#Z zXXhD@$dL-6f?-13E2rgzb+`kEuOp&LQF+GqHakvJp=k&aN0@|>@iu-q(h>4S4n*2` zd!Q97p!Bd%Xb37Sf@Ep)Lq{7YTF$m5|WLSG0S?HcQ#xKo|44R>)^1A_Tf z$2QiXpsXMi(%Dg{CwC~C9+;4^<`5>>9-z!2#BIwQc5Eo(ARammn5F%um%FQo{~EgL zW8VkI`MpRB-u4AW3lqUnrNd=M5_tAJ)y8qHgM0SWGLP+9vi@=HXq8SITL|CaiMa%%0cH{A{&= zge5bUwl6%vnXo6nPx#eCVoy#qs|lfIMK~jx6C!X`?9GT^Rrunf`J4!;Oh`^@C zMZ^-ybqRTJu`Vh?8cs1uM-1o~Mhnc1lQqC-2YS1K=* z%2TXrR`OZXn2M72vuL%2^{KF|VH#!KGDdPndd6uy8yl63JGpVg%vw3tnEAHJn$=>; zD6>kgRJNkqEa^s4nZl!C>6~6}lx<5}ZE=!OD{R%atX3(BV~-ueWXJ5#vrk=$jtqQ0 zI?x|G5gUk}=sz*gKQPcA?JHVU(@5BL=F<@MaypmD4?Z>+?aM~{GJ0j+Oy|lavsA70 zRm~Uj=2V}hrwT>|eUP*MES3X1A4h4IjnB@Gj65DaHfp5ux+%-+8|>X#C{FBNI=~?Q z&1V?DqVfY_zyBIeZWKB?_e6BHv(pjvJIZj27+vuBTKW4+@QXry3XgmBdwrC*Y!}uF z`xG7`_x2#&oULi-q__n%q)UGGw@sHP^x@|vAG1GVTPhz5Z1KeS82$Tckk9@Xp$Y)pSmD?KvI3L6P>LDL%^GIa(R!g$N9+Do^+jeN8o``lO$Ob(! z^>ciOJOSBV7mCk%?CpxmUi8Qm|Lq;}?iXs~7$uW)j}6AMhLxO6C#_u7oQb99Sn}-n z)5E97lTV*HGof8fUOYWKt|eJoFBD4YU9XK@(xm1Xjw*e80cqWG{%|&bA{f|X9q62v7wmOA}XaoCk5=eWM zZbiyR^Eix$V%(du1?%Z0H{Wq6$^U=(^~1-WpUgw~Xe^i9d~^?a{n{SjSCD>g{66^o z$W7w0(H`{HdlCD39XhI)^lrWMJ@JIIpQ51mp>xT#eHRLsC!2)?QDP*yHo9B9^AaUhm!U@og4C_eo`)X?}24G?B_Z$k|+-m#d!U$VBA037U$*q{RaRV97X^D diff --git a/tests/build/test/out/c/cmock.o b/tests/build/test/out/c/cmock.o deleted file mode 100644 index 162be594be8e993b0d9cd86d186661c8be1c8c4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8152 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 Cqqzc3qmQSrGh+|D&i%T%y(w) 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 K+ERF!e*XsoyBp*H diff --git a/tests/build/test/out/c/test_StringManipulation_runner.o b/tests/build/test/out/c/test_StringManipulation_runner.o deleted file mode 100644 index a16f5ca7cabe5425f7561602ee5f41abf3faf7d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7004 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 Y>2T~z=gTadbQ6Dxf77Fp!0E^T3A7N^asU7T diff --git a/tests/build/test/out/test_StringManipulation.out b/tests/build/test/out/test_StringManipulation.out deleted file mode 100755 index e8425d00e8c575e46d6dbe7b500b856acf38ef57..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59008 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 diff --git a/tests/build/test/preprocess/files/test_LoginCustomer.c b/tests/build/test/preprocess/files/test_LoginCustomer.c deleted file mode 100644 index 28f8ec8..0000000 --- a/tests/build/test/preprocess/files/test_LoginCustomer.c +++ /dev/null @@ -1,87 +0,0 @@ -#include "Semester/ProgMeth/Bankmanagement/bankmanagement-system/src/LoginCustomer.h" -#include "/var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h" -void setUp(){}; - -void tearDown(){}; - -void test_checkLogin() - -{ - - - - - -_Bool - - expected_test_values_compute_to_true[] = {4==4, - - 1 - - == - - 1 - - , 1==1, - - 0 - - == - - 0 - - , 'z'=='z', '='=='=',0x1A==0x1A}; - - int length_1 = sizeof(expected_test_values_compute_to_true)/sizeof( - - _Bool - - ); - - - - - -_Bool - - expected_test_values_compute_to_false[] = {4!=4, - - 1 - - == - - 0 - - ,1==0, - - 0 - - == - - 1 - - ,'z'=='x','!'==')',0x1A==0x2B}; - - int length_2 = sizeof(expected_test_values_compute_to_false)/sizeof( - - _Bool - - ); - - - - - - for(int i=0;i<7;++i) { - - do {if ((checkLogin(expected_test_values_compute_to_true[i]))) {} else {UnityFail( ((" Expected TRUE Was FALSE")), (UNITY_UINT)((UNITY_UINT)(16)));}} while(0); - - } - - for(int i=0;i<7;++i){ - - do {if (!(checkLogin(expected_test_values_compute_to_false[i]))) {} else {UnityFail( ((" Expected FALSE Was TRUE")), (UNITY_UINT)((UNITY_UINT)(19)));}} while(0); - - } - -} diff --git a/tests/build/test/preprocess/files/test_StringManipulation.c b/tests/build/test/preprocess/files/test_StringManipulation.c deleted file mode 100644 index 0d87c99..0000000 --- a/tests/build/test/preprocess/files/test_StringManipulation.c +++ /dev/null @@ -1,195 +0,0 @@ -#include "Semester/ProgMeth/Bankmanagement/bankmanagement-system/src/StringManipulation.h" -#include "/var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h" - - - - - - -void test_to_string() - -{ - - - - char *result_1[] = {"0","1","2","3","4","5","6","7","8","9","10"}; - - char *result_2[] = {"500","502","504","506","508","510","512","514","516","518"}; - - char *result_3[] = {"1000","2000","3000","4000","5000","6000","7000","8000","9000","10000"}; - - char *result_4[] = {"9999","8999","7999","6999","5999","4999","3999","2999","1999","999"}; - - char *result_5[] = {"1000000","2000000","3000000","4000000","5000000","6000000","7000000", - - "8000000","9000000","10000000"}; - - - - for(int i=0;i<=10;++i){ - - UnityAssertEqualString((const char*)((result_1[i])), (const char*)((to_string(i))), ( - - ((void *)0) - - ), (UNITY_UINT)(17)); - - } - - - - for(int i=0, j=500;i<10;++i,j+=2){ - - UnityAssertEqualString((const char*)((result_2[i])), (const char*)((to_string(j))), ( - - ((void *)0) - - ), (UNITY_UINT)(21)); - - } - - - - for(int i=0, j=1000;i<10;++i,j+=1000){ - - UnityAssertEqualString((const char*)((result_3[i])), (const char*)((to_string(j))), ( - - ((void *)0) - - ), (UNITY_UINT)(25)); - - } - - - - for(int i=0, j=9999;i<10;++i,j-=1000){ - - UnityAssertEqualString((const char*)((result_4[i])), (const char*)((to_string(j))), ( - - ((void *)0) - - ), (UNITY_UINT)(29)); - - } - - for(int i=0, j=1000000;i<10;++i,j+=1000000){ - - UnityAssertEqualString((const char*)((result_5[i])), (const char*)((to_string(j))), ( - - ((void *)0) - - ), (UNITY_UINT)(32)); - - } - - - -} - - - - - -void test_generateCheckString() - -{ - - - - int numbers_1[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25}; - - char *strings_1[] = {"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"}; - - char *result_1[] = {"0=a","1=b","2=c","3=d","4=e","5=f","6=g","7=h","8=i","9=j","10=k","11=l","12=m","13=n","14=o","15=p","16=q","17=r", "18=s","19=t","20=u","21=v","22=w","23=x","24=y","25=z"}; - - for(int i=0;i<26;++i){ - - UnityAssertEqualString((const char*)((result_1[i])), (const char*)((generateCheckString(numbers_1[i],*(strings_1+i)))), ( - - ((void *)0) - - ), (UNITY_UINT)(45)); - - } - - - - int numbers_2[] = {0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368,75025}; - - char *strings_2[] = {"z","zy","zyx","zyxw","zyxwv","zyxwvu","zyxwvut","zyxwvuts","zyxwvutsr","zyxwvutsrq","zyxwvutsrqp", - - "zyxwvutsrqpo","zyxwvutsrqpon","zyxwvutsrqponm","zyxwvutsrqponml","zyxwvutsrqponmlk", - - "zyxwvutsrqponmlkj","zyxwvutsrqponmlkji","zyxwvutsrqponmlkjih","zyxwvutsrqponmlkjihg","zyxwvutsrqponmlkjihgf", - - "zyxwvutsrqponmlkjihgfe","zyxwvutsrqponmlkjihgfed","zyxwvutsrqponmlkjihgfedc","zyxwvutsrqponmlkjihgfedcb", - - "zyxwvutsrqponmlkjihgfedcba"}; - - char *result_2[] = {"0=z","1=zy","1=zyx","2=zyxw","3=zyxwv","5=zyxwvu","8=zyxwvut","13=zyxwvuts","21=zyxwvutsr","34=zyxwvutsrq", - - "55=zyxwvutsrqp","89=zyxwvutsrqpo","144=zyxwvutsrqpon","233=zyxwvutsrqponm","377=zyxwvutsrqponml", - - "610=zyxwvutsrqponmlk","987=zyxwvutsrqponmlkj","1597=zyxwvutsrqponmlkji","2584=zyxwvutsrqponmlkjih", - - "4181=zyxwvutsrqponmlkjihg","6765=zyxwvutsrqponmlkjihgf","10946=zyxwvutsrqponmlkjihgfe", - - "17711=zyxwvutsrqponmlkjihgfed","28657=zyxwvutsrqponmlkjihgfedc","46368=zyxwvutsrqponmlkjihgfedcb", - - "75025=zyxwvutsrqponmlkjihgfedcba"}; - - for(int i=0;i<26;++i){ - - UnityAssertEqualString((const char*)((result_2[i])), (const char*)((generateCheckString(numbers_2[i],*(strings_2+i)))), ( - - ((void *)0) - - ), (UNITY_UINT)(61)); - - } - - - - srand(time(0)); - - int random_number=0; - - char *random_numbers_strings[20]; - - int random_numbers[20]; - - for(int i=0;i<20;++i){ - - random_number = (rand() % 100) + 1; - - random_numbers_strings[i] = to_string(random_number); - - random_numbers[i] = random_number; - - } - - char *strings_3[] = {"tree","plant","tea","programming","assembler","unix","BSD","snow","mountain","table","wood","forest", "calculator","book","light","keyboard","old","paper","pencil","voltage"}; - - char *result_3[20]; - - for(int i=0;i<20;++i){ - - random_numbers_strings[i] = strcat(random_numbers_strings[i],"="); - - result_3[i] = strcat(random_numbers_strings[i],strings_3[i]); - - printf("%s\n",result_3[i]); - - } - - for(int i=0;i<20;++i){ - - UnityAssertEqualString((const char*)((result_3[i])), (const char*)((generateCheckString(random_numbers[i],strings_3[i]))), ( - - ((void *)0) - - ), (UNITY_UINT)(81)); - - } - -} diff --git a/tests/build/test/preprocess/includes/test_LoginCustomer.c b/tests/build/test/preprocess/includes/test_LoginCustomer.c deleted file mode 100644 index 8d24aa9..0000000 --- a/tests/build/test/preprocess/includes/test_LoginCustomer.c +++ /dev/null @@ -1,3 +0,0 @@ ---- -- "/var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h" -- Semester/ProgMeth/Bankmanagement/bankmanagement-system/src/LoginCustomer.h diff --git a/tests/build/test/preprocess/includes/test_StringManipulation.c b/tests/build/test/preprocess/includes/test_StringManipulation.c deleted file mode 100644 index 77ded96..0000000 --- a/tests/build/test/preprocess/includes/test_StringManipulation.c +++ /dev/null @@ -1,3 +0,0 @@ ---- -- "/var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h" -- Semester/ProgMeth/Bankmanagement/bankmanagement-system/src/StringManipulation.h diff --git a/tests/build/test/results/test_LoginCustomer.pass b/tests/build/test/results/test_LoginCustomer.pass deleted file mode 100644 index 730ed0b..0000000 --- a/tests/build/test/results/test_LoginCustomer.pass +++ /dev/null @@ -1,18 +0,0 @@ ---- -:source: - :path: test - :file: test_LoginCustomer.c -:successes: -- :test: test_checkLogin - :line: 5 - :message: '' - :unity_test_time: 0 -:failures: [] -:ignores: [] -:counts: - :total: 1 - :passed: 1 - :failed: 0 - :ignored: 0 -:stdout: [] -:time: 0.001912861000164412 diff --git a/tests/build/test/results/test_StringManipulation.pass b/tests/build/test/results/test_StringManipulation.pass deleted file mode 100644 index 84a7b10..0000000 --- a/tests/build/test/results/test_StringManipulation.pass +++ /dev/null @@ -1,42 +0,0 @@ ---- -:source: - :path: test - :file: test_StringManipulation.c -:successes: -- :test: test_to_string - :line: 6 - :message: '' - :unity_test_time: 0 -- :test: test_generateCheckString - :line: 38 - :message: '' - :unity_test_time: 0 -:failures: [] -:ignores: [] -:counts: - :total: 2 - :passed: 2 - :failed: 0 - :ignored: 0 -:stdout: -- 9=tree -- 26=plant -- 92=tea -- 31=programming -- 75=assembler -- 28=unix -- 92=BSD -- 99=snow -- 10=mountain -- 43=table -- 92=wood -- 98=forest -- 3=calculator -- 32=book -- 29=light -- 92=keyboard -- 35=old -- 27=paper -- 85=pencil -- 91=voltage -:time: 0.0019293400000606198 diff --git a/tests/build/test/runners/test_LoginCustomer_runner.c b/tests/build/test/runners/test_LoginCustomer_runner.c deleted file mode 100644 index f061ca9..0000000 --- a/tests/build/test/runners/test_LoginCustomer_runner.c +++ /dev/null @@ -1,81 +0,0 @@ -/* AUTOGENERATED FILE. DO NOT EDIT. */ - -/*=======Automagically Detected Files To Include=====*/ -#include "unity.h" - -int GlobalExpectCount; -int GlobalVerifyOrder; -char* GlobalOrderError; - -/*=======External Functions This Runner Calls=====*/ -extern void setUp(void); -extern void tearDown(void); -extern void test_checkLogin(); - - -/*=======Mock Management=====*/ -static void CMock_Init(void) -{ - GlobalExpectCount = 0; - GlobalVerifyOrder = 0; - GlobalOrderError = NULL; -} -static void CMock_Verify(void) -{ -} -static void CMock_Destroy(void) -{ -} - -/*=======Test Reset Options=====*/ -void resetTest(void); -void resetTest(void) -{ - tearDown(); - CMock_Verify(); - CMock_Destroy(); - CMock_Init(); - setUp(); -} -void verifyTest(void); -void verifyTest(void) -{ - CMock_Verify(); -} - -/*=======Test Runner Used To Run Each Test=====*/ -static void run_test(UnityTestFunction func, const char* name, UNITY_LINE_TYPE line_num) -{ - Unity.CurrentTestName = name; - Unity.CurrentTestLineNumber = line_num; -#ifdef UNITY_USE_COMMAND_LINE_ARGS - if (!UnityTestMatches()) - return; -#endif - Unity.NumberOfTests++; - UNITY_CLR_DETAILS(); - UNITY_EXEC_TIME_START(); - CMock_Init(); - if (TEST_PROTECT()) - { - setUp(); - func(); - } - if (TEST_PROTECT()) - { - tearDown(); - CMock_Verify(); - } - CMock_Destroy(); - UNITY_EXEC_TIME_STOP(); - UnityConcludeTest(); -} - -/*=======MAIN=====*/ -int main(void) -{ - UnityBegin("test_LoginCustomer.c"); - run_test(test_checkLogin, "test_checkLogin", 5); - - return UnityEnd(); -} diff --git a/tests/build/test/runners/test_StringManipulation_runner.c b/tests/build/test/runners/test_StringManipulation_runner.c deleted file mode 100644 index 8c93227..0000000 --- a/tests/build/test/runners/test_StringManipulation_runner.c +++ /dev/null @@ -1,89 +0,0 @@ -/* AUTOGENERATED FILE. DO NOT EDIT. */ - -/*=======Automagically Detected Files To Include=====*/ -#include "unity.h" - -int GlobalExpectCount; -int GlobalVerifyOrder; -char* GlobalOrderError; - -/*=======External Functions This Runner Calls=====*/ -extern void setUp(void); -extern void tearDown(void); -extern void test_to_string(); -extern void test_generateCheckString(); - - -/*=======Mock Management=====*/ -static void CMock_Init(void) -{ - GlobalExpectCount = 0; - GlobalVerifyOrder = 0; - GlobalOrderError = NULL; -} -static void CMock_Verify(void) -{ -} -static void CMock_Destroy(void) -{ -} - -/*=======Setup (stub)=====*/ -void setUp(void) {} - -/*=======Teardown (stub)=====*/ -void tearDown(void) {} - -/*=======Test Reset Options=====*/ -void resetTest(void); -void resetTest(void) -{ - tearDown(); - CMock_Verify(); - CMock_Destroy(); - CMock_Init(); - setUp(); -} -void verifyTest(void); -void verifyTest(void) -{ - CMock_Verify(); -} - -/*=======Test Runner Used To Run Each Test=====*/ -static void run_test(UnityTestFunction func, const char* name, UNITY_LINE_TYPE line_num) -{ - Unity.CurrentTestName = name; - Unity.CurrentTestLineNumber = line_num; -#ifdef UNITY_USE_COMMAND_LINE_ARGS - if (!UnityTestMatches()) - return; -#endif - Unity.NumberOfTests++; - UNITY_CLR_DETAILS(); - UNITY_EXEC_TIME_START(); - CMock_Init(); - if (TEST_PROTECT()) - { - setUp(); - func(); - } - if (TEST_PROTECT()) - { - tearDown(); - CMock_Verify(); - } - CMock_Destroy(); - UNITY_EXEC_TIME_STOP(); - UnityConcludeTest(); -} - -/*=======MAIN=====*/ -int main(void) -{ - UnityBegin("test_StringManipulation.c"); - run_test(test_to_string, "test_to_string", 6); - run_test(test_generateCheckString, "test_generateCheckString", 38); - - return UnityEnd(); -} diff --git a/tests/project.yml b/tests/project.yml deleted file mode 100644 index 7245e5e..0000000 --- a/tests/project.yml +++ /dev/null @@ -1,101 +0,0 @@ ---- - -# Notes: -# Sample project C code is not presently written to produce a release artifact. -# As such, release build options are disabled. -# This sample, therefore, only demonstrates running a collection of unit tests. - -:project: - :use_exceptions: FALSE - :use_test_preprocessor: TRUE - :use_auxiliary_dependencies: TRUE - :build_root: build -# :release_build: TRUE - :test_file_prefix: test_ - :which_ceedling: gem - :ceedling_version: 0.31.1 - :default_tasks: - - test:all - -#:test_build: -# :use_assembly: TRUE - -#:release_build: -# :output: MyApp.out -# :use_assembly: FALSE - -:environment: - -:extension: - :executable: .out - -:paths: - :test: - - +:test/** - - -:test/support - :source: - - /home/julius/Documents/Studium/Informatik/1. Semester/ProgMeth/Bankmanagement/bankmanagement-system/src/** - :support: - - test/support - :libraries: [] - -:defines: - # in order to add common defines: - # 1) remove the trailing [] from the :common: section - # 2) add entries to the :common: section (e.g. :test: has TEST defined) - :common: &common_defines [] - :test: - - *common_defines - - TEST - :test_preprocess: - - *common_defines - - TEST - -:cmock: - :mock_prefix: mock_ - :when_no_prototypes: :warn - :enforce_strict_ordering: TRUE - :plugins: - - :ignore - - :callback - :treat_as: - uint8: HEX8 - uint16: HEX16 - uint32: UINT32 - int8: INT8 - bool: UINT8 - -# Add -gcov to the plugins list to make sure of the gcov plugin -# You will need to have gcov and gcovr both installed to make it work. -# For more information on these options, see docs in plugins/gcov -:gcov: - :reports: - - HtmlDetailed - :gcovr: - :html_medium_threshold: 75 - :html_high_threshold: 90 - -#:tools: -# Ceedling defaults to using gcc for compiling, linking, etc. -# As [:tools] is blank, gcc will be used (so long as it's in your system path) -# See documentation to configure a given toolchain for use - -# LIBRARIES -# These libraries are automatically injected into the build process. Those specified as -# common will be used in all types of builds. Otherwise, libraries can be injected in just -# tests or releases. These options are MERGED with the options in supplemental yaml files. -:libraries: - :placement: :end - :flag: "-l${1}" - :path_flag: "-L ${1}" - :system: [] # for example, you might list 'm' to grab the math library - :test: [] - :release: [] - -:plugins: - :load_paths: - - "#{Ceedling.load_path}" - :enabled: - - stdout_pretty_tests_report - - module_generator -... diff --git a/tests/support/.gitkeep b/tests/support/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/tests/test/support/.gitkeep b/tests/test/support/.gitkeep deleted file mode 100644 index e69de29..0000000