- create also stub user c file (not overwritten if exist)

- calling user functions in init and check
This commit is contained in:
2017-03-16 08:50:54 +00:00
parent e100189aa9
commit 97603f9001
2 changed files with 65 additions and 43 deletions

View File

@@ -199,11 +199,6 @@ STATIC int8_t createStubExpected(char *aNoSuffix, FILE *aFile, FILE *aHeader, cf
return -1; return -1;
} }
if (0 == aList->amount)
{
return 0;
}
work = aList->head; work = aList->head;
while (work) 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(aHeader, "void "STUBFUNCTION_INITEXPECTED_S1"();"NEWLINES NEWLINES, aNoSuffix);
fprintf(aFile, "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; work = aList->head;
while (work) while (work)
{ {
@@ -253,11 +248,6 @@ STATIC int8_t createStubGlobals(char *aNoSuffix, FILE *aFile, FILE *aHeader, cfi
return -1; return -1;
} }
if (0 == aList->amount)
{
return 0;
}
work = aList->head; work = aList->head;
while (work) 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, "void "STUBFUNCTION_INITGLOBALS_S1"()"NEWLINES"{"NEWLINES, aNoSuffix);
fprintf(aFile, "\t"STUBFUNCTION_USER_INITGLOBALS_S1"();"NEWLINES, aNoSuffix);
work = aList->head; work = aList->head;
while (work) while (work)
{ {
@@ -313,14 +303,9 @@ STATIC int8_t createStubCheck(char *aNoSuffix, FILE *aFile, FILE *aHeader, cfile
return -1; return -1;
} }
if (0 == aList->amount)
{
return 0;
}
fprintf(aHeader, "void "STUBFUNCTION_CHECK_S1"();"NEWLINES NEWLINES, aNoSuffix); fprintf(aHeader, "void "STUBFUNCTION_CHECK_S1"();"NEWLINES NEWLINES, aNoSuffix);
fprintf(aFile, "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; work = aList->head;
while (work) while (work)
{ {
@@ -539,37 +524,70 @@ int file_exist(const char *filename)
STATIC void createUserHeader(char *aOutput, char *aNoSuffix) STATIC void createUserHeader(char *aOutput, char *aNoSuffix)
{ {
FILE *cheader; FILE *fileDesc = NULL;
char *cHeaderName = NULL; char *cHeaderName = NULL;
char *cFileName = NULL;
xmallocStrlcpy(&cHeaderName, aOutput, strlen(aOutput)); xmallocStrlcpy(&cHeaderName, aOutput, strlen(aOutput));
xmallocStrlcat(&cHeaderName, "_user.h", 8); 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 // user header doesn't exist
cheader = fopen(cHeaderName, "w"); fileDesc = fopen(cHeaderName, "w");
if (NULL == cheader) if (NULL != fileDesc)
{ {
free(cHeaderName);
return; 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;
}
} }
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); 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 <CUnit/CUnit.h>"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) STATIC int8_t createStub(char *aOutput, char *aNoSuffix, cfile_t *aCfile)

View File

@@ -38,10 +38,14 @@
#define STUBINIT_PARAM_PARAMETER_S1 "aParameter_%c" // aParameter_a #define STUBINIT_PARAM_PARAMETER_S1 "aParameter_%c" // aParameter_a
#define STUBINIT_PARAM_RETURN_S "aReturnValue" #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_INITEXPECTED_S1 "stub_%s_initExpected" // stub_testfunction_initExpected
#define STUBFUNCTION_INITGLOBALS_S1 "stub_%s_initGlobals" // stub_testfunction_initGlobals #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_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 STUBVARIABLE_EXPECTED_S1 "%s_expected" // variable_expected
#define STUB_CONSOLE_GOBACK "\033[2K\r" #define STUB_CONSOLE_GOBACK "\033[2K\r"