From a380307a103821892a44014dff0db35fdce18fdd Mon Sep 17 00:00:00 2001 From: heck Date: Tue, 9 Feb 2021 00:29:26 +0100 Subject: [PATCH] lib_test - add functions/tests for struct field type char array (fixed) --- examples/lib/lib_test/functions.h | 12 ++++++------ examples/lib/lib_test/lib_test.c | 18 ++++++++++++------ examples/lib/lib_test/main.c | 27 ++++++++++++++++----------- 3 files changed, 34 insertions(+), 23 deletions(-) diff --git a/examples/lib/lib_test/functions.h b/examples/lib/lib_test/functions.h index 474bbc4..4a4edf9 100644 --- a/examples/lib/lib_test/functions.h +++ b/examples/lib/lib_test/functions.h @@ -90,7 +90,7 @@ TAPS*** func_pppTAPS_args_pppTAPS(TAPS*** arg1_pppTAPS); // PSa - Primitive Structs containing array -// PSa contains a char[4] (which is a string) +// PSa contains a char[4] (which is an array of bytes, NOT a string) // By value TTAPSa func_TTAPSa_args_V(); @@ -106,16 +106,16 @@ TTAPSa*** func_pppTTAPSa_args_pppTTAPSa(TTAPSa*** arg1_pppTTAPSa); // CS - Complex Structs containing array // CS contains a PS[3] (which is an array of structs) // By value -TACS func_TACS_args_V(); +TACS func_TACS_args_V(); // MISSING -TACS func_TACS_args_TACS(TACS arg1_TACS); +TACS func_TACS_args_TACS(TACS arg1_TACS); // MISSING // By pointer -void func_V_args_pTACS(TACS* arg1_pTACS); +void func_V_args_pTACS(TACS* arg1_pTACS); // MISSING -TACS** func_ppTACS_args_ppTACS(TACS** arg1_ppTACS); +TACS** func_ppTACS_args_ppTACS(TACS** arg1_ppTACS); // MISSING -TACS*** func_pppTACS_args_pppTACS(TACS*** arg1_pppTACS); +TACS*** func_pppTACS_args_pppTACS(TACS*** arg1_pppTACS); // MISSING diff --git a/examples/lib/lib_test/lib_test.c b/examples/lib/lib_test/lib_test.c index 1ca2345..2d57195 100644 --- a/examples/lib/lib_test/lib_test.c +++ b/examples/lib/lib_test/lib_test.c @@ -211,23 +211,25 @@ TAPS*** func_pppTAPS_args_pppTAPS(TAPS*** arg1_pppTAPS) { } // PSa - Primitive Structs containing array +// PSa contains a char[4] (which is an array of bytes, NOT a string) // By value +// TODO: AMEND TTAPSa func_TTAPSa_args_V() { TTAPSa ret; - ret.field__P_1 = 23; strcpy(ret.field__Pa_1, "pEp"); return ret; } TTAPSa func_TTAPSa_args_TTAPSa(TTAPSa arg1_TTAPSa) { - arg1_TTAPSa.field__P_1 = 23; - strcpy(arg1_TTAPSa.field__Pa_1, "pEp"); - return arg1_TTAPSa; + TTAPSa ret; + for(int i=0; i < 4; ++i) { + ret.field__Pa_1[i] = arg1_TTAPSa.field__Pa_1[i]; + } + return ret; } // By pointer void func_V_args_pTTAPSa(TTAPSa* arg1_pTTAPSa) { - arg1_pTTAPSa->field__P_1 = 23; strcpy(arg1_pTTAPSa->field__Pa_1, "pEp"); } @@ -257,7 +259,11 @@ TACS func_TACS_args_V() { ret.field__PS_1.field__P_1 = 23; ret.field__PS_1.field__P_2 = 23; ret.field_APS_1[0].field__P_1 = 23; - ret.field_APS_1[0].field__P_2 = 23; + ret.field_APS_1[0].field__P_2 = 24; + ret.field_APS_1[1].field__P_1 = 25; + ret.field_APS_1[1].field__P_2 = 26; + ret.field_APS_1[2].field__P_1 = 27; + ret.field_APS_1[2].field__P_2 = 28; return ret; } diff --git a/examples/lib/lib_test/main.c b/examples/lib/lib_test/main.c index 731f629..11b6060 100644 --- a/examples/lib/lib_test/main.c +++ b/examples/lib/lib_test/main.c @@ -224,21 +224,22 @@ int main() { { printf("testing: func_TTAPSa_args_V\n"); TTAPSa ret = func_TTAPSa_args_V(); - assert(ret.field__P_1 == 23); assert(!strcmp(ret.field__Pa_1, "pEp")); } { printf("testing: func_TTAPSa_args_TTAPSa\n"); TTAPSa in; + in.field__Pa_1[0] = 'p'; + in.field__Pa_1[1] = 'E'; + in.field__Pa_1[2] = 'p'; + in.field__Pa_1[3] = '\0'; TTAPSa ret = func_TTAPSa_args_TTAPSa(in); - assert(ret.field__P_1 == 23); assert(!strcmp(ret.field__Pa_1, "pEp")); } { printf("testing: func_V_args_pTTAPSa\n"); TTAPSa *inout = (TTPSa*)malloc(sizeof (TTPSa)); func_V_args_pTTAPSa(inout); - assert(inout->field__P_1 == 23); assert(!strcmp(inout->field__Pa_1, "pEp")); } { @@ -262,13 +263,17 @@ int main() { assert(inout->field__P_1 == 23); assert(!strcmp(inout->field__Pa_1, "pEp")); } - { - printf("testing: func_TACS_args_V\n"); - TACS ret = func_TACS_args_V(); - assert(ret.field__PS_1.field__P_1 = 23); - assert(ret.field__PS_1.field__P_2 = 23); - assert(ret.field_APS_1[0].field__P_1 = 23); - assert(ret.field_APS_1[0].field__P_2 = 23); - } +// { +// printf("testing: func_TACS_args_V\n"); +// TACS ret = func_TACS_args_V(); +// assert(ret.field__PS_1.field__P_1 == 23); +// assert(ret.field__PS_1.field__P_2 == 23); +// assert(ret.field_APS_1[0].field__P_1 == 23); +// assert(ret.field_APS_1[0].field__P_2 == 24); +// assert(ret.field_APS_1[1].field__P_1 == 25); +// assert(ret.field_APS_1[1].field__P_2 == 26); +// assert(ret.field_APS_1[2].field__P_1 == 27); +// assert(ret.field_APS_1[2].field__P_2 == 28); +// } }