Browse Source
The error handling is now controlled by the function errorMessage. It is declared in error.h and defined in error.c. It is called in different cases. Each error has its own error code. The advantage is that the error message is specific.
remotes/origin/development
The error handling is now controlled by the function errorMessage. It is declared in error.h and defined in error.c. It is called in different cases. Each error has its own error code. The advantage is that the error message is specific.
remotes/origin/development
fdai7057
2 years ago
32 changed files with 74 additions and 6751 deletions
-
2build-script.sh
-
1project.yml
-
12src/createCustomer.c
-
1src/createCustomer.h
-
52src/error.c
-
3src/error.h
-
9src/loginCustomer.c
-
1src/loginCustomer.h
-
4src/mainMenu.c
-
23src_2/Error.c
-
2src_2/Error.h
-
14test/test_Error.c
-
3tests_2/build/test/cache/defines_dependency.yml
-
242tests_2/build/test/cache/input.yml
-
117tests_2/build/test/cache/test_Error.c
-
1tests_2/build/test/dependencies/Error.d
-
6tests_2/build/test/dependencies/cmock.d
-
4tests_2/build/test/dependencies/test_Error.d
-
4tests_2/build/test/dependencies/test_Error_runner.d
-
4tests_2/build/test/dependencies/unity.d
-
BINtests_2/build/test/out/c/Error.o
-
BINtests_2/build/test/out/c/cmock.o
-
BINtests_2/build/test/out/c/test_Error.o
-
BINtests_2/build/test/out/c/test_Error_runner.o
-
BINtests_2/build/test/out/c/unity.o
-
BINtests_2/build/test/out/test_Error.out
-
117tests_2/build/test/preprocess/files/test_Error.c
-
3tests_2/build/test/preprocess/includes/test_Error.c
-
6018tests_2/build/test/results/test_Error.pass
-
81tests_2/build/test/runners/test_Error_runner.c
-
101tests_2/project.yml
-
0tests_2/test/support/.gitkeep
@ -1,7 +1,7 @@ |
|||
clear |
|||
ceedling test:all |
|||
cd src/ |
|||
gcc stringManipulation.c loginCustomer.c createCustomer.c mainMenu.c program.c -lm -o program.out |
|||
gcc stringManipulation.c error.c loginCustomer.c createCustomer.c mainMenu.c program.c -lm -o program.out |
|||
./program.out |
|||
rm program.out |
|||
cd .. |
@ -0,0 +1,52 @@ |
|||
#include "error.h" |
|||
|
|||
int errorMessage(int errorCode) |
|||
{ |
|||
int returnValue=0; |
|||
switch(errorCode){ |
|||
case -1: |
|||
puts("Login not successful."); |
|||
returnValue = -1; |
|||
break; |
|||
case -2: |
|||
puts("Maximum number of attempts reached."); |
|||
returnValue = -2; |
|||
break; |
|||
case -3: |
|||
puts("No menu entry available for this number."); |
|||
returnValue = -3; |
|||
break; |
|||
case -4: |
|||
puts("CustomerData.* not found. Make sure that you've created an user account before logging in for the first time. Aborting!"); |
|||
returnValue = -4; |
|||
exit(-1); |
|||
break; |
|||
case -5: |
|||
puts("You should be at least 18 years old to create a bank account!"); |
|||
returnValue = -5; |
|||
break; |
|||
case -6: |
|||
puts("Error when trying to open a file to create a customer account."); |
|||
returnValue = -6; |
|||
exit(-1); |
|||
break; |
|||
case -7: |
|||
puts("Forename too long. (length > 15 characters) Aborting!"); |
|||
returnValue = -7; |
|||
exit(-1); |
|||
break; |
|||
case -8: |
|||
puts("Surname too long. (length > 15 characters) Aborting!"); |
|||
returnValue = -8; |
|||
exit(-1); |
|||
break; |
|||
case -9: |
|||
puts("Password too long. (length > 20 characters) Aboring!"); |
|||
returnValue = -9; |
|||
exit(-1); |
|||
break; |
|||
default: |
|||
puts("Error code unknown."); |
|||
} |
|||
return returnValue; |
|||
} |
@ -0,0 +1,3 @@ |
|||
#include <stdio.h> |
|||
#include <stdlib.h> |
|||
int errorMessage(int); |
@ -1,23 +0,0 @@ |
|||
#include "Error.h" |
|||
|
|||
int error(int errorCode) |
|||
{ |
|||
int returnValue=0; |
|||
switch(errorCode){ |
|||
case -1: |
|||
puts("Login not successful."); |
|||
returnValue = -1; |
|||
break; |
|||
case -2: |
|||
puts("Maximum number of attempts reached."); |
|||
returnValue = -2; |
|||
break; |
|||
case -3: |
|||
puts("No menu entry available for this number."); |
|||
returnValue = -3; |
|||
break; |
|||
default: |
|||
puts("Error code unknown."); |
|||
} |
|||
return returnValue; |
|||
} |
@ -1,2 +0,0 @@ |
|||
#include <stdio.h> |
|||
int error(int); |
@ -1,3 +0,0 @@ |
|||
--- |
|||
"../src/Error.c": |
|||
- TEST |
@ -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: |
|||
- "../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/ |
@ -1,117 +0,0 @@ |
|||
#include "../src/Error.h" |
|||
#include "/var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h" |
|||
|
|||
|
|||
void setUp(){} |
|||
|
|||
void tearDown(){} |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
void test_error() |
|||
|
|||
{ |
|||
|
|||
|
|||
|
|||
srand(time(0)); |
|||
|
|||
int bound = 1000; |
|||
|
|||
int invalidErrorCodes_1[bound]; |
|||
|
|||
int invalidErrorCodesLarge_2[bound]; |
|||
|
|||
int invalidErrorCodesLargest_3[bound]; |
|||
|
|||
|
|||
|
|||
int validErrorCodeUnsuccessfulLogin[bound]; |
|||
|
|||
int validErrorCodeMaximumNumberOfAttempts[bound]; |
|||
|
|||
int validErrorCodeNoMenuEntryForNumber[bound]; |
|||
|
|||
|
|||
|
|||
for(int i=0;i<bound;++i){ |
|||
|
|||
|
|||
|
|||
invalidErrorCodes_1[i] = rand() % 2000 + 1; |
|||
|
|||
|
|||
|
|||
invalidErrorCodesLarge_2[i] = (rand() % 100000000) + 1000000; |
|||
|
|||
|
|||
|
|||
invalidErrorCodesLargest_3[i] = (rand() % 1000000001) + 1000000000 ; |
|||
|
|||
|
|||
|
|||
validErrorCodeUnsuccessfulLogin[i] = -1; |
|||
|
|||
|
|||
|
|||
validErrorCodeMaximumNumberOfAttempts[i] = -2; |
|||
|
|||
|
|||
|
|||
validErrorCodeNoMenuEntryForNumber[i] = -3; |
|||
|
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
for(int i=0;i<bound;++i){ |
|||
|
|||
UnityAssertEqualNumber((UNITY_INT)((0)), (UNITY_INT)((error(invalidErrorCodes_1[i]))), ( |
|||
|
|||
((void *)0) |
|||
|
|||
), (UNITY_UINT)(40), UNITY_DISPLAY_STYLE_INT); |
|||
|
|||
UnityAssertEqualNumber((UNITY_INT)((0)), (UNITY_INT)((error(invalidErrorCodesLarge_2[i]))), ( |
|||
|
|||
((void *)0) |
|||
|
|||
), (UNITY_UINT)(41), UNITY_DISPLAY_STYLE_INT); |
|||
|
|||
UnityAssertEqualNumber((UNITY_INT)((0)), (UNITY_INT)((error(invalidErrorCodesLargest_3[i]))), ( |
|||
|
|||
((void *)0) |
|||
|
|||
), (UNITY_UINT)(42), UNITY_DISPLAY_STYLE_INT); |
|||
|
|||
} |
|||
|
|||
|
|||
|
|||
for(int i=0;i<bound;++i){ |
|||
|
|||
UnityAssertEqualNumber((UNITY_INT)((-1)), (UNITY_INT)((error(validErrorCodeUnsuccessfulLogin[i]))), ( |
|||
|
|||
((void *)0) |
|||
|
|||
), (UNITY_UINT)(46), UNITY_DISPLAY_STYLE_INT); |
|||
|
|||
UnityAssertEqualNumber((UNITY_INT)((-2)), (UNITY_INT)((error(validErrorCodeMaximumNumberOfAttempts[i]))), ( |
|||
|
|||
((void *)0) |
|||
|
|||
), (UNITY_UINT)(47), UNITY_DISPLAY_STYLE_INT); |
|||
|
|||
UnityAssertEqualNumber((UNITY_INT)((-3)), (UNITY_INT)((error(validErrorCodeNoMenuEntryForNumber[i]))), ( |
|||
|
|||
((void *)0) |
|||
|
|||
), (UNITY_UINT)(48), UNITY_DISPLAY_STYLE_INT); |
|||
|
|||
} |
|||
|
|||
} |
@ -1 +0,0 @@ |
|||
build/test/out/c/Error.o: ../src/Error.c ../src/Error.h |
@ -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 |
@ -1,4 +0,0 @@ |
|||
build/test/out/c/test_Error.o: test/test_Error.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 \ |
|||
../src/Error.h |
@ -1,4 +0,0 @@ |
|||
build/test/out/c/test_Error_runner.o: \ |
|||
build/test/runners/test_Error_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 |
@ -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 |
@ -1,117 +0,0 @@ |
|||
#include "../src/Error.h" |
|||
#include "/var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h" |
|||
|
|||
|
|||
void setUp(){} |
|||
|
|||
void tearDown(){} |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
void test_error() |
|||
|
|||
{ |
|||
|
|||
|
|||
|
|||
srand(time(0)); |
|||
|
|||
int bound = 1000; |
|||
|
|||
int invalidErrorCodes_1[bound]; |
|||
|
|||
int invalidErrorCodesLarge_2[bound]; |
|||
|
|||
int invalidErrorCodesLargest_3[bound]; |
|||
|
|||
|
|||
|
|||
int validErrorCodeUnsuccessfulLogin[bound]; |
|||
|
|||
int validErrorCodeMaximumNumberOfAttempts[bound]; |
|||
|
|||
int validErrorCodeNoMenuEntryForNumber[bound]; |
|||
|
|||
|
|||
|
|||
for(int i=0;i<bound;++i){ |
|||
|
|||
|
|||
|
|||
invalidErrorCodes_1[i] = rand() % 2000 + 1; |
|||
|
|||
|
|||
|
|||
invalidErrorCodesLarge_2[i] = (rand() % 100000000) + 1000000; |
|||
|
|||
|
|||
|
|||
invalidErrorCodesLargest_3[i] = (rand() % 1000000001) + 1000000000 ; |
|||
|
|||
|
|||
|
|||
validErrorCodeUnsuccessfulLogin[i] = -1; |
|||
|
|||
|
|||
|
|||
validErrorCodeMaximumNumberOfAttempts[i] = -2; |
|||
|
|||
|
|||
|
|||
validErrorCodeNoMenuEntryForNumber[i] = -3; |
|||
|
|||
} |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
for(int i=0;i<bound;++i){ |
|||
|
|||
UnityAssertEqualNumber((UNITY_INT)((0)), (UNITY_INT)((error(invalidErrorCodes_1[i]))), ( |
|||
|
|||
((void *)0) |
|||
|
|||
), (UNITY_UINT)(40), UNITY_DISPLAY_STYLE_INT); |
|||
|
|||
UnityAssertEqualNumber((UNITY_INT)((0)), (UNITY_INT)((error(invalidErrorCodesLarge_2[i]))), ( |
|||
|
|||
((void *)0) |
|||
|
|||
), (UNITY_UINT)(41), UNITY_DISPLAY_STYLE_INT); |
|||
|
|||
UnityAssertEqualNumber((UNITY_INT)((0)), (UNITY_INT)((error(invalidErrorCodesLargest_3[i]))), ( |
|||
|
|||
((void *)0) |
|||
|
|||
), (UNITY_UINT)(42), UNITY_DISPLAY_STYLE_INT); |
|||
|
|||
} |
|||
|
|||
|
|||
|
|||
for(int i=0;i<bound;++i){ |
|||
|
|||
UnityAssertEqualNumber((UNITY_INT)((-1)), (UNITY_INT)((error(validErrorCodeUnsuccessfulLogin[i]))), ( |
|||
|
|||
((void *)0) |
|||
|
|||
), (UNITY_UINT)(46), UNITY_DISPLAY_STYLE_INT); |
|||
|
|||
UnityAssertEqualNumber((UNITY_INT)((-2)), (UNITY_INT)((error(validErrorCodeMaximumNumberOfAttempts[i]))), ( |
|||
|
|||
((void *)0) |
|||
|
|||
), (UNITY_UINT)(47), UNITY_DISPLAY_STYLE_INT); |
|||
|
|||
UnityAssertEqualNumber((UNITY_INT)((-3)), (UNITY_INT)((error(validErrorCodeNoMenuEntryForNumber[i]))), ( |
|||
|
|||
((void *)0) |
|||
|
|||
), (UNITY_UINT)(48), UNITY_DISPLAY_STYLE_INT); |
|||
|
|||
} |
|||
|
|||
} |
@ -1,3 +0,0 @@ |
|||
--- |
|||
- "/var/lib/gems/2.7.0/gems/ceedling-0.31.1/vendor/unity/src/unity.h" |
|||
- "../src/Error.h" |
6018
tests_2/build/test/results/test_Error.pass
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -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_error(); |
|||
|
|||
|
|||
/*=======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_Error.c"); |
|||
run_test(test_error, "test_error", 10); |
|||
|
|||
return UnityEnd(); |
|||
} |
@ -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: |
|||
- ../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 |
|||
... |
Write
Preview
Loading…
Cancel
Save
Reference in new issue