From 585d28952f681cda4277095fbe074dc60ea8b00b Mon Sep 17 00:00:00 2001 From: fdai7514 Date: Wed, 8 Feb 2023 17:36:05 +0100 Subject: [PATCH 1/4] implement function requestLoan() --- .gitignore | 2 - build-project.sh | 1 + project.yml | 101 +++++++++++++++++++++++++++++++++++++++ src/main.c | 3 +- src/requestLoan.c | 28 +++++++++++ src/requestLoan.h | 10 ++++ team.md | 9 ---- tests/support/.gitkeep | 0 tests/test_requestLoan.c | 20 ++++++++ 9 files changed, 162 insertions(+), 12 deletions(-) delete mode 100644 .gitignore create mode 100644 project.yml create mode 100644 src/requestLoan.c create mode 100644 src/requestLoan.h delete mode 100644 team.md create mode 100644 tests/support/.gitkeep create mode 100644 tests/test_requestLoan.c diff --git a/.gitignore b/.gitignore deleted file mode 100644 index dce188f..0000000 --- a/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -.DS_Store -.swp diff --git a/build-project.sh b/build-project.sh index 43a0588..a2ee9d4 100755 --- a/build-project.sh +++ b/build-project.sh @@ -3,3 +3,4 @@ cd src/ gcc main.c -o main ./main rm main + 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/src/main.c b/src/main.c index a3a8e04..5c0f7d5 100644 --- a/src/main.c +++ b/src/main.c @@ -1,4 +1,5 @@ -#include +#include "requestLoan.c" int main(){ + requestLoan(); return 0; } diff --git a/src/requestLoan.c b/src/requestLoan.c new file mode 100644 index 0000000..b639585 --- /dev/null +++ b/src/requestLoan.c @@ -0,0 +1,28 @@ +#include "requestLoan.h" +int allow() +{ + if (a == 1) + { + return 1; + } + else + { + return 0; + } +} + + +void requestLoan() +{ + if (allow() == 1) + { + printf(" Please select a loan Package: \n"); + printf(" \n"); + printf(" \n"); + printf(" 1000 Euro\n"); + printf(" 2500 Euro\n"); + printf(" 5000 Euro\n"); + } +} + + diff --git a/src/requestLoan.h b/src/requestLoan.h new file mode 100644 index 0000000..de31f48 --- /dev/null +++ b/src/requestLoan.h @@ -0,0 +1,10 @@ +#ifndef REQUESTLOAN_H +#define REQUESTLOAN_H + +#include +#include +void requestLoan(); +int allow(); +const int a = 1; + +#endif // REQUESTLOAN_H diff --git a/team.md b/team.md deleted file mode 100644 index 02580e9..0000000 --- a/team.md +++ /dev/null @@ -1,9 +0,0 @@ -# Bankmanagement-System - -- Can Hacioglu, Fdlt3817 -- Atharva Kishor Naik, fdai7514 -- Julius Philipp Engel, fdai7057 -- Shivam Chaudhary, fdlt3781 -- Mohamed Yahya Dahi, fdai6618 -- Haytham Daoula, fdai7207 - diff --git a/tests/support/.gitkeep b/tests/support/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/tests/test_requestLoan.c b/tests/test_requestLoan.c new file mode 100644 index 0000000..0fcabf3 --- /dev/null +++ b/tests/test_requestLoan.c @@ -0,0 +1,20 @@ +#ifdef TEST + +#include "unity.h" + +#include "requestLoan.h" + +void setUp(void) +{ +} + +void tearDown(void) +{ +} + +void test_requestLoan_NeedToImplement(void) +{ + TEST_IGNORE_MESSAGE("Need to Implement requestLoan"); +} + +#endif // TEST From a768d564635839fef9bff71266385a9792ab2de8 Mon Sep 17 00:00:00 2001 From: fdai7514 Date: Wed, 8 Feb 2023 17:46:37 +0100 Subject: [PATCH 2/4] implement unittest for requestLoan.c --- build-project.sh | 1 + tests/test_requestLoan.c | 8 +++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/build-project.sh b/build-project.sh index a2ee9d4..2321ef5 100755 --- a/build-project.sh +++ b/build-project.sh @@ -1,4 +1,5 @@ clear +ceedling test:all cd src/ gcc main.c -o main ./main diff --git a/tests/test_requestLoan.c b/tests/test_requestLoan.c index 0fcabf3..9dd5e66 100644 --- a/tests/test_requestLoan.c +++ b/tests/test_requestLoan.c @@ -2,7 +2,7 @@ #include "unity.h" -#include "requestLoan.h" +#include "requestLoan.c" void setUp(void) { @@ -12,9 +12,11 @@ void tearDown(void) { } -void test_requestLoan_NeedToImplement(void) +void test_requestLoan(void) { - TEST_IGNORE_MESSAGE("Need to Implement requestLoan"); + int e; + e = allow(); + TEST_ASSERT_EQUAL_INT(1, e); } #endif // TEST From ec11d3d7c947f6b81f9bd20806ef4223aeac4e70 Mon Sep 17 00:00:00 2001 From: fdai7514 Date: Mon, 30 Jan 2023 16:04:26 +0100 Subject: [PATCH 3/4] refactoring: implement new variables and comments in requestLoan.c and requestLoan.h --- src/requestLoan.c | 21 +++++++++------------ src/requestLoan.h | 7 ++++++- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/src/requestLoan.c b/src/requestLoan.c index b639585..dc396ec 100644 --- a/src/requestLoan.c +++ b/src/requestLoan.c @@ -1,27 +1,24 @@ #include "requestLoan.h" -int allow() + +int allow() //int allow() is helpful for indirectly testing void requestLoan() { if (a == 1) { return 1; } - else - { - return 0; - } } void requestLoan() { - if (allow() == 1) + if (allow() == 1) //only if int allow() returns 1, void requestLoan() will display the desired output { - printf(" Please select a loan Package: \n"); - printf(" \n"); - printf(" \n"); - printf(" 1000 Euro\n"); - printf(" 2500 Euro\n"); - printf(" 5000 Euro\n"); + printf(" Please select a loan Package: \n"); + printf(" \n"); + printf(" \n"); + printf(" %d %s\n", option1, currency); + printf(" %d %s\n", option2, currency); + printf(" %d %s\n", option3, currency); } } diff --git a/src/requestLoan.h b/src/requestLoan.h index de31f48..25c0001 100644 --- a/src/requestLoan.h +++ b/src/requestLoan.h @@ -3,8 +3,13 @@ #include #include + void requestLoan(); int allow(); -const int a = 1; +const int a = 1; //a is a constant used for indirectly testing void requestLoan() +char currency[] = "Euro"; +int option1 = 1000; +int option2 = 2500; +int option3 = 5000; #endif // REQUESTLOAN_H From 0756ad91ff1ba4788f40825c4de101fe8b3a9fa9 Mon Sep 17 00:00:00 2001 From: fdai7514 Date: Mon, 30 Jan 2023 16:13:09 +0100 Subject: [PATCH 4/4] refactoring: implement new variables in test_requestLoan.c --- tests/test_requestLoan.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tests/test_requestLoan.c b/tests/test_requestLoan.c index 9dd5e66..010f5d6 100644 --- a/tests/test_requestLoan.c +++ b/tests/test_requestLoan.c @@ -14,9 +14,10 @@ void tearDown(void) void test_requestLoan(void) { - int e; - e = allow(); - TEST_ASSERT_EQUAL_INT(1, e); + int actual, expected; //Arrange + expected = 1; + actual = allow(); // Act + TEST_ASSERT_EQUAL_INT(expected, actual); // Assert } #endif // TEST