diff --git a/src/stubser/stubser.c b/src/stubser/stubser.c index 0207a3e..73efe6f 100644 --- a/src/stubser/stubser.c +++ b/src/stubser/stubser.c @@ -199,11 +199,6 @@ STATIC int8_t createStubExpected(char *aNoSuffix, FILE *aFile, FILE *aHeader, cf return -1; } - if (0 == aList->amount) - { - return 0; - } - work = aList->head; while (work) { @@ -227,7 +222,7 @@ STATIC int8_t createStubExpected(char *aNoSuffix, FILE *aFile, FILE *aHeader, cf fprintf(aHeader, "void "STUBFUNCTION_INITEXPECTED_S1"();"NEWLINES NEWLINES, aNoSuffix); fprintf(aFile, "void "STUBFUNCTION_INITEXPECTED_S1"()"NEWLINES"{"NEWLINES, aNoSuffix); - + fprintf(aFile, "\t"STUBFUNCTION_USER_INITEXPECTED_S1"();"NEWLINES, aNoSuffix); work = aList->head; while (work) { @@ -253,11 +248,6 @@ STATIC int8_t createStubGlobals(char *aNoSuffix, FILE *aFile, FILE *aHeader, cfi return -1; } - if (0 == aList->amount) - { - return 0; - } - work = aList->head; while (work) { @@ -281,7 +271,7 @@ STATIC int8_t createStubGlobals(char *aNoSuffix, FILE *aFile, FILE *aHeader, cfi } fprintf(aFile, "void "STUBFUNCTION_INITGLOBALS_S1"()"NEWLINES"{"NEWLINES, aNoSuffix); - + fprintf(aFile, "\t"STUBFUNCTION_USER_INITGLOBALS_S1"();"NEWLINES, aNoSuffix); work = aList->head; while (work) { @@ -313,14 +303,9 @@ STATIC int8_t createStubCheck(char *aNoSuffix, FILE *aFile, FILE *aHeader, cfile return -1; } - if (0 == aList->amount) - { - return 0; - } - fprintf(aHeader, "void "STUBFUNCTION_CHECK_S1"();"NEWLINES NEWLINES, aNoSuffix); fprintf(aFile, "void "STUBFUNCTION_CHECK_S1"()"NEWLINES"{"NEWLINES, aNoSuffix); - + fprintf(aFile, "\t"STUBFUNCTION_USER_CHECK_S1"();"NEWLINES, aNoSuffix); work = aList->head; while (work) { @@ -539,37 +524,70 @@ int file_exist(const char *filename) STATIC void createUserHeader(char *aOutput, char *aNoSuffix) { - FILE *cheader; + FILE *fileDesc = NULL; char *cHeaderName = NULL; + char *cFileName = NULL; xmallocStrlcpy(&cHeaderName, aOutput, strlen(aOutput)); xmallocStrlcat(&cHeaderName, "_user.h", 8); + xmallocStrlcpy(&cFileName, aOutput, strlen(aOutput)); + xmallocStrlcat(&cFileName, "_user.c", 8); - if (file_exist(cHeaderName)) + if (!file_exist(cHeaderName)) { - free(cHeaderName); - return; + // user header doesn't exist + fileDesc = fopen(cHeaderName, "w"); + if (NULL != fileDesc) + { + + fprintf(fileDesc, "/*! @file %s"NEWLINES, gnu_basename(cHeaderName)); + fprintf(fileDesc, " * @details"NEWLINES" * This is a user defined stub header.\\n"NEWLINES); + fprintf(fileDesc, " * Define subject header needed for compilation of stub (e.g. typedefs, structures, ...).\\n"NEWLINES); + fprintf(fileDesc, " * - generated by stubser -"NEWLINES" */" NEWLINES NEWLINES); + + fprintf(fileDesc, "#ifndef _STUB_%s_USER_H"NEWLINES, aNoSuffix); + fprintf(fileDesc, "#define _STUB_%s_USER_H"NEWLINES, aNoSuffix); + + fprintf(fileDesc, NEWLINES"// predefined stub user functions"NEWLINES); + fprintf(fileDesc, "void "STUBFUNCTION_USER_INITEXPECTED_S1"();"NEWLINES, aNoSuffix); + fprintf(fileDesc, "void "STUBFUNCTION_USER_INITGLOBALS_S1"();"NEWLINES, aNoSuffix); + fprintf(fileDesc, "void "STUBFUNCTION_USER_CHECK_S1"();"NEWLINES, aNoSuffix); + + fprintf(fileDesc, NEWLINES"#endif // _STUB_%s_USER_H"NEWLINES, aNoSuffix); + + fclose(fileDesc); + fileDesc = NULL; + } } - -// user header doesn't exist - cheader = fopen(cHeaderName, "w"); - if (NULL == cheader) - { - free(cHeaderName); - return; - } - - fprintf(cheader, "/*! @file %s"NEWLINES, gnu_basename(cHeaderName)); - fprintf(cheader, " * @details"NEWLINES" * This is a user defined stub header.\\n"NEWLINES); - fprintf(cheader, " * Define subject header needed for compilation of stub (e.g. typedefs, structures, ...).\\n"NEWLINES); - fprintf(cheader, " * - generated by stubser -"NEWLINES" */" NEWLINES NEWLINES); - - fprintf(cheader, "#ifndef _STUB_%s_USER_H"NEWLINES, aNoSuffix); - fprintf(cheader, "#define _STUB_%s_USER_H"NEWLINES NEWLINES, aNoSuffix); - - fprintf(cheader, NEWLINES"#endif // _STUB_%s_USER_H"NEWLINES, aNoSuffix); - free(cHeaderName); - fclose(cheader); + + // TODO user c file + if (!file_exist(cFileName)) + { + // user header doesn't exist + fileDesc = fopen(cFileName, "w"); + if (NULL != fileDesc) + { + + fprintf(fileDesc, "/*! @file %s"NEWLINES, gnu_basename(cFileName)); + fprintf(fileDesc, " * @details"NEWLINES" * This is a user defined stub.\\n"NEWLINES); + fprintf(fileDesc, " * Define additional elements which need to be tested, or helper functions.\\n"NEWLINES); + fprintf(fileDesc, " * - generated by stubser -"NEWLINES" */" NEWLINES NEWLINES); + + fprintf(fileDesc, "#include "NEWLINES); + fprintf(fileDesc, "#include \"xasserts.h\""NEWLINES); + fprintf(fileDesc, "#include \"xtypes.h\""NEWLINES); + fprintf(fileDesc, "#include \"stub.h\""NEWLINES); + fprintf(fileDesc, "#include \"stub_%s_user.h\""NEWLINES, aNoSuffix); + + fprintf(fileDesc, "// predefined stub user functions"NEWLINES); + fprintf(fileDesc, "void "STUBFUNCTION_USER_INITEXPECTED_S1"()"NEWLINES"{"NEWLINES"\t"NEWLINES"}"NEWLINES NEWLINES, aNoSuffix); + fprintf(fileDesc, "void "STUBFUNCTION_USER_INITGLOBALS_S1"()"NEWLINES"{"NEWLINES"\t"NEWLINES"}"NEWLINES NEWLINES, aNoSuffix); + fprintf(fileDesc, "void "STUBFUNCTION_USER_CHECK_S1"()"NEWLINES"{"NEWLINES"\t"NEWLINES"}"NEWLINES NEWLINES, aNoSuffix); + + fclose(fileDesc); + } + } + free(cFileName); } STATIC int8_t createStub(char *aOutput, char *aNoSuffix, cfile_t *aCfile) diff --git a/src/stubser/stubser_loc.h b/src/stubser/stubser_loc.h index e591bc5..7389934 100644 --- a/src/stubser/stubser_loc.h +++ b/src/stubser/stubser_loc.h @@ -38,10 +38,14 @@ #define STUBINIT_PARAM_PARAMETER_S1 "aParameter_%c" // aParameter_a #define STUBINIT_PARAM_RETURN_S "aReturnValue" +#define STUBFUNCTION_USER_INITEXPECTED_S1 "stub_%s_user_initExpected" // stub_testfunction_initExpected +#define STUBFUNCTION_USER_INITGLOBALS_S1 "stub_%s_user_initGlobals" // stub_testfunction_initGlobals +#define STUBFUNCTION_USER_CHECK_S1 "stub_%s_user_checkGlobals" // stub_testfunction_checkGlobals + #define STUBFUNCTION_INITEXPECTED_S1 "stub_%s_initExpected" // stub_testfunction_initExpected #define STUBFUNCTION_INITGLOBALS_S1 "stub_%s_initGlobals" // stub_testfunction_initGlobals -#define STUBFUNCTION_INIT_S1 "stub_%s_init" // stub_testfunction_init #define STUBFUNCTION_CHECK_S1 "stub_%s_checkGlobals" // stub_testfunction_checkGlobals +#define STUBFUNCTION_INIT_S1 "stub_%s_init" // stub_testfunction_init #define STUBVARIABLE_EXPECTED_S1 "%s_expected" // variable_expected #define STUB_CONSOLE_GOBACK "\033[2K\r"