From ec3e31a0cc7eae17a78081c05f0a0fab274260c2 Mon Sep 17 00:00:00 2001 From: Shivam Chaudhary Date: Tue, 24 Jan 2023 20:35:05 +0100 Subject: [PATCH 01/14] Create .gitignore --- .gitignore | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e69de29 From fe8b90a6031986c43e296b13c5195e193bf3dbe7 Mon Sep 17 00:00:00 2001 From: Shivam Chaudhary Date: Tue, 24 Jan 2023 20:36:55 +0100 Subject: [PATCH 02/14] Revert "Create .gitignore" This reverts commit ec3e31a0cc7eae17a78081c05f0a0fab274260c2. --- .gitignore | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 .gitignore diff --git a/.gitignore b/.gitignore deleted file mode 100644 index e69de29..0000000 From cf9f3827c68aed1ea8648acb354b62850257a41b Mon Sep 17 00:00:00 2001 From: Shivam Chaudhary Date: Tue, 24 Jan 2023 20:39:58 +0100 Subject: [PATCH 03/14] Update .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..496ee2c --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.DS_Store \ No newline at end of file From e30f7a66ae355d3ee391bb7f0f614e87520e30b9 Mon Sep 17 00:00:00 2001 From: fdai7207 Date: Thu, 26 Jan 2023 17:39:22 +0100 Subject: [PATCH 04/14] implement the main menu --- src/.mainMenu.c.swp | Bin 0 -> 12288 bytes src/mainMenu.c | 93 ++++++++++++++++++++++++++++++ src/mainMenu.h | 15 +++++ src/run_BankManagementSimulator | Bin 0 -> 16344 bytes src/run_BankManagementSimulator.c | 8 +++ 5 files changed, 116 insertions(+) create mode 100644 src/.mainMenu.c.swp create mode 100644 src/mainMenu.c create mode 100644 src/mainMenu.h create mode 100755 src/run_BankManagementSimulator create mode 100644 src/run_BankManagementSimulator.c diff --git a/src/.mainMenu.c.swp b/src/.mainMenu.c.swp new file mode 100644 index 0000000000000000000000000000000000000000..450d36d58813421c426ec69c21ace50d51d98f20 GIT binary patch literal 12288 zcmeI2&2Jk;7>6f(NEAqm;82dQUE11-lQ`j0C2}N+day*KicdkE((!uMUUhfI+MP{m zlE4870&xWi1QI7CI8lTUT;K?z5)v2wf+AW@J@s0CGrQYvYLb*=q*?3nYBTS?^UgCf zQld<^`Eq-OPR%YbT#qsKzi4^xh|I% zBQAMgL_+GBWRz$T%_Xrn7x6&auN5KFS#RHrF2EUZ2JYR!Bzt;czG>o*RV(zw<1gL& zt1i+Ra0Z+KXTTY72AlzBz!`7`4!i+9oM3NZ6!+yLS?u06`wU*IZu z4{U=?um(~P0v`y_0Mp<&cnVZO1rRs_4ud}*ffuj@Zo>6lqVtHAhw4Y> zdd#nx<>ypCki-+>lFmfKP>qC`-LJnpuRkyP0gk4|HUmkqPM%718j1M7lb8XP%FYt) ztU_Eu#z6M}U#7F6;EABbY9l2DDWCK}kgvi}t($y)Dy`9^GB&Uw3DSyA z;~*}r*ps-ieUGiFphw9-t(yb5wfY8@Up|fbt+12bi@6QtFx3>uH68}N3h8)6ypOZI zm2AS8iQcf^B1}ZKF1GBmY1uRNt12}GrD2b{g19E*Leu;y8VMdJq|kt&c(LFb?PLxY z6ZbrYv&%*Ihc?(D(=i2p4X2LJiZ}|A1nbW{)mts{Ia=$x6?DhPQdYVt+FZr(pYc4A zB-D?&)S`!8vyYhxbZtZNwOi*pPSN-6FqA|sN_4DMShHdqC+zL@p~6lQabv!jZ<#E2 z;8V>T2=8LsZ==00;_S6LVPqyb<=GRDOKimBNwr}Uj%~bRoehN-_#+yr6l)*lERq?D ztuRzrZ1`FJ=nZ&0g^9=X7v*KU*)(K7Key0aMYLU6c(H9_?aIm)Kxy)0q0?B}lJoTA zYv#75JlM|Mj%cGp$X-#7kznhi%}tsrH&j}5veP_S$SDh_6Q#fgS>d*4JFIdRblp`d zq`M}d= 18) + { + + return true; + + } + + else + { + + return false; + + } + +} + +bool checkIfInteger(char* input){ + + char *end_pointer; + + strtol(input, &end_pointer, 10); + + if (end_pointer == input || *end_pointer != '\0') + { + + return false; + + } + + else + { + + return true; + + } +} + +void ageInput(){ + + char input[20]; + char* input_pointer; + + long age; + + printf("\nPlease specify your age : "); + scanf("%s",input); + + if (checkIfInteger(input) == true ) + { + age = strtol(input,&input_pointer,10); + + if(agePermission(age)== true) + { + printf("Access granted!\n\n\n\n"); + + showMenu(); + + } + else if(agePermission(age)== false) + { + + printf("You should be at least 18 years old to create a bank account!\n"); + + } + } + + else + { + + printf("input invalid! try again!\n"); + + } + +} + + +void showMenu(){ + + printf("\t\t\t\t\t\t\t Welcome to Bank Manager!"); + printf("\n\n\n\n\t\t\t\t\t\tPlease select one of the following functions!"); + printf("\n\n\n\n\t\t\t\t\t\t ->Login as an existing costumer."); + printf("\n\n\t\t\t\t\t\t ->Register as a new costumer."); + printf("\n\n\t\t\t\t\t\t ->Login as an Employee."); + printf("\n\n\t\t\t\t\t\t\t\t ->Exit.\n"); + printf("\n\n\n\n\n Selection :\n"); + +} diff --git a/src/mainMenu.h b/src/mainMenu.h new file mode 100644 index 0000000..f62dda9 --- /dev/null +++ b/src/mainMenu.h @@ -0,0 +1,15 @@ +#ifndef MAINMENU_H_ +#define MAINMENU_H_ + +#include +#include +#include +#include + +void showMenu(); +void ageInput(); + +bool agePermission(int age); +bool checkIfInteger(char* input); + +#endif diff --git a/src/run_BankManagementSimulator b/src/run_BankManagementSimulator new file mode 100755 index 0000000000000000000000000000000000000000..44db5061d4cff47e5bd7164e534851c4e0a7d1b9 GIT binary patch literal 16344 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 qNK Date: Thu, 26 Jan 2023 19:38:30 +0100 Subject: [PATCH 05/14] remove unnecessary files --- build-project.sh | 5 +++++ src/.mainMenu.c.swp | Bin 12288 -> 0 bytes src/{run_BankManagementSimulator.c => main.c} | 0 src/run_BankManagementSimulator | Bin 16344 -> 0 bytes 4 files changed, 5 insertions(+) create mode 100755 build-project.sh delete mode 100644 src/.mainMenu.c.swp rename src/{run_BankManagementSimulator.c => main.c} (100%) delete mode 100755 src/run_BankManagementSimulator diff --git a/build-project.sh b/build-project.sh new file mode 100755 index 0000000..0ded56d --- /dev/null +++ b/build-project.sh @@ -0,0 +1,5 @@ +clear +cd src/ +gcc main.c mainMenu.c +./a.out +rm a.out diff --git a/src/.mainMenu.c.swp b/src/.mainMenu.c.swp deleted file mode 100644 index 450d36d58813421c426ec69c21ace50d51d98f20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12288 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 qNK Date: Fri, 27 Jan 2023 03:02:41 +0100 Subject: [PATCH 06/14] implement unit tests for the mainMenu --- build-project.sh | 1 + build/test/cache/defines_dependency.yml | 3 + build/test/cache/input.yml | 242 ++++++++++++++ build/test/cache/test_mainMenu.c | 299 ++++++++++++++++++ build/test/dependencies/cmock.d | 6 + build/test/dependencies/force_build | 0 build/test/dependencies/mainMenu.d | 1 + build/test/dependencies/test_mainMenu.d | 4 + .../test/dependencies/test_mainMenu_runner.d | 4 + build/test/dependencies/unity.d | 4 + build/test/out/c/cmock.o | Bin 0 -> 11208 bytes build/test/out/c/mainMenu.o | Bin 0 -> 6992 bytes build/test/out/c/test_mainMenu.o | Bin 0 -> 9952 bytes build/test/out/c/test_mainMenu_runner.o | Bin 0 -> 9680 bytes build/test/out/c/unity.o | Bin 0 -> 57120 bytes build/test/out/test_mainMenu.out | Bin 0 -> 61120 bytes build/test/preprocess/files/test_mainMenu.c | 299 ++++++++++++++++++ .../test/preprocess/includes/test_mainMenu.c | 3 + build/test/results/test_mainMenu.pass | 30 ++ build/test/runners/test_mainMenu_runner.c | 87 +++++ project.yml | 101 ++++++ tests/support/.gitkeep | 0 tests/test_mainMenu.c | 145 +++++++++ 23 files changed, 1229 insertions(+) create mode 100644 build/test/cache/defines_dependency.yml create mode 100644 build/test/cache/input.yml create mode 100644 build/test/cache/test_mainMenu.c create mode 100644 build/test/dependencies/cmock.d create mode 100644 build/test/dependencies/force_build create mode 100644 build/test/dependencies/mainMenu.d create mode 100644 build/test/dependencies/test_mainMenu.d create mode 100644 build/test/dependencies/test_mainMenu_runner.d create mode 100644 build/test/dependencies/unity.d create mode 100644 build/test/out/c/cmock.o create mode 100644 build/test/out/c/mainMenu.o create mode 100644 build/test/out/c/test_mainMenu.o create mode 100644 build/test/out/c/test_mainMenu_runner.o create mode 100644 build/test/out/c/unity.o create mode 100755 build/test/out/test_mainMenu.out create mode 100644 build/test/preprocess/files/test_mainMenu.c create mode 100644 build/test/preprocess/includes/test_mainMenu.c create mode 100644 build/test/results/test_mainMenu.pass create mode 100644 build/test/runners/test_mainMenu_runner.c create mode 100644 project.yml create mode 100644 tests/support/.gitkeep create mode 100644 tests/test_mainMenu.c diff --git a/build-project.sh b/build-project.sh index 0ded56d..4247c59 100755 --- a/build-project.sh +++ b/build-project.sh @@ -1,4 +1,5 @@ clear +ceedling test:all cd src/ gcc main.c mainMenu.c ./a.out diff --git a/build/test/cache/defines_dependency.yml b/build/test/cache/defines_dependency.yml new file mode 100644 index 0000000..64f9ba3 --- /dev/null +++ b/build/test/cache/defines_dependency.yml @@ -0,0 +1,3 @@ +--- +src/mainMenu.c: +- TEST diff --git a/build/test/cache/input.yml b/build/test/cache/input.yml new file mode 100644 index 0000000..e0eb2fd --- /dev/null +++ b/build/test/cache/input.yml @@ -0,0 +1,242 @@ +--- +: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: + - "+:tests/**" + - "-:tests/support" + :source: + - src/** + :support: + - tests/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/3.0.0/gems/ceedling-0.31.1/vendor" + :defines: [] +:cmock: + :vendor_path: "/var/lib/gems/3.0.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/3.0.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/3.0.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/3.0.0/gems/ceedling-0.31.1/lib/../plugins/stdout_pretty_tests_report" + :module_generator_path: "/var/lib/gems/3.0.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/build/test/cache/test_mainMenu.c b/build/test/cache/test_mainMenu.c new file mode 100644 index 0000000..c8bdf9f --- /dev/null +++ b/build/test/cache/test_mainMenu.c @@ -0,0 +1,299 @@ +#include "src/mainMenu.h" +#include "/var/lib/gems/3.0.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h" + + + + + + + + +void setUp(void) + +{ + +} + + + +void tearDown(void) + +{ + +} + + + +void test_agePermissionValidAge(void) + +{ + + + + + + + + + + int validAge[83]; + + + + + + _Bool + + validAgeResult[83]; + + + + int j=0; + + + + for(int i =18;i<101;i++){ + + + + validAge[j]= i; + + j++; + + } + + + + + + + + for(int i=0;i<83;i++){ + + + + validAgeResult[i] = agePermission(validAge[i]); + + } + + + + + + + + for(int i=0;i<83;i++){ + + + + do {if ((validAgeResult[i])) {} else {UnityFail( ((" Expected TRUE Was FALSE")), (UNITY_UINT)((UNITY_UINT)(44)));}} while(0); + + + + } + + + +} + + + +void test_agePermissionInvalidAge(void) + +{ + + + + + + + + + + + + int invalidAge[117]; + + + + + + _Bool + + invalidAgeResult[117]; + + + + int j=0; + + + + for(int i =-100;i<18;i++){ + + + + invalidAge[j]= i; + + j++; + + } + + + + + + + + for(int i=0;i<117;i++){ + + + + invalidAgeResult[i] = agePermission(invalidAge[i]); + + + + } + + + + + + + + for(int i=0;i<117;i++){ + + + + do {if (!(invalidAgeResult[i])) {} else {UnityFail( ((" Expected FALSE Was TRUE")), (UNITY_UINT)((UNITY_UINT)(81)));}} while(0); + + + + } + + + +} + + + +void test_IsInteger(void) + +{ + + + + + + + + char* inputIsInteger[] = {"-10000000","-2000000","-354698","-66667","-7878","-987","-64","-5","0","1","2","10","201","333","4321","56974","698751","7878989","88954621" }; + + + + + + _Bool + + inputIsIntegerResult[19]; + + + + + + + + for(int i=0;i<19;i++) + + { + + + + inputIsIntegerResult[i] = checkIfInteger(inputIsInteger[i]); + + + + } + + + + + + + + for(int i=0;i<19;i++) + + { + + + + do {if ((inputIsIntegerResult[i])) {} else {UnityFail( ((" Expected TRUE Was FALSE")), (UNITY_UINT)((UNITY_UINT)(110)));}} while(0); + + + + } + + + +} + + + +void test_IsNotInteger(void) + +{ + + + + + + + + char* inputIsNotInteger[] = {"0.15","3.141592653589793238","5.3254f","-6.264","-7878.3261","foo","Bar","FIZZ","buzZ","joHN","jAnE","foo-bar","3,15","2k13",""," ","-","+","/*-+.,/=" }; + + + + + + _Bool + + inputIsNotIntegerResult[19]; + + + + + + + + for(int i=0;i<19;i++) + + { + + + + inputIsNotIntegerResult[i] = checkIfInteger(inputIsNotInteger[i]); + + + + } + + + + + + + + for(int i=0;i<19;i++) + + { + + + + do {if (!(inputIsNotIntegerResult[i])) {} else {UnityFail( ((" Expected FALSE Was TRUE")), (UNITY_UINT)((UNITY_UINT)(139)));}} while(0); + + + + } + + + +} diff --git a/build/test/dependencies/cmock.d b/build/test/dependencies/cmock.d new file mode 100644 index 0000000..7d1cf5d --- /dev/null +++ b/build/test/dependencies/cmock.d @@ -0,0 +1,6 @@ +build/test/out/c/cmock.o: \ + /var/lib/gems/3.0.0/gems/ceedling-0.31.1/vendor/cmock/src/cmock.c \ + /var/lib/gems/3.0.0/gems/ceedling-0.31.1/vendor/cmock/src/cmock.h \ + /var/lib/gems/3.0.0/gems/ceedling-0.31.1/vendor/cmock/src/cmock_internals.h \ + /var/lib/gems/3.0.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h \ + /var/lib/gems/3.0.0/gems/ceedling-0.31.1/vendor/unity/src/unity_internals.h diff --git a/build/test/dependencies/force_build b/build/test/dependencies/force_build new file mode 100644 index 0000000..e69de29 diff --git a/build/test/dependencies/mainMenu.d b/build/test/dependencies/mainMenu.d new file mode 100644 index 0000000..fbd8a70 --- /dev/null +++ b/build/test/dependencies/mainMenu.d @@ -0,0 +1 @@ +build/test/out/c/mainMenu.o: src/mainMenu.c src/mainMenu.h diff --git a/build/test/dependencies/test_mainMenu.d b/build/test/dependencies/test_mainMenu.d new file mode 100644 index 0000000..5ee8500 --- /dev/null +++ b/build/test/dependencies/test_mainMenu.d @@ -0,0 +1,4 @@ +build/test/out/c/test_mainMenu.o: tests/test_mainMenu.c \ + /var/lib/gems/3.0.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h \ + /var/lib/gems/3.0.0/gems/ceedling-0.31.1/vendor/unity/src/unity_internals.h \ + src/mainMenu.h diff --git a/build/test/dependencies/test_mainMenu_runner.d b/build/test/dependencies/test_mainMenu_runner.d new file mode 100644 index 0000000..0ac0cdd --- /dev/null +++ b/build/test/dependencies/test_mainMenu_runner.d @@ -0,0 +1,4 @@ +build/test/out/c/test_mainMenu_runner.o: \ + build/test/runners/test_mainMenu_runner.c \ + /var/lib/gems/3.0.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h \ + /var/lib/gems/3.0.0/gems/ceedling-0.31.1/vendor/unity/src/unity_internals.h diff --git a/build/test/dependencies/unity.d b/build/test/dependencies/unity.d new file mode 100644 index 0000000..e42504d --- /dev/null +++ b/build/test/dependencies/unity.d @@ -0,0 +1,4 @@ +build/test/out/c/unity.o: \ + /var/lib/gems/3.0.0/gems/ceedling-0.31.1/vendor/unity/src/unity.c \ + /var/lib/gems/3.0.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h \ + /var/lib/gems/3.0.0/gems/ceedling-0.31.1/vendor/unity/src/unity_internals.h diff --git a/build/test/out/c/cmock.o b/build/test/out/c/cmock.o new file mode 100644 index 0000000000000000000000000000000000000000..76192cec6c4735e57d9a7940b3d7f35064337676 GIT binary patch literal 11208 zcmcIqdyHJwc|Ui?XLr0W@58Lu@#{JmFo>D;!tyY&Va>Akc=0O`S0+H$vom*gCZ30T z=iaqV6CU0|SOICEN`rz!NcueUX~EDuWGWDDRZ%0x1dp|4h$*VLm%%_q{2jLpxSYfV2m7j$DgJu}yuo;kOWo`v=! z5+&1*T%@YY&!o4G%}t(T9G!|25^>4jxF5%k49)`)3f0j z2=A;2mqQq5-g^~Qfo`4dWXoH}&iZXC_V>Q4xn~-`BNQv2OYj<&WvKTPOme4cGm;NaaiR21#!O+Mlkj|TFinj z8sKTQND>g*mzP3C0$gB0sgEn8d#l+aZXr{1{jlOz!@#ZP-LhA%`X^HEfs&W0d2Xgu zs%A5R=K|`bw6#$Hy_`bapjh^5ZcxZnT<`c%FB^C{k`jXC^4>AeZ!Sm@UdAsKQKr!h zaZBKSDINt~^>dyd`Q1HLfnay|Q*KsAI_c#BaK}`DDRG+@gns2S1wT9x_)Ewfs1_^e zwperb9o(}gCA2bhTa!2vJHtvgC{`J2A~$rYomKNye09d&1FlM*-EB zfm5`iDz&@gudl)>Aj3|#;&dgdfGPK#r?}M>wN^x}?x@uhwR)pgU({L|wJwTU{ZVTb zw&LG{KW)q7@K=@iUqRJw(9Z+iVbF6xcN+9R1KnlNZvef*px*|%+o0!x?lI_J0NrcQ z9|7HG&@FIFt*p~4MuGo2VBI)=t@jHxa%(rt0aTY#;JOVbLBs;rTcBD9KLt5e`l)tK zDg0$3MIBeO{306WqAn^RoKuSTwxkO|-Y)*dFhK9t?|k*9{wEpK9N_apms5 zn^tdI4f|tQ?CQH=qk~{)Y(R)*S_*;o-F=8isq_q_B_(cJjkc6p|7ELp_w_ivts?{X zfW_97Q)jlDJO?_GXi#mrY;|36d5?2RS6_R4!ZC?Q$fvtL}*bQbn z`!S|=9VBc}WFo%8ad!8ipYDwyHwa_XL*XdddNiM3jZ(eP*#w)xzV#OR!}nT)f+$?KsYFx;n7}5ED~qY=8w*FEM9BY=xS5l+d}WYQ>}@ zmTSL&$2U2$q^0e#^ zWm{s8bZ#A%Eeo>am`r>{ZWFO(P9T%I>MF>@Gx7#aTp3|)-%M;wTr4;Li5wl5o#V0x z3olj21q#x+V^|JckbMuz_(|D*mAvSF+4rGryGKX=139EcFC&e@ucY(Y zVc9mL6kVtieZz7c)Xxsfeyna*)%Rm@81h>29&aKLa4QF5*S>@9=+JfU&`|2?)D|~c z4&b)lKIK(BznBFw<7W%ok6(Xn^4eiHIprqvnc9g;w%}JQ)v%TfE60kJTr$W^mLTOx z=4(MFdn9?(uLh9zRQ+Tv072B!jBF`WD=-_ggk(OOH)wIx_ojiCtk( zo7n4>Z$1%twSzS;r}5hZzgU^t9|rsLz=ZtF65r{2-p*nrQ!?>gUa%vV^SxSaXVn+^ zQZ*9@91T+jtnKrTi4q1LR%*qm3S>B#5Y!4)KWKzhggO$;%=Tl>W!W05VozI`Pl*AgVd{T1cPfbR->7tnQSqj zfzjHahsl~yew*l^Lv2gT?=9BKnIKzeoEhqc8Y1;4iXe({cTM>*T-+Sy^PYb@j`QC@CxiJ`RM*B58rIYAAunM#SjXzCweQ0!NNE$Nk z#Wwar4s8xS4j)XAno8=L5j-T}GX3E3NI9WSU!^J;1 zo$&`t#mPZ{YlE;iQ(JU1>v_2nEdAt`)YU_&p}}ddlB@cI*)qIb25Wv+w^CX0|LH^w zhBXQ=n;nGnVdC21Bt#V+Pfk_B!J(nSVkKJ&bDmIfK{O3Dj19abU~|?|1yKufIWG?l zv1@en26yv8H7s-@C5QAV4c&XyRjDn*mlMnv2Hq6i@DFc)ILh#1nnR55l$FrN;@oqa zaE^C7YdTsJUxxc+EnxT$i^?I!y1E~Vjdr%go&X8W!wU{I%*{ z6*}u>{@yx&+sE+9^r8w?mWdC4yNCe*Ts_TTzSMcti*NR+rYv%o@2=KdmqQf zG3;~7GDJAjT%*zW5?=}8q7B)LN?fS7UK5;i|3+3^t=LBF79e|sdRZt2$8#s)OmqE5 zgyY)B!uS`Vjdmc1Q-$%T33oLd$$y{l%@+O|;ae;mpLuBidJDfm_=trkV9HTGZQ*MO zKVad5fcF~fMD0zG*+Dqd{N6Z7_=8Ym;Wtfz@c$v4-%Sq?ehp=k`~dqJ;U&U(=AI|~ zj|s>1gym<1|2g6OI{YufzehN~C_f_nB@2&^#YGpTd94^%ry<9ejd8;)N{7rVtbSRU zsJaFX6Z*O{ZrBFlCbyuG^k~ugHD{Qur!9@3nI~v3K_qu=T> zh9DHi`GmYn!;A1EOW?kNqYbt{W8mnQ?LWQ*{_+y|yG!7|HgMB#2kZ|l*e?^m#=y;Z z4j8y8UtR)#%D_!Ke{JBVowp3!ly_TJZ`rVZqLgh12^qIWZ-C@?L21TsDtI3 zOW@C2xRw^;CrjYW$L?Xy#D(t(#`%2b`-Sntq`>zJ<0lDssb>5cqWOMdoO2t#Ul>12 z^6a1S1;R(DW}I^vzF!zmVgm}_FN}{6&i%z3-MrQLCP%D;{y_zIk}im&%*90W`OY}O z;uF+BcQh3Wxq@(%htD`s!F&V@;^_Ahij&8I@qZ&@J5d-4<0naeuZAQ1I>J9=;in0| z)52HbVuUiOtH{n1=8s?e8aMg7lD$5T7qSgtPoxs0^jwkjEzHg_m3Mr^sK*lIQ$#hb8}Q zWnGAIOP=%8yDfQ+J8#KzzI(!we}m#VX~}cm{1r?7e<_}CSn`~I^Zmu+^8m@cY}uJ0 zzh^8voZtW4lAok`;r(sfj}xEqFOq(*g`XyTE#VjjLj2yi+L9k8`5hL{{o?h)e!oWJ z^M{uFDY8?r{PO$fK1-ha`CErQ?<$KwV-z9mRZklq1j956&`(X>`b$Gvp^S*e-!g=4#Svc?Ca~96$ z06)n&PCidu>L25LE^(g4_)FZmRP96=el8HHTHx!tz%Ab^Wl{lt#!cliK}Mt|;R9{T zuWCYZv6+Ha3jYU237Dvo^CrV7_@bDvf}(0?CMV&Cga&rT&s3&7v{zSw@0A{_KoHzS zctX+HY8gMtic|%D&`81eMfgDje&8S)K6Iwwr;ekZ58v3eU9T{a_cLW)g*2GIN9BSJ z4lVBoHZejC`^Pq#1{PCq6Wn4f&x}{;66JRZ-nFR9_Z8ozxPK6*?F%hk1_m=B|WUN+2T{i9ZgZU4AGo5lYeojZrvAl0@$?)zrr=Tc&y zApbaiI7h6{<99n?R)~Or96h@9{{&Hx`eV!P1GJg{&1;|`9_rjJzml@e|Q|?d&$bv{j z2eXUU7f;?kb@KMWvmF=F`Ubs-oWpO)>g=fxSa$K`QXzY$ZT@4FS8EotRzm6*UH8JJ8TSWPyH1Ll>vtg(ki$+6~m9R#f8n{H?qQe9m*;V4gdH5Qb;TBX49HZwzpZbCM`jV;)w zA21IpLXTO#ZH7?K@}_%~nU>|%+%QEPcdiyP$313NoI;9){sP1_9XCZfBVp{TcE$3l zHagjbwzH-S&GJ)Gcmgfyim0*!cEz?r=D9ZWiYzSKtmsuL-f_n*v0}}&LdSE1lw!xY zq<8N1N{-9SfSE3{=ba!#3(E__TGjS5A{^MshDp2qb_vKfj24(O*FL_?Nausq@=(*& zxr(=7+nKuS&Q73A&pRPPAnX9|611CbCs$$jP+}yoJsp_bg^4QhSVJ=soMW^_S!8C! zgw~EkBgWT5qK!Ik2#&cHKZ-R5Cv;-D3zKicFNq^DD0#wv+y{`p07*CeNbDB|&ksTQ zm#AY+JL!Rx#0o|?;#aX8;k}5*UmwUp_7TEA#N-wx$RzP1Bou4`N;uTO~e@Q!sxN{S+W9hVytd|8ILI; zuE>oS5gkO$SUns$IKj!T!b0SHRspB$?cqjKf&K ze9S+Yz+*?gPhV1Mba@~tnVF6#z%%n28s?u)GSRQf9;DcFg}t&l`vim>0`4-;WD^c9 zA9B81cnK4AgVaGN`~`lLB*?>%8;0?5Zx3d;4B!WakvJ6V5;I0(eSGfuLg5LI7NhG( zXMGQ@q8+c%KId!Hc#5XRKBRPs4keD!#2%U=u{NVf@5U^o{j)&9;*;&~(f;;hmnglF z*g-oJFVVy$+P9Z>Ctjn;S831Q_o)$I@gv$5e>y|gy-GVDrh~Hpb-zakH&SDX_9q-l zPbYTBzw6X^KNg1$R6ID)c!E0}4sAbVH8*fdu3dmLI3&vyel(NaUpmO9#vf$k$#!kuu|PF_tGr`=+t&2fEi7GP>7p4dxK`QsT(1_SYc3qSg>-1({sKT!V&HH=^z9mT16FB#SF@_8jrhl(JCrB;f-I`%0{1-!QeRbDkQK>w@7k1 zC-AI^iCm=CiB{S4iB-0(qcg=BxYpoS0TrAV zC{+^p)@T*3L$u9UvbzG}bE7(LaSBgPcaJ)>JKwfe3P$0Xfrna;D5AxQC z*-no~jT?V<^XAOhmJI@qb^xw?JaqB8fJK5E?J{C=kMQ#kbmPQ+V$Am&!`&T;bFfL) z0fs*mejZNu_CFt+>S_N95CFqE+<++j*p>A$n-j49DPBtmKjiE6*Xs4phNu0oe+(hEhm3c=^obW4i8IBk3 z3Zr7o|s4S@4YbD0-H##-Qy3P1A7l^5)u7W^-_z>l=RZNRbp$HY*}IO+mk zz8$rlE4F+t$Ip_SRX&<4nofo2yHYz1V7~^9{Yl7vXa@?eWt^4UpG1Oh9~8uKtR?<4 z1VQk?$F(o@$?G}7_Lg89dPq!Y?Z^ZHQLC!CKE`yFZ+I|jxD668ZjtiCGd4z)DaV<*O zC<^FDJw3-29OM2*=-V_rCG(+^p`aJL!rN-;kShTD-Cx zH$;vZ#+4%1B=YfWm4bT>MdyDug6r#lv(WF=@Pk6%sNqitUG6iCi~Fl6@ClJi{Ar=@ z)NuJ0n$qyoLYM1bZ$A_DI0ouCOlr8Cmm?Z3*TdH}T&^pU2^OmGVE{S2)p=f)CEu=? znb4jONv2?iCduT3fMk3xQh05_&euvg$1Qrm;bk+Q_w8dqLt_EKf2&G1nl`YCjYy@Nxhh{@H|2aFTK1D2gvO^p98Ms)F}AuFpvogz~-~0f-0sN>I^Op7-({g6k7;L4#5xQ|cm+Amn=d zO@N`#|JNSRd-SP?%L?EXEud^am~g@MuTeODQ#9z$TBW8E+*eJ!xe&>y9!advsL+&tMejsB}R!{ZzAA*`@?JvVWUr?ky&Og52^!DR9qWc7h zd{M-|hKeFOw*qy|;$IN)FAH0YkMCAJ{z<^lr)(z_xjZ0<-_rt0Rp#FUb~F1+*jW&H zE=5|SuhRYkR5Y{SjR!3Vu5VSOoy=c`N?BHUfv{IGEbH9Y0mGrz*Z;h*XHch#96yP@ z0|oS{+g}j&*gsWt``&8_4ParDtR3E#VY^+ literal 0 HcmV?d00001 diff --git a/build/test/out/c/test_mainMenu.o b/build/test/out/c/test_mainMenu.o new file mode 100644 index 0000000000000000000000000000000000000000..c7879b12ccef6ccb2f4394e277409ca230376c0c GIT binary patch literal 9952 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 literal 0 HcmV?d00001 diff --git a/build/test/out/c/test_mainMenu_runner.o b/build/test/out/c/test_mainMenu_runner.o new file mode 100644 index 0000000000000000000000000000000000000000..1666f416dcdd533bc3e5619a89bc299c101acf08 GIT binary patch literal 9680 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 SQB8jnT@<}2tyLbn{(k_snkdKs literal 0 HcmV?d00001 diff --git a/build/test/out/c/unity.o b/build/test/out/c/unity.o new file mode 100644 index 0000000000000000000000000000000000000000..ca4de30d99d89972d27963c03af8476d1728e47a GIT binary patch literal 57120 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 HWB>mRg#p4~ literal 0 HcmV?d00001 diff --git a/build/test/out/test_mainMenu.out b/build/test/out/test_mainMenu.out new file mode 100755 index 0000000000000000000000000000000000000000..b4dffd7492a1d13649579369f2908cbf2096606d GIT binary patch literal 61120 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 literal 0 HcmV?d00001 diff --git a/build/test/preprocess/files/test_mainMenu.c b/build/test/preprocess/files/test_mainMenu.c new file mode 100644 index 0000000..c8bdf9f --- /dev/null +++ b/build/test/preprocess/files/test_mainMenu.c @@ -0,0 +1,299 @@ +#include "src/mainMenu.h" +#include "/var/lib/gems/3.0.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h" + + + + + + + + +void setUp(void) + +{ + +} + + + +void tearDown(void) + +{ + +} + + + +void test_agePermissionValidAge(void) + +{ + + + + + + + + + + int validAge[83]; + + + + + + _Bool + + validAgeResult[83]; + + + + int j=0; + + + + for(int i =18;i<101;i++){ + + + + validAge[j]= i; + + j++; + + } + + + + + + + + for(int i=0;i<83;i++){ + + + + validAgeResult[i] = agePermission(validAge[i]); + + } + + + + + + + + for(int i=0;i<83;i++){ + + + + do {if ((validAgeResult[i])) {} else {UnityFail( ((" Expected TRUE Was FALSE")), (UNITY_UINT)((UNITY_UINT)(44)));}} while(0); + + + + } + + + +} + + + +void test_agePermissionInvalidAge(void) + +{ + + + + + + + + + + + + int invalidAge[117]; + + + + + + _Bool + + invalidAgeResult[117]; + + + + int j=0; + + + + for(int i =-100;i<18;i++){ + + + + invalidAge[j]= i; + + j++; + + } + + + + + + + + for(int i=0;i<117;i++){ + + + + invalidAgeResult[i] = agePermission(invalidAge[i]); + + + + } + + + + + + + + for(int i=0;i<117;i++){ + + + + do {if (!(invalidAgeResult[i])) {} else {UnityFail( ((" Expected FALSE Was TRUE")), (UNITY_UINT)((UNITY_UINT)(81)));}} while(0); + + + + } + + + +} + + + +void test_IsInteger(void) + +{ + + + + + + + + char* inputIsInteger[] = {"-10000000","-2000000","-354698","-66667","-7878","-987","-64","-5","0","1","2","10","201","333","4321","56974","698751","7878989","88954621" }; + + + + + + _Bool + + inputIsIntegerResult[19]; + + + + + + + + for(int i=0;i<19;i++) + + { + + + + inputIsIntegerResult[i] = checkIfInteger(inputIsInteger[i]); + + + + } + + + + + + + + for(int i=0;i<19;i++) + + { + + + + do {if ((inputIsIntegerResult[i])) {} else {UnityFail( ((" Expected TRUE Was FALSE")), (UNITY_UINT)((UNITY_UINT)(110)));}} while(0); + + + + } + + + +} + + + +void test_IsNotInteger(void) + +{ + + + + + + + + char* inputIsNotInteger[] = {"0.15","3.141592653589793238","5.3254f","-6.264","-7878.3261","foo","Bar","FIZZ","buzZ","joHN","jAnE","foo-bar","3,15","2k13",""," ","-","+","/*-+.,/=" }; + + + + + + _Bool + + inputIsNotIntegerResult[19]; + + + + + + + + for(int i=0;i<19;i++) + + { + + + + inputIsNotIntegerResult[i] = checkIfInteger(inputIsNotInteger[i]); + + + + } + + + + + + + + for(int i=0;i<19;i++) + + { + + + + do {if (!(inputIsNotIntegerResult[i])) {} else {UnityFail( ((" Expected FALSE Was TRUE")), (UNITY_UINT)((UNITY_UINT)(139)));}} while(0); + + + + } + + + +} diff --git a/build/test/preprocess/includes/test_mainMenu.c b/build/test/preprocess/includes/test_mainMenu.c new file mode 100644 index 0000000..fb4dc93 --- /dev/null +++ b/build/test/preprocess/includes/test_mainMenu.c @@ -0,0 +1,3 @@ +--- +- "/var/lib/gems/3.0.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h" +- src/mainMenu.h diff --git a/build/test/results/test_mainMenu.pass b/build/test/results/test_mainMenu.pass new file mode 100644 index 0000000..d5c35cb --- /dev/null +++ b/build/test/results/test_mainMenu.pass @@ -0,0 +1,30 @@ +--- +:source: + :path: tests + :file: test_mainMenu.c +:successes: +- :test: test_agePermissionValidAge + :line: 15 + :message: '' + :unity_test_time: 0 +- :test: test_agePermissionInvalidAge + :line: 50 + :message: '' + :unity_test_time: 0 +- :test: test_IsInteger + :line: 87 + :message: '' + :unity_test_time: 0 +- :test: test_IsNotInteger + :line: 116 + :message: '' + :unity_test_time: 0 +:failures: [] +:ignores: [] +:counts: + :total: 4 + :passed: 4 + :failed: 0 + :ignored: 0 +:stdout: [] +:time: 0.0009556771256029606 diff --git a/build/test/runners/test_mainMenu_runner.c b/build/test/runners/test_mainMenu_runner.c new file mode 100644 index 0000000..129fa89 --- /dev/null +++ b/build/test/runners/test_mainMenu_runner.c @@ -0,0 +1,87 @@ +/* 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_agePermissionValidAge(void); +extern void test_agePermissionInvalidAge(void); +extern void test_IsInteger(void); +extern void test_IsNotInteger(void); + + +/*=======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_mainMenu.c"); + run_test(test_agePermissionValidAge, "test_agePermissionValidAge", 15); + run_test(test_agePermissionInvalidAge, "test_agePermissionInvalidAge", 50); + run_test(test_IsInteger, "test_IsInteger", 87); + run_test(test_IsNotInteger, "test_IsNotInteger", 116); + + return UnityEnd(); +} diff --git a/project.yml b/project.yml new file mode 100644 index 0000000..640cb8f --- /dev/null +++ b/project.yml @@ -0,0 +1,101 @@ +--- + +# 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: + - +:tests/** + - -:tests/support + :source: + - src/** + :support: + - tests/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 new file mode 100644 index 0000000..e69de29 diff --git a/tests/test_mainMenu.c b/tests/test_mainMenu.c new file mode 100644 index 0000000..be1fb40 --- /dev/null +++ b/tests/test_mainMenu.c @@ -0,0 +1,145 @@ +#ifdef TEST + +#include "unity.h" + +#include "mainMenu.h" + +void setUp(void) +{ +} + +void tearDown(void) +{ +} + +void test_agePermissionValidAge(void) +{ + //Test case : 0 + + //Arrange + + int validAge[83]; + + bool validAgeResult[83]; + + int j=0; + + for(int i =18;i<101;i++){ + + validAge[j]= i; + j++; + } + + //Act + + for(int i=0;i<83;i++){ + + validAgeResult[i] = agePermission(validAge[i]); + } + + //Assert + + for(int i=0;i<83;i++){ + + TEST_ASSERT_TRUE(validAgeResult[i]); + + } + +} + +void test_agePermissionInvalidAge(void) +{ + + //Test case : 1 + + //Arrange + + int invalidAge[117]; + + bool invalidAgeResult[117]; + + int j=0; + + for(int i =-100;i<18;i++){ + + invalidAge[j]= i; + j++; + } + + //Act + + for(int i=0;i<117;i++){ + + invalidAgeResult[i] = agePermission(invalidAge[i]); + + } + + //Assert + + for(int i=0;i<117;i++){ + + TEST_ASSERT_FALSE(invalidAgeResult[i]); + + } + +} + +void test_IsInteger(void) +{ + + //Arrange + + char* inputIsInteger[] = {"-10000000","-2000000","-354698","-66667","-7878","-987","-64","-5","0","1","2","10","201","333","4321","56974","698751","7878989","88954621" }; + + bool inputIsIntegerResult[19]; + + //Act + + for(int i=0;i<19;i++) + { + + inputIsIntegerResult[i] = checkIfInteger(inputIsInteger[i]); + + } + + //Assert + + for(int i=0;i<19;i++) + { + + TEST_ASSERT_TRUE(inputIsIntegerResult[i]); + + } + +} + +void test_IsNotInteger(void) +{ + + //Arrange + + char* inputIsNotInteger[] = {"0.15","3.141592653589793238","5.3254f","-6.264","-7878.3261","foo","Bar","FIZZ","buzZ","joHN","jAnE","foo-bar","3,15","2k13",""," ","-","+","/*-+.,/=" }; + + bool inputIsNotIntegerResult[19]; + + //Act + + for(int i=0;i<19;i++) + { + + inputIsNotIntegerResult[i] = checkIfInteger(inputIsNotInteger[i]); + + } + + //Assert + + for(int i=0;i<19;i++) + { + + TEST_ASSERT_FALSE(inputIsNotIntegerResult[i]); + + } + +} + +#endif // TEST From 4375112d6cdfb25f577586081f0ca82606bbf35b Mon Sep 17 00:00:00 2001 From: Shivam Chaudhary Date: Fri, 27 Jan 2023 11:13:51 +0100 Subject: [PATCH 07/14] Remove unnecessary and duplicate files/folders --- tests/build/test/cache/defines_dependency.yml | 3 - tests/build/test/cache/input.yml | 242 ------------------ tests/build/test/cache/test_LoginCustomer.c | 87 ------- tests/build/test/dependencies/LoginCustomer.d | 3 - tests/build/test/dependencies/cmock.d | 6 - .../test/dependencies/test_LoginCustomer.d | 4 - .../dependencies/test_LoginCustomer_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/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 tests/build/test/out/c/unity.o | Bin 39856 -> 0 bytes tests/build/test/out/test_LoginCustomer.out | Bin 56560 -> 0 bytes .../preprocess/files/test_LoginCustomer.c | 87 ------- .../preprocess/includes/test_LoginCustomer.c | 3 - .../test/results/test_LoginCustomer.pass | 18 -- .../test/runners/test_LoginCustomer_runner.c | 81 ------ tests/project.yml | 101 -------- tests/test/support/.gitkeep | 0 tests/{test => }/test_LoginCustomer.c | 0 21 files changed, 643 deletions(-) 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/dependencies/LoginCustomer.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/unity.d delete mode 100644 tests/build/test/out/c/LoginCustomer.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/unity.o delete mode 100755 tests/build/test/out/test_LoginCustomer.out delete mode 100644 tests/build/test/preprocess/files/test_LoginCustomer.c delete mode 100644 tests/build/test/preprocess/includes/test_LoginCustomer.c delete mode 100644 tests/build/test/results/test_LoginCustomer.pass delete mode 100644 tests/build/test/runners/test_LoginCustomer_runner.c delete mode 100644 tests/project.yml delete mode 100644 tests/test/support/.gitkeep rename tests/{test => }/test_LoginCustomer.c (100%) diff --git a/tests/build/test/cache/defines_dependency.yml b/tests/build/test/cache/defines_dependency.yml deleted file mode 100644 index 9f4fffc..0000000 --- a/tests/build/test/cache/defines_dependency.yml +++ /dev/null @@ -1,3 +0,0 @@ ---- -"/home/julius/Documents/Studium/Informatik/1. Semester/ProgMeth/Bankmanagement/bankmanagement-system/src/LoginCustomer.c": -- 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/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/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/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/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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 Y>2T~z=gTadbQ6Dxf77Fp!0E^T3A7N^asU7T 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/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/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/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/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/test/support/.gitkeep b/tests/test/support/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/tests/test/test_LoginCustomer.c b/tests/test_LoginCustomer.c similarity index 100% rename from tests/test/test_LoginCustomer.c rename to tests/test_LoginCustomer.c From 2349682970fe5bd7e11905fdf8030ef8761458be Mon Sep 17 00:00:00 2001 From: Shivam Chaudhary Date: Fri, 27 Jan 2023 12:02:39 +0100 Subject: [PATCH 08/14] Create file with function getAvailableAccountBalance --- src/currentCustomerAccountBalance.c | 45 +++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/currentCustomerAccountBalance.c diff --git a/src/currentCustomerAccountBalance.c b/src/currentCustomerAccountBalance.c new file mode 100644 index 0000000..f11ea54 --- /dev/null +++ b/src/currentCustomerAccountBalance.c @@ -0,0 +1,45 @@ +#include "currentCustomerAccountBalance.h" + +float getAvailableAccountBalance(int user_id) { + bool keep_reading = true; + float balance = 0; + + char buffer[MAX_LENGTH]; + char stringID[MAX_LENGTH] = "ID="; + char user_id_as_string[MAX_LENGTH]; + char balance_String[MAX_LENGTH]; + + sprintf(user_id_as_string, "%d", user_id); + strcat(stringID, user_id_as_string); + + FILE *file = fopen("CustomerData.txt", "r"); + + while(keep_reading) { + fgets(buffer, MAX_LENGTH, file); + if (feof(file)) { + keep_reading = false; + } + else if(strstr(buffer, stringID)) { + fgets(buffer, MAX_LENGTH, file); + fgets(buffer, MAX_LENGTH, file); + fgets(buffer, MAX_LENGTH, file); + fgets(buffer, MAX_LENGTH, file); + strcpy(balance_String, buffer); + + char *token = strtok(balance_String, "="); + while (token != NULL) { + if (atoi(token) != 0) { + balance = atof(token); + break; + } + token = strtok(NULL, "="); + } + keep_reading = false; + } + + } + fclose(file); + + return balance; + +} \ No newline at end of file From 8d0693c329ba5b76e9d30a292e1b81c350e6edf1 Mon Sep 17 00:00:00 2001 From: Shivam Chaudhary Date: Fri, 27 Jan 2023 12:03:06 +0100 Subject: [PATCH 09/14] Create currentCustomerAccountBalance.h --- src/currentCustomerAccountBalance.h | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 src/currentCustomerAccountBalance.h diff --git a/src/currentCustomerAccountBalance.h b/src/currentCustomerAccountBalance.h new file mode 100644 index 0000000..76725fe --- /dev/null +++ b/src/currentCustomerAccountBalance.h @@ -0,0 +1,7 @@ +#include +#include +#include +#include + +#define MAX_LENGTH 100 +float getAvailableAccountBalance(int user_id); \ No newline at end of file From 73cd6f96219d7366e073ad760b92c586c68c08dc Mon Sep 17 00:00:00 2001 From: Shivam Chaudhary Date: Fri, 27 Jan 2023 12:20:03 +0100 Subject: [PATCH 10/14] Create function fetchBalanceFromBalanceString --- src/currentCustomerAccountBalance.c | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/src/currentCustomerAccountBalance.c b/src/currentCustomerAccountBalance.c index f11ea54..1f87d76 100644 --- a/src/currentCustomerAccountBalance.c +++ b/src/currentCustomerAccountBalance.c @@ -1,15 +1,28 @@ #include "currentCustomerAccountBalance.h" +float fetchBalanceFromBalanceString(char balance_String[MAX_LENGTH]) { + float balance = 0; + char *token = strtok(balance_String, "="); // separates string to two parts + while (token != NULL) { + if (atoi(token) != 0) { + balance = atof(token); // converts string to float + break; + } + token = strtok(NULL, "="); + } + return balance; +} + float getAvailableAccountBalance(int user_id) { bool keep_reading = true; - float balance = 0; + float availableBalance = 0; char buffer[MAX_LENGTH]; char stringID[MAX_LENGTH] = "ID="; char user_id_as_string[MAX_LENGTH]; char balance_String[MAX_LENGTH]; - sprintf(user_id_as_string, "%d", user_id); + sprintf(user_id_as_string, "%d", user_id); // converts user_id to string strcat(stringID, user_id_as_string); FILE *file = fopen("CustomerData.txt", "r"); @@ -25,21 +38,13 @@ float getAvailableAccountBalance(int user_id) { fgets(buffer, MAX_LENGTH, file); fgets(buffer, MAX_LENGTH, file); strcpy(balance_String, buffer); - - char *token = strtok(balance_String, "="); - while (token != NULL) { - if (atoi(token) != 0) { - balance = atof(token); - break; - } - token = strtok(NULL, "="); - } + availableBalance = fetchBalanceFromBalanceString(balance_String); keep_reading = false; } } fclose(file); - return balance; + return availableBalance; } \ No newline at end of file From 54ca0a053d09bac8fecef8e5f63426cc113ad7b2 Mon Sep 17 00:00:00 2001 From: fdlt3817 Date: Fri, 27 Jan 2023 16:14:46 +0100 Subject: [PATCH 11/14] Line delete function --- src/CustomerData.txt | 7 +-- src/TempData.txt | 5 ++ src/a.exe | Bin 0 -> 269557 bytes src/updateCustomerAccountBalance.c | 95 +++++++++++++++++++++++++++++ src/updateCustomerAccountBalance.h | 9 +++ 5 files changed, 110 insertions(+), 6 deletions(-) create mode 100644 src/TempData.txt create mode 100644 src/a.exe create mode 100644 src/updateCustomerAccountBalance.c create mode 100644 src/updateCustomerAccountBalance.h diff --git a/src/CustomerData.txt b/src/CustomerData.txt index 3ac070f..782579a 100644 --- a/src/CustomerData.txt +++ b/src/CustomerData.txt @@ -1,6 +1 @@ -1234=example -ID=1234 -forename=Max -Surname=Mustermann -password=example -balance=0 +balance=500 \ No newline at end of file diff --git a/src/TempData.txt b/src/TempData.txt new file mode 100644 index 0000000..f81d5a8 --- /dev/null +++ b/src/TempData.txt @@ -0,0 +1,5 @@ +1234=example +ID=1234 +forename=Max +Surname=Mustermann +balance=0 diff --git a/src/a.exe b/src/a.exe new file mode 100644 index 0000000000000000000000000000000000000000..25d0c588eaca7bdbf95cbee6f46f9623fe60a8f9 GIT binary patch literal 269557 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

XP@11vk-?txH=`4yE&0~vtXR8>&J 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 +#include +#include +#include + +#define MAX_LENGTH 100 +bool updateAvailableAccountBalance(int user_id, float changeInBalance); +void deleteLineFromFile(int lineNumber); +void replaceBalanceInString(float replacementBalance, int currentLine); \ No newline at end of file From 59cc6670da4ea2223b859a518f4d99218a60db0b Mon Sep 17 00:00:00 2001 From: fdlt3817 Date: Fri, 27 Jan 2023 16:45:53 +0100 Subject: [PATCH 12/14] Functionality of the updateCustomerAccountBalance has been completed --- src/CustomerData.txt | 7 ++- src/TempData.txt | 5 -- src/a.exe | Bin 269557 -> 269211 bytes src/updateCustomerAccountBalance.c | 71 ++++++++++++++--------------- src/updateCustomerAccountBalance.h | 2 +- 5 files changed, 40 insertions(+), 45 deletions(-) delete mode 100644 src/TempData.txt diff --git a/src/CustomerData.txt b/src/CustomerData.txt index 782579a..05ec80e 100644 --- a/src/CustomerData.txt +++ b/src/CustomerData.txt @@ -1 +1,6 @@ -balance=500 \ No newline at end of file +1234=example +ID=1234 +forename=Max +Surname=Mustermann +password=example +balance=1000 \ No newline at end of file diff --git a/src/TempData.txt b/src/TempData.txt deleted file mode 100644 index f81d5a8..0000000 --- a/src/TempData.txt +++ /dev/null @@ -1,5 +0,0 @@ -1234=example -ID=1234 -forename=Max -Surname=Mustermann -balance=0 diff --git a/src/a.exe b/src/a.exe index 25d0c588eaca7bdbf95cbee6f46f9623fe60a8f9..4083994a33269e5e2e3ac93d883afcbc797f6ad3 100644 GIT binary patch delta 23329 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 delta 23466 zcmdsfd0bT0|MxxTGRP{UfXF7prns@Vd7pbP1Cy`c@AZ3L&+B>qc;@Au&pGeUdOl~p z_YQ8gXn#GbttxZebNAy^Axjj-RacJ|-P&uaZww-@OP*v1sgWiSFZ;NMg5W@_1ASQi z2GM~uO4Z~U+N70klO5!B^Gdo|?C}i~gs6+>1tJK7zC!aYs@BTgww0OEaC^Uz>j9O! z9{o@dDumLy!jVTQ^cq(d;OlA@x8ON$3wRyNwJml3mior_vWGXN8v9N(ra(GkKhpjI z%r&l)NV@^#-_pQ#5ss4q#8o&n7D2kZC+Q2KG z?{ncw*NuNSH|xu3r2j(#))}SmZPsjsWW$?=_0Ln>_Qev`yI!T3DRRn?|`3jktF+) zN5rjE^B=gb@SMDni@L^uG~Si^IR$!%UkbwADF`g1s_|c3UUT$)=_5z4fspoAq$$XG zd){@8&qLy_3DV`K8;_%0l@ab1uo@hgEx8|tDEdoBoC1iabj``1K9wu|?vzE|kkXu= zq0_yk!_Ff}y7b7oZ}5X0D3r%H-5aK_h)2UtH@X2qF1=dnzf0p?x{z8a+vN|RHQA7^ z)NCx{N@q}7Cznn){w40ph0VFp|s&w_E6BN={CLW$# zp>k6bkGe9xhAXX-3fd1e9!1Ce?4~W9$4#v~*90=_>|}lUH)x!pe4JK)WMol6VQzMM zzW!KTN?}TPVR0dvQKv7TeBs^rdO?3=QhK(5bAX!9#~dH&g;E&Hcg-$CiL!EOf zHu0I5;g(a^_!$O+8kp&%9G_e1DS1(|#y=KbdD@!hL&-XCb&WUB4p?^$UL^=euh?N3 zTYwep2v96q=XA5qR@r>ig=`OBfRzP4$Soiat9iY?LbINum5C1eidYAIxu;3$?cqnw zWzy3gF+`NsdW3c8aazuz{aIP*yrz?M)?*4i`@H1q8RmGPfvfl5+aM))mU&-ViCU`N zDm|%hZg2}Q$q`lh*P5gsJbRNFl5eMhnUz52ZqL{Unx&DGm@RgGfR}T<6Y>F_20qzYT1X zRNgt+E?=hV*ggu7U1+VpjP3ft=S2fHeQ; zyPwln#)U-c%QZbEAMXVEX^Aw?`_JGnkHgv(w-+YJgC_d?2iUJ~Bvht9miq}Iojxv= z`UI0L(i=YS(+ex5g}(iR?k>Y8e={?2)`kxK=NdKJfLyrq<~D zH1U@D`Hl143KeUoW>g(RQiY=q_`-&}&2JcX!<&BLWRB$QA5DfzWBemJxy*tFcIl$4 zZG?Z9UhwxJH>EfH!#lq@6VvrV^WFClx+3Dt?QNER@(&1o0RuUq{BE=7M;GO6%tl>b zdZVzvz9QQGJr4DM=c3fN%V6?~l+(qZ{$Y_SyY%mQ-GZJOs4q7-B$VH3_VkjKHM@bL zt}pk02_=2`NOWq5^h1|kJr{8K_tCkoQFWL#Vb2Ypi4iU&REB0MI?bN@E^u$IgQU2C zewkZPX_ahqOeojfeH%mg6Lknbi|M8-`I8ooTGXrbN?~G!<_g$+eL09Wp4Zf&##4BN zfAQ)1oHDUW{uGPuRcQ9SE!_$T^janB6iunn6r;p*X~w`vle~4oG08ym=QaI7_~*Q) zuUcyMEI*IQF%KiMaVu7Yd#_|z4>Ogn-67TN`Mk75_j3EP>D>1theb41kNN~ zrRM{C(ekCz;lLHdQR){oj9y$K6$Ryx>C&B`VHgY{!Ru-HV)NnPTZCkoS*RqEAgO2f z0c50kPWRUdnPGPB`Kn0F=7ZsT32`vbihMvwC-XCXRuEz|U+(MFj$D#HA1sl9=IkM^ z8v1aWd0A|%9ceJ1jB_Vsnfasm)r52~PZ>Ry&_jvR%lcU)b;Fpi$zAiEG0uc6GB=GK zEYjl%=3e7R61wSWDeswXo|B#ygokd^HJrw|>90I=o2E&W-h4)fIeqz=>GYFvQuo9e zBtu%A7(u$54<&9Pv|cZbpV*mR)=Tpy_9scwj)}o^t6n-gae!m6o}1J92fsp}C8VQS zoHSdcACHt$rv`h!JrZj-w)qPgZV{*5o-c6ZOZimSw?;}kr}iN|r7Kf=kr;FH)Kzw5 zskCZlCK+VDKl4pOD~3v2XHO^d%)ibqBEH84%N|@gJ&CSrM)VgDwd;Yw2q!?=o!p(Q zH(ySE-;VygMB19}?Nx|%zNI6N@?q2bafRmW66yW)kjU*zPN3#2jf}2~z%f z^Jn_Xr^EQSD>_?fEZp7Pd|oqO3dry?z6p^kXiSGj$s<}=U!jSSi^Og96hw44A79`P z0(kFa+kt&VgstZ_T2;}x%>c&u9LHT(x>9hPKSm)C1%3H7SxDd9kfF{R=~%`fmlSvK z_yM^jx>9P+2$}7@7(nX#xL0|P`iYF$aQgbC&5I+94a+ITfi@wsOlqVQ#;WlaI+%Qrg?VTIncU&=A9laUf zRA1pzpHLoxqnb-dp#zT-s{k_NS`MyK)i;MW8Kt0kdvPE0!MqT!XBR1PhwCe}CDH3p zqu4j2C5Oyl;{!kNDqWrAn}IX>?(gYO|0(KA&S>;2|I{JAg(HuK@xCA(6dPys^6JNL zwMwFc6;p{0MK859H4sp<=lT_pmYcd#*%K4P;IS0G?!AK*YxvaRQ-)6-K56n)X>Vo$ z8Ex(|-;wzKinFc0wApR-4EP;aeqUeNn-=i|^?ptov0zot^Mwe!s2b7!hElWVP^|Lz zR$;xs!652l;~O}SjY*9QaVUx2F8#DXM~I}&8c(`NNm)a6EBR5nw7D>#B>EfN!cw== z621pjx@u)pQ>5cr-8=_#q4Lol`t$A3JmKB}ELlO)?^#Cjqj^#GGEHE458f<6Ijo?I zGXGH@BY6}IAumda1-ZEWt1Ia1>6k4DSS+zS;-fFWpnqQTTbATdxQ-qwFmEpWl#p#w z_QGK#OL}u5qgM^ms72KzTDrDq5N)1kb}x<~^u4)K+~RQKx9Fj&s^-xDivFnb|4DyS z@fP|YwQi3=$L;+Osqud*_x_&<*H|1f}-&T0TN*V6*~e`w$39i* zyDEKKrLU@VvrO+kx4yZ#&B2z>Z2qa0IxGv2j@otJuuMxDP%%zOTrR}&<)G!0{Excf zAN3}+Zc=ID3PnFzr3Uk@Wlxa=%trZ>mY$Vfn3*$Imyw^Ft;@>HN!NvDhU?TDJKdtp ztSsG}bX|VBAuA;{JqP*?FRBMA)ww9SCZ`^}1T$y;s4x@hfct{-?8$w_4>|c!{q+ ziM8;qy=GLHSKd(QGoTlsa0w3Qz|l*%>~L|cRy7oYdK|8ekmbhH+5{I2jLWrk+EV5? z@5wPa8JRhmg^PvpDdPomc8NQUsw=e}d`-3gecdD-C=H0Z`OsGC@jvPwKil#{B(lax z1Zm|OW5=4VwmhxQ-0}IJ9HcrsokXhsWxV1o2#4wgfzyM&f>4Jtr(sQJr%y@=}^%JrZ_dJDn@lw&~`;<|*g3Dhwhe3Z4ImvLR?Wn+XOOvQB# zm1NLLTz62e0yRb=y(pVNKg0D4$_=22eUM(1IW_f#kt+&4kFp=i^`Oi9q3bvfx_S^Y zigFdGM>KXvly#t{82Cu$LMZr*5QIX`0By##8f5`z+8SI{D06DU{=bdOgEqwr!s{q= z+G8xTf^sBi>SVMYWdrDIxEfHd1?@EjXB#d9ntU}GwYss}_6+940zT;k$0jZ;TE zBG_TrwD7M2`;POal+BYo97K)76+4k6LRo89s>O?wNb|+bBQ-u3e#f2JL)dGAQT4O! zkszFSSRL5OnDC1NrKxn8O4q4$hf0sB^s-97Rq11u`uwWc2~ugKN=K-4qDosLn5Wc7 z2qu-WS*80_dP1caRQjn(8&&#PrS_8R&H!V--xR|!DjloRi7K6`(hQa6sC1!9SE#g1 zrBy0@Nu@8VbgxPes`P|HeS~u=a7m?~s`N|ggYDgn9nlB;V3o$HG*P89 zRGOyJ9F-QUbhSzq>zJu(Z~UV-jl%zRxd$r|r%nlEbT!j@ayD`6>}B?OLI;B!5q9i1LkNN4B~B z-aj?ug5+4+t-YzHrsnmU+L|LZv9Be*CJn9~U@ok^L`bqU{9vvIXNg$ChL?+;)sgm6 z{lQ2_oG4_&XR8CfB%L|YQL9scM;xd!Yc)7Rw9%^pkA?tW*u%t-ZLs~~18)RfA zSBgCpiC4RMha%u~*P&d}By~6(LF%R9hjSgZ5sKhwE?9q93z1u3R!JS+jvxkUIKJzo zJbc$kyYSs4eI$PqON1jk3Vy=u*yj#ldp?A5ol2EB_kNJzMRV zX;cut#U+x7q>s>XvkLc?p$U%SHR=9e>!>zRTJku6ldX>*QeB{V{ojGER0w7Vok#*% z&YGRb_Ksm{x6Sqx1UufMFt*>B_&WQBC@rPFA?&I%iM0ZD00LadAm3nB;#YTBlVXz; zurH(bDl2dy!^o@5>_P^TgY3Qw@peiNRSl*yH&-&;TDMDQGhE4FnjOl1a3P(Y4z$P} zU`M!IOWp1O6Wf!)_cR^6V&SnJ|L_Bq6+|Ecm@qQlvNe_TDa6bFNf5qoF{4w>*pUe&3J%HBg6l%2b0?k1YW9>n@h5B9WOuTX#&)$_b0_v1hZI@SoAJ_g$4CJy7JXgfP2q zO4#3m=Q6AtI~_uNjFVNcU3*2ipU~Z?LVgM)zCtDnF8frF8y=|2%7!C_4rf%}(=E8* zaIiP^3)Z(cS%JZKus503wWhn`=Mq@su}EUc;DgovV-=VE z-(->DWB_SkbHm9b>eZc{3@1K5{oAPeA_7&_C9yku5KjC^GHV|}g2!)BbI`JE?uBTl zHxTP2bY~(i`)#U3Fk-OZrB>Rb($%b1RMUd%Qf7=GUgRSSiy%h{X|ha+A`6_UHk_Rr zO0cAbvxI1jsi1JSESd~+o)oUMj!X(???#gxVq*Pc$UKl8F_?K(>~ai=bvo2rl{&;a z4H0v5Hl(slx&8 zVylOfB&zMjz8OyRoJNd5Ji1;iX#^QY$Mj+~BSr|43akpeD8G&7&ot#FJ;j_zhQbwvQ zuT3Wh+SACfmKpO%I-%l3b~=;js5X&(okUHlF=GABmVfne|>k{Jr0MMdgrbVzmkPNrH1nEGqpbu+#-) zIDKvcdvyUB>AYk@i-9HVmjxu2ywCb)k)UqpRNNnfDgvu6A=uUaX_G!=E3)twdH%DC z5iU%yBSy;7?>-s9-=Vl$W#_U;gioldDJDJGnB^BA63THURa%F23BXZn)-}m*)T_w#<4ZoB$(u~z1gG-`H)@ACIS6* z&nWgTz{z1*ZK9_7+=`8M0`0A`PISX_jkXrknSTxmAlq3q2&IW^b`J5ULngB2IWSzn zwsG#i*a=SdvYQ;Vu)lJMH)gkIE{V`?d0KHg3Nusid~U2|QZB(;Kok4iKo($Cj?W`w z$Qiaik94ID@ywEkeZoJU-N++;K11Ub-HXsY-PxKMIw_uY$R|PGvs8X9_q`T3+96-F{CpUkJ;BUy7kCee_QtSXO$(&t7pLjl&6G*($aymaeFD$aPf7W!~! z6VMIFIW54@+%l4lDC?dV6ZUkFWL`ujp_MajW?EUo!MKiBE-l+Js1R*@# z%my#S&lgQ>;X+bM{fDu?7ZN}3ieatNU;8W42$r5=eHM`*|lhsrg%{DD2-Kj2y)h#BY z-J)WYu;k@sR1E911Z&+YRK|!|UrrJzhWZ90Swo+TVm>C)om8?o6Y1Guf0T`3 z*C=K(k>HqTRd^6)VF9L_GTr$&!($@)jmqT%pjzcR=+wlt3+=<3J{aS`ZzUP({ja`? zhuawcI2x#?ghB7Hyp_buuU1`>a6X9)4D(jReZzg%c@rqcRH)DoO{cuRXD034DD(X>3$)yjatuxA$a=5 zo?T5g;w0L*n#?3uS$rw1|K7iim~1_204pmc;hm-oXysVvOAfnKijLUMz6YV6gP7wQ zRI6CGH6)wtVVl-qU5_5ZuB{>A?sJB;8W3dDTbTFrB%;%?HVmufIyU=xm^#RofzWS; z%1yHGc^n%?6Fd4mhEeorj(Ip^qZ6FJzzB5Jv)N@NZcyDA#ZhlOGUN7^;~Qs3-g{h@ z;@1W8$(QGDT?Cimi-^$fb#|kSj0#vYx|RJvW@B-XCkce;i!8Pr`}Durv~uGA)Hu}@ zHx(bLxNDWoYr~x-b7e<^7~5A)I>&s{hP|;xS)Tgb(cf*j2V1!E?BlV9j+GnFI;|y( ziNR8}7UQ2LPGR%ckq5N>R5q&;tJop7q>}WekyF?kmE^)r;5IAo+06eeY)WM-wO2^)#? z92L&ZNl!}4oSRuFJVj@ws9;X6f)xmT=)D%n{Pe;o;S;*5MQBb@wjrs=Ae<&NhZ$ca z-o_!>s(wLsN>)}#jl@HNRyQc)NXF4Ly8mTGQMPFm6+ZlandW~pdOYHGTnP^h5B z`EBKLGctse^x9k%OP!Z%SdyNfTOeGZ7w0LUkEUk_K{(F*ULqUX=S^3^-M~`ViI;G^ z|7@Cqb;0evAoS#%uvB*MB@%2rq_WHb(-XmNw6X>IP{p}z58S@MoTE5yj}i;C?W${86wUzi$T{3G1jqIJQ=K*URGh0{XjQ+& zp5BJj&G#&K8xA`IQdrqGqN8ysZ0|PgibZPwb7M2HGAi>_psUzd5cgTzhP_T@^W_)m*K4FuXptDI=Gn?9G$*6)Dz z6>Q%Q5{S*_G6)qj*aM)n^E~FZ6Nj%n7O|6fCGAwlS{XENxwQ-pd65$6n<{fIn9XgO z^48;}j%V&PP^+k}K=vkJ!@+HMq(GzQvpqYB?&%S#n#Ouk&c91XKQLnN&BZ3D{N1Q+Am^W2knUix5h4H$ITf2DeNmV zT2iq25b=l_y->0B9^6oVQ-Z1ddy#^DjP?sb`@soPrAW|17JrBY(}4@w{6nORvz;0W zv0KC>&gim;9RY&|FJjjYkv^Szw~3Y8kAg|351H;Tc2J*%Y}jGq8L(Bg?uB*h6gnPq z_(>AQuqcv+3l5VY_m&m~ZM38EsIq^=UO$YC3x$@i4wI>*eSBeSTI^S{I1BExtC-nB z-ga{>Xk|G?7O>(Y7%f8z*ybbTSKQdHJ4)i{R0F$ml!SQCHz=}`@n~QM9xm}{aK3di zFt=mGtLHM6Jrr!P97Vi~l(%j{7(Nsy0liu!dIOtq3`d}D2Db7T@gzGLJ4W{4<|6ty z>E`rFi`XYD=Qy5eG_gI$NhB5W*k{L)nvQwwx8sz5Y9j@YsVck;!3n;+?{)d?@(J7`#pbi$PN4HMn9oUc{%SVlB=PMu zI=|J7VnXOLET3haB%Nt&0b6sD^ri6y?D$E9uz)$9LI~d!$RT(;jaPHZLwFrOAW-z} zEo{~)Oe&M5_!M!%++ro~kc%MW>d4Dfx12qwBcF15@if^>6PL51Gh`{J56@txCbL;* z$tsYBv$#nzu!M6&0%YTA#muRb85(eJ4BXYueT%n@0U zGvaq$g@^G6?~d!+2#vD}IqqP?FOyFGW|iv)S*UAp{td=_@Lz&@6Dz!o;T^Vuy?B`f zb{(KTuIJvqv>FO%d5Ui@duwJ5FzemEjjWH864^+hWAF;*_94loi7PCo56O>qC@{lS zG8C$Z_RQBCf@)1r{M?WEF3DU9rGZKc!l&^k9GVq|p^%}{eK#kYQHTsl^ zO}~LXWW7j9wq`?9#*vZexjVVkd7C$uFP{%f72xS;ghXu3}kV zqpJ<0PBUwF-7 z2@Ry#1n(`_#vr;I?;zOVVEPFjI9ob|&;bN*AuMA;X_&|#8W)677rv*My3^AHwnp@% zmnk-n4&k)B2A+rXr4RYzuZVv1c{J40kJh4l=Jls8iFZh9L zS|{i4=sIe|p=D4d-3e!(SJGVmYBsm~!~Vj*RPNR1k1i zBI5>j_XTS7#t(O7cCpHCQLADr*HfIcRey*{tq0#@saUU zawg@}G+~LbzE5P;n`jstUPVWv3(BkLGidtfRcN}2IaZ_Az@}Hz*BtQ+AK6SK`)CjK zV!91977{5NAW_c_Y>?$|ZJ=*KyIP`e@kbaVHquuib9W=%$sZ7{-9%^er&!-_q8Z5R zgw611VlQr{Nf=dsY^Ds4SJ?(eFC)JxTj*0b)V#QbCI#YWIaJJv2Aob#a`sJ9iddQ zyzO)m-(bGqPGhivvmQI>ek9}b9rQEAa$qNY%^SbKk)5^lB@dzw+i^Y1tDzP+>b{Fk zMZ_z2VVKl0Y%bhw6iDmq*EU1hfW{=U(=XGWni>?7c@ZyG*#k~YEbtYiwTb1uLg#w7 zEaH3(=N~>yj`(w(2d~IFfxG2C%iB$#;_K+%-E=lAIqsqFfLz>zE@@(mUqx8S?2lKG z6oX~gYxKtG;jz1vChfF4N-hy6QD?1RA~#X5ves{s`>4;e*6))?sK0AD`4fFUh}2r* zJBt4J{Wh!45d-Ka0&B_=gUH`3DN792gyQ9U4a>_G12iL1M59n-9kazw=nt--Sq->W zDQ-hCkxK+4X3k`XAV>vAR-YyMuy3=)L?l;cOv!`1gESMs#)!#<_bQoV`6X98Ly4Asv{($bT+hdw zRJi07=29rWJmL!G5fO9(JmB*&ZUqiHw;K{<99@|On6~>aUqaM9Ouza0e_a_ z$eIepgCwmw(38a$i+1QR*?L2f7=rFvxfGG=7K%RZHC8L!W8vuKuvRqqo$nW0(?VMmPOA?zI4Ceat0kK%FPDtOdt+4yR4 z6zg1qQ0mx&5^;13W-+Z6=kYV19G}Y?G)K$w%8*0;_wih6${KOLTLWC7r{Odf-O!Fr z*eiNk?yM2x2-P{Wn*CxBODN->I&3b$pj%faI(TStFJK$GwgW?kMltyGXGwd-c9xFi z$S+M)O-xw}6S@vcun=-$m)44xsYzv@s!-T!_B3xIS5>UtIuUme?kr{Mtg)ReQ`U?732ji7 z!jNKY@#Ct+0K$j&Ms$DG21HcTNp7?J{|VHv&o_wc(FvK7I9DF{8|B z9ETSXVw0u!i#$XOT8F9eYrVPVBS~eN;D^4^+(wC?xak#Fy2q6CGK}J`t~MEkEt!eU_-m zpV<%jn%P|5>ubo@B(=C~aZqFNe~Zr@yacaBCpRToXW_I1VwgvLa@)pt#ciD~g>5__ zjvAwz(_#vV6()mIWrL&wiA`-QlMO^jYl{>ENoK(Z#b9Ft)+wHICGXFJVVK)ibR!Vc zytc>=AoVuL8$fF2x0Nvisl`FJb;_LtQkT_&v}B=){rjM3*2qDy2Ro6{+TEg^Wt$m` zHx6I74q=Z;%lLYM!}~OB6^H9N{2PZ|@I_Ck z@c64h3O~fxTF%?TOWIGx0qhcIJmggee9=!eY{jQAGxif8hI)Lh;c%mdJ?8KQ4*$qu zJABc{Dm>~_AX&Uss{j*ww)is)=5rkV9_VJyS;w2irMDC3MZTqEWhN@={h1YFXO6toSw!M@u09@w49S*$2zT!Z_=K$saB`>pCUjlfK0}TM^UVC=) zOK}?0Uk5T9Fg<9`W_$(YU5?!3$O(IPjU#b4fXv|Vx4e|mAnMr}Ub+U1Ub1Ib8z2>X z6UY?6^iz8_@fMI%9J$JoFYQ@9M}~d@WFm*ZIs2f>@_Zs(~gCIFOC|x@d<%`xRbK6*{>J2V;f{ZaXYpT+GF^G78_3gp-*V{ zdqR6PR8*}Dys1U}Z?i9MqiasEpYDmvS=HB=GFV=m*@1g#as7ROj5i(<^d!uy)`V1zW!ngWdTL4{e3; zOn@89;0uf&?64l+!Wh3}w3VBt$TjjM?IkYvI^@_Xl(2%zCgyWiXO4FL4kmn_FfmV& zyU#=3%;k1-xyP-^Q{y%$ayeYi10pP_5pv%?Ay=%(HN6j!4P35<%Uym#&Lqnr10-zcI?aBxb4B{a=_^YQuEo!AH-04NFHfHSS~7mzzCbl4uH_wB4wYKZ_Z@#RDREw z{G({+T#HvzgwH~vVRbRMiC+Dqm;n8ceuQG3x_fr`N$ff15gtLb9uSUWr*6V+IX@gA zaD1)th$lrdjPJW#y(WK%ilTY<82_4<|RN zNemvi#m0OuJWXkBby8}2F@BaI@c$J+$;_hEf~<5Ln<9(Yk4;#@nhIJtJVX3PSdZE0 z2Y4(J$JT>%O-5>z5IKJs9%^i}2E>u4f#{3a;|F4pM}v*55ga>_^?4`;h4P0(tvyo% zj-QQ{H-Xf$#ScYaU;bw=-0blIP`&MGKoUlQ*0cp~*mmupt$%gYi zICbp9pT*#=yKR~hj2p8Co1_i^($tQ1{sk!#?AxZZ0Gz}kHXfWYg*N8j0;gWK(lRj5 z0g1FWJ!MXAJ{l*)T3g7I@eO1Q?C3AzX!m6{K@Gz*#?9f=8pT!S{X4(SLP_DiQ)jXYEX+0{~D8VMu z6+o7Og_vNvAaia`N)~>8RM;|`xLP@6rdee;QUip4lz`wnCpFt3Xl>jdgp6(GPJ8sn zUAoPHy9J?NY?ApS5UowrZY=ka=xNm1SP$~VUl7~0g#V$7hfN~K0GVWCd=e1eDFD?( z&H-}HMkbfbsC*^;Wk4E?HZi@%g}~+i3xOhZ3`m+yK-YmZ7PL)dBamJ;A^r-atcc6B z*m1*C&TBSW!9cP^{02%HO&PfczJ?2?!WPq5BMb1;IN^d70b2-%TFZe`2{9T7ytfH@ zA`l%Ar5{lcQn)jlW)uUtNrllZ?o+dJ3$Q56vvF1ip_YSy;%qaJ$2N(51&E8t^nZ$x zLuyf8ZFR%{#F0C%x3PHzGDB@FGyu8AcKs;^B>jkDolQ^Lc?m+SO)5JBd1RByZa~&q z-ExYjx>>)u9GRYb$(>fDAV2hyZfO#?Vk8_id0d zK(<*!%uqX~${J!)QgK#ND*lAZ#{Fz)VM`S7gilT4g3cJPyRC+R3o9Vh%f{IYKniV; ztsH@@vKn!%LqH-yTU%BK8p`I8dL{7V*D2fK=`M1p~!mzS!D#2 zY-4B>kb0Zpy^kaEgZY;Dj{@N%uQgd80^$A8irfWKWitx?0Mc?Nsf1|ngT6Xv&1e#S z(aX<`kv6T@;jKsOZmb+E5wwj=AIQ|hJvXbEo(hDQT3cTLgnwF*3LpFr6>&D*_acPu zw+4j6aZWCFH>zh{2jyY*X^-*FnyQP7U!QWQ;XdA#Ugz zphTPG{|&^$#Zo*dQRS8RB;0fUL7>B^Bk!XZV3OK_^1SlxE{T2@vmBfQWIS zdh!Xgi8>cDhpeVE^3yR~@gocy(@P*z1ymUg6^Fao)ws)lO>U`kx4YENClf!vmJi%` U*NXp5X;D&&!H`tA*pM##FMse1IRF3v diff --git a/src/updateCustomerAccountBalance.c b/src/updateCustomerAccountBalance.c index 48ad5e8..6ee64e9 100644 --- a/src/updateCustomerAccountBalance.c +++ b/src/updateCustomerAccountBalance.c @@ -1,51 +1,45 @@ #include "updateCustomerAccountBalance.h" #include "currentCustomerAccountBalance.c" -void deleteLineFromFile(int line){ - FILE *fptr1, *fptr2; - char file1[] ="CustomerData.txt"; - char file2[] ="TempData.txt"; - char curr; - int del=line, line_number = 0; - fptr1 = fopen(file1,"r"); - fptr2 = fopen(file2, "w"); - curr = getc(fptr1); - if(curr!=EOF) {line_number =1;} - while(1){ - if(del != line_number){ - putc(curr, fptr2); - curr = getc(fptr1); - if(curr =='\n') line_number++; - if(curr == EOF) break; - }else{ - - } - +void deleteLineFromFile(const char* file_name, int line, const char* new_line){ + FILE* file = fopen(file_name, "r"); + if (file == NULL) { + printf("Error opening file!\n"); + return; + } + char current_string[1024]; + int current_line = 1; + char *temp_file_name = "temp.txt"; + FILE* temp_file = fopen(temp_file_name, "w"); + if (temp_file == NULL) { + printf("Error creating temp file!\n"); + fclose(file); + return; + } + while (fgets(current_string, sizeof(current_string), file) != NULL) { + if (current_line == line) { + fprintf(temp_file, "%s", new_line); + } else { + fprintf(temp_file, "%s", current_string); + } + current_line++; } - fclose(fptr1); - remove(file1); - fclose(fptr2); - rename(file2,"CustomerData.txt"); - + fclose(file); + fclose(temp_file); + if(remove(file_name)!=0){ + printf("could not remove the original file!"); + } // Remove the original file + if(rename(temp_file_name, file_name)!=0){ + printf("could not rename!"); + } // Rename the temp file to the original file } void replaceBalanceInString(float replacementBalance, int currentLine) { - deleteLineFromFile(currentLine-1); - printf("deleting from line %i. balance will be replaced with %f", currentLine, replacementBalance); char newBalanceLine[MAX_LENGTH] = "balance="; char balance_as_string[MAX_LENGTH]; sprintf(balance_as_string, "%g", replacementBalance); //converts replacement balance to string strcat(newBalanceLine, balance_as_string); - printf(newBalanceLine); - - char buffer[MAX_LENGTH]; - FILE *file = fopen("CustomerData.txt", "w"); - - for(int i=0;i Date: Sat, 28 Jan 2023 16:28:55 +0100 Subject: [PATCH 13/14] Expanded the function to work with negative balance changes. --- src/CustomerData.txt | 2 +- src/a.exe | Bin 269211 -> 269210 bytes src/lineReplacer.h | 6 ++++++ src/updateCustomerAccountBalance.c | 15 ++++++++------- src/updateCustomerAccountBalance.h | 6 ++++-- 5 files changed, 19 insertions(+), 10 deletions(-) create mode 100644 src/lineReplacer.h diff --git a/src/CustomerData.txt b/src/CustomerData.txt index 05ec80e..d5c417b 100644 --- a/src/CustomerData.txt +++ b/src/CustomerData.txt @@ -3,4 +3,4 @@ ID=1234 forename=Max Surname=Mustermann password=example -balance=1000 \ No newline at end of file +balance=2000 \ No newline at end of file diff --git a/src/a.exe b/src/a.exe index 4083994a33269e5e2e3ac93d883afcbc797f6ad3..f28e6b38fe554253bb67e09ed3c5a78bb7a8dba4 100644 GIT binary patch delta 19365 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 E07b-3B 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 diff --git a/src/lineReplacer.h b/src/lineReplacer.h new file mode 100644 index 0000000..999855c --- /dev/null +++ b/src/lineReplacer.h @@ -0,0 +1,6 @@ +#include +#include +#include +#include + +void replaceLineInFile(const char* file_name, int line, const char* new_line); //replaces the line at "line" on the file "file_name", with the new line "new_line". \ No newline at end of file diff --git a/src/updateCustomerAccountBalance.c b/src/updateCustomerAccountBalance.c index 6ee64e9..764c317 100644 --- a/src/updateCustomerAccountBalance.c +++ b/src/updateCustomerAccountBalance.c @@ -1,7 +1,8 @@ #include "updateCustomerAccountBalance.h" #include "currentCustomerAccountBalance.c" +#include "lineReplacer.h" -void deleteLineFromFile(const char* file_name, int line, const char* new_line){ +void replaceLineInFile(const char* file_name, int line, const char* new_line){ FILE* file = fopen(file_name, "r"); if (file == NULL) { printf("Error opening file!\n"); @@ -39,10 +40,10 @@ void replaceBalanceInString(float replacementBalance, int currentLine) { char balance_as_string[MAX_LENGTH]; sprintf(balance_as_string, "%g", replacementBalance); //converts replacement balance to string strcat(newBalanceLine, balance_as_string); - deleteLineFromFile("CustomerData.txt",currentLine,newBalanceLine); + replaceLineInFile("CustomerData.txt",currentLine,newBalanceLine); } -bool updateAvailableAccountBalance(int user_id, float changeInBalance){ +bool updateAvailableAccountBalance(int user_id, float changeInBalance, bool positive){ bool keep_reading = true; float availableBalance = 0; @@ -71,19 +72,19 @@ bool updateAvailableAccountBalance(int user_id, float changeInBalance){ fgets(buffer, MAX_LENGTH, file); strcpy(balance_String, buffer); currentLine+=4; - availableBalance = fetchBalanceFromBalanceString(balance_String); - + availableBalance = fetchBalanceFromBalanceString(balance_String); keep_reading = false; } } fclose(file); - replaceBalanceInString(availableBalance+changeInBalance,currentLine); + float newBalance = (positive) ? availableBalance+changeInBalance : availableBalance-changeInBalance; + replaceBalanceInString(newBalance,currentLine); } int main(){ - updateAvailableAccountBalance(1234,500); + updateAvailableAccountBalance(1234,500, true); return 0; } diff --git a/src/updateCustomerAccountBalance.h b/src/updateCustomerAccountBalance.h index 3a4d6da..4af3f89 100644 --- a/src/updateCustomerAccountBalance.h +++ b/src/updateCustomerAccountBalance.h @@ -4,6 +4,8 @@ #include #define MAX_LENGTH 100 -bool updateAvailableAccountBalance(int user_id, float changeInBalance); -void deleteLineFromFile(const char* file_name, int line, const char* new_line); + + +bool updateAvailableAccountBalance(int user_id, float changeInBalance, bool positive); + void replaceBalanceInString(float replacementBalance, int currentLine); \ No newline at end of file From bbc6c7557faa882a28ec76c29401d7f838597977 Mon Sep 17 00:00:00 2001 From: fdlt3817 Date: Sat, 28 Jan 2023 16:34:16 +0100 Subject: [PATCH 14/14] Refactoring: Removed main function --- src/CustomerData.txt | 16 +++++++++++++++- src/a.exe | Bin 269210 -> 269210 bytes src/updateCustomerAccountBalance.c | 10 +--------- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/src/CustomerData.txt b/src/CustomerData.txt index d5c417b..f847b08 100644 --- a/src/CustomerData.txt +++ b/src/CustomerData.txt @@ -3,4 +3,18 @@ ID=1234 forename=Max Surname=Mustermann password=example -balance=2000 \ No newline at end of file +balance=2000 + +1327=example +ID=1327 +forename=Max +Surname=Mustermann +password=example +balance=1500 + +1666=example +ID=1666 +forename=Max +Surname=Mustermann +password=example +balance=240 \ No newline at end of file diff --git a/src/a.exe b/src/a.exe index f28e6b38fe554253bb67e09ed3c5a78bb7a8dba4..cdc9794dc47303e7a5866bd11fad42ff524ceecb 100644 GIT binary patch delta 16720 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 VJX>cxH9G}4z{S!bFPF8U{|Doarknr( delta 16617 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