Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
libSDL
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
PocketInsanity
libSDL
Commits
7236f2ab
Commit
7236f2ab
authored
Jun 27, 2011
by
Markus Kauppila
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Refining the output of XML logger.
parent
2a486b27
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
222 additions
and
62 deletions
+222
-62
logger.h
test/test-automation/logger.h
+1
-5
plain_logger.c
test/test-automation/plain_logger.c
+1
-1
plain_logger.h
test/test-automation/plain_logger.h
+1
-1
runner.c
test/test-automation/runner.c
+34
-33
xml.c
test/test-automation/xml.c
+3
-11
xml_logger.c
test/test-automation/xml_logger.c
+181
-10
xml_logger.h
test/test-automation/xml_logger.h
+1
-1
No files found.
test/test-automation/logger.h
View file @
7236f2ab
...
...
@@ -23,14 +23,11 @@
#include <time.h>
// Function pointer to function which handles to output
typedef
int
(
*
LogOutputFp
)(
const
char
*
,
...);
/*!
* Generic logger interface
*
*/
typedef
void
(
*
RunStartedFp
)(
LogOutputFp
outputFn
,
const
char
*
runnerParameters
,
time_t
eventTime
);
typedef
void
(
*
RunStartedFp
)(
int
parameterCount
,
char
*
runnerParameters
[]
,
time_t
eventTime
);
typedef
void
(
*
RunEndedFp
)(
int
testCount
,
int
suiteCount
,
int
testPassCount
,
int
testFailCount
,
time_t
endTime
,
time_t
totalRuntime
);
...
...
@@ -54,7 +51,6 @@ typedef void (*AssertSummaryFp)(int numAsserts, int numAssertsFailed, int numAss
typedef
void
(
*
LogFp
)(
const
char
*
logMessage
,
time_t
eventTime
);
int
Output
(
const
char
*
message
,
...);
extern
RunStartedFp
RunStarted
;
extern
RunEndedFp
RunEnded
;
...
...
test/test-automation/plain_logger.c
View file @
7236f2ab
...
...
@@ -27,7 +27,7 @@ Output(const char *message, ...)
}
void
PlainRunStarted
(
const
char
*
runnerParameters
,
time_t
eventTime
)
PlainRunStarted
(
int
parameterCount
,
char
*
runnerParameters
[]
,
time_t
eventTime
)
{
Output
(
"Test run started"
);
Output
(
"Given command line options: %s"
,
"add options"
);
...
...
test/test-automation/plain_logger.h
View file @
7236f2ab
...
...
@@ -3,7 +3,7 @@
#include "logger.h"
void
PlainRunStarted
(
const
char
*
runnerParameters
,
time_t
eventTime
);
void
PlainRunStarted
(
int
parameterCount
,
char
*
runnerParameters
[]
,
time_t
eventTime
);
void
PlainRunEnded
(
int
testCount
,
int
suiteCount
,
int
testPassCount
,
int
testFailCount
,
time_t
endTime
,
time_t
totalRuntime
);
...
...
test/test-automation/runner.c
View file @
7236f2ab
...
...
@@ -220,19 +220,19 @@ LoadTestCases(TestSuiteReference *suites)
item
->
testCaseQuit
=
testCaseQuit
;
// copy suite name
int
length
=
strlen
(
suiteReference
->
name
)
+
1
;
int
length
=
SDL_
strlen
(
suiteReference
->
name
)
+
1
;
item
->
suiteName
=
SDL_malloc
(
length
);
str
cpy
(
item
->
suiteName
,
suiteReference
->
name
);
str
ncpy
(
item
->
suiteName
,
suiteReference
->
name
,
length
);
// copy test name
length
=
strlen
(
testReference
->
name
)
+
1
;
length
=
SDL_
strlen
(
testReference
->
name
)
+
1
;
item
->
testName
=
SDL_malloc
(
length
);
str
cpy
(
item
->
testName
,
testReference
->
name
);
str
ncpy
(
item
->
testName
,
testReference
->
name
,
length
);
// copy test description
length
=
strlen
(
testReference
->
description
)
+
1
;
length
=
SDL_
strlen
(
testReference
->
description
)
+
1
;
item
->
description
=
SDL_malloc
(
length
);
str
cpy
(
item
->
testName
,
testReference
->
name
);
str
ncpy
(
item
->
description
,
testReference
->
description
,
length
);
item
->
requirements
=
testReference
->
requirements
;
item
->
timeout
=
testReference
->
timeout
;
...
...
@@ -637,7 +637,8 @@ main(int argc, char *argv[])
// print: Testing against SDL version fuu (rev: bar) if verbose == true
int
failureCount
=
0
,
passCount
=
0
;
int
totalTestfailureCount
=
0
,
totalTestPassCount
=
0
;
int
testFailureCount
=
0
,
testPassCount
=
0
,
testSkipCount
=
0
;
char
*
testSuiteName
=
NULL
;
int
suiteCounter
=
0
;
...
...
@@ -670,7 +671,7 @@ main(int argc, char *argv[])
return
0
;
}
RunStarted
(
Output
,
NULL
,
0
);
RunStarted
(
argc
,
argv
,
0
);
char
*
currentSuiteName
=
NULL
;
...
...
@@ -679,50 +680,50 @@ main(int argc, char *argv[])
if
(
currentSuiteName
==
NULL
)
{
currentSuiteName
=
testItem
->
suiteName
;
SuiteStarted
(
currentSuiteName
,
0
);
testFailureCount
=
testPassCount
=
0
;
suiteCounter
++
;
}
else
if
(
strncmp
(
currentSuiteName
,
testItem
->
suiteName
,
NAME_BUFFER_SIZE
)
!=
0
)
{
SuiteEnded
(
testPassCount
,
testFailureCount
,
testSkipCount
,
0
.
0
f
,
0
);
currentSuiteName
=
testItem
->
suiteName
;
SuiteStarted
(
currentSuiteName
,
0
);
testFailureCount
=
testPassCount
=
0
;
suiteCounter
++
;
}
TestStarted
(
testItem
->
testName
,
testItem
->
suiteName
,
testItem
->
description
,
0
);
int
retVal
=
ExecuteTest
(
testItem
);
if
(
retVal
)
{
failureCount
++
;
if
(
retVal
==
2
)
{
//printf("%s (in %s): FAILED -> No asserts\n", testItem->testName, testItem->suiteName);
totalTestfailureCount
++
;
testFailureCount
++
;
}
else
{
//printf("%s (in %s): FAILED\n", testItem->testName, testItem->suiteName);
}
}
else
{
passCount
++
;
//printf("%s (in %s): ok\n", testItem->testName, testItem->suiteName);
totalTestPassCount
++
;
testPassCount
++
;
}
TestEnded
(
testItem
->
testName
,
testItem
->
suiteName
,
retVal
,
0
,
0
);
if
(
strncmp
(
currentSuiteName
,
testItem
->
suiteName
,
100
)
!=
0
)
{
SuiteEnded
(
0
,
0
,
0
,
0
.
0
f
,
0
);
currentSuiteName
=
testItem
->
suiteName
;
SuiteStarted
(
currentSuiteName
,
0
);
}
}
SuiteEnded
(
0
,
0
,
0
,
0
.
0
f
,
0
);
if
(
currentSuiteName
)
{
// \todo if no test are run, this will case incorrect nesting with
// xml output
SuiteEnded
(
testPassCount
,
testFailureCount
,
testSkipCount
,
0
.
0
f
,
0
);
}
UnloadTestCases
(
testCases
);
UnloadTestSuites
(
suites
);
const
Uint32
endTicks
=
SDL_GetTicks
();
RunEnded
(
passCount
+
failureCount
,
1
/*add suiteCount */
,
passCount
,
failureCount
,
0
,
0
);
/*
printf("Ran %d tests in %0.5f seconds.\n", (passCount + failureCount), (endTicks-startTicks)/1000.0f);
printf("%d tests passed\n", passCount);
printf("%d tests failed\n", failureCount);
*/
RunEnded
(
totalTestPassCount
+
totalTestfailureCount
,
suiteCounter
,
totalTestPassCount
,
totalTestfailureCount
,
0
,
0
);
return
0
;
}
test/test-automation/xml.c
View file @
7236f2ab
...
...
@@ -26,9 +26,6 @@
#include "xml.h"
/*! Points the function which handles the output */
static
LogOutputFp
logger
=
0
;
/*!
* Defines structure used for "counting" open XML-tags
*/
...
...
@@ -88,13 +85,6 @@ RemoveOpenTag(const char *tag)
TagList
*
openTag
=
openTags
;
SDL_free
((
char
*
)
openTag
->
tag
);
/*
int counter = 0;
for(; counter < strlen(buffer); ++counter) {
buffer[counter] = tolower(buffer[counter]);
}
*/
openTags
=
openTags
->
next
;
SDL_free
(
openTag
);
}
else
{
...
...
@@ -188,7 +178,6 @@ ToLowerCase(const char *string)
strncpy
(
ret
,
string
,
size
);
ret
[
size
]
=
'\0'
;
// turn the tag to lower case for case-insensitive comparation
int
counter
=
0
;
for
(;
counter
<
size
;
++
counter
)
{
ret
[
counter
]
=
tolower
(
ret
[
counter
]);
...
...
@@ -283,6 +272,9 @@ XMLCloseElement(const char *tag)
char
*
ret
=
SDL_malloc
(
bufferSize
);
memset
(
ret
,
0
,
bufferSize
);
// \todo check that element we're trying is actually open,
// otherwise it'll case nesting problems
// Close the open tags with proper nesting. Closes tags until it finds
// the given tag which is the last tag that will be closed
TagList
*
openTag
=
openTags
;
...
...
test/test-automation/xml_logger.c
View file @
7236f2ab
...
...
@@ -60,10 +60,10 @@ static int prevEOL = YES;
* \param the XML element itself
*
*/
void
XMLOutputter
(
const
int
i
l
,
int
EOL
,
const
char
*
message
)
{
void
XMLOutputter
(
const
int
currentIdentLeve
l
,
int
EOL
,
const
char
*
message
)
{
int
ident
=
0
;
for
(
;
ident
<
i
l
&&
prevEOL
;
++
ident
)
{
printf
(
"
"
);
for
(
;
ident
<
currentIdentLeve
l
&&
prevEOL
;
++
ident
)
{
printf
(
"
\t
"
);
}
prevEOL
=
EOL
;
...
...
@@ -73,33 +73,141 @@ void XMLOutputter(const int il, int EOL, const char *message) {
}
else
{
printf
(
"%s"
,
message
);
}
fflush
(
stdout
);
}
void
XMLRunStarted
(
const
char
*
runnerParameters
,
time_t
eventTime
)
XMLRunStarted
(
int
parameterCount
,
char
*
runnerParameters
[]
,
time_t
eventTime
)
{
char
*
output
=
XMLOpenDocument
(
"testlog"
);
XMLOutputter
(
indentLevel
++
,
YES
,
output
);
SDL_free
(
output
);
output
=
XMLOpenElement
(
"parameters"
);
XMLOutputter
(
indentLevel
++
,
YES
,
output
);
SDL_free
(
output
);
int
counter
=
0
;
for
(
counter
=
0
;
counter
<
parameterCount
;
counter
++
)
{
char
*
parameter
=
runnerParameters
[
counter
];
output
=
XMLOpenElement
(
"parameter"
);
XMLOutputter
(
indentLevel
++
,
NO
,
output
);
SDL_free
(
output
);
output
=
XMLAddContent
(
"Add: runner parameter"
);
output
=
XMLAddContent
(
parameter
);
XMLOutputter
(
indentLevel
,
NO
,
output
);
SDL_free
(
output
);
output
=
XMLCloseElement
(
"parameter"
);
XMLOutputter
(
--
indentLevel
,
YES
,
output
);
SDL_free
(
output
);
}
output
=
XMLCloseElement
(
"parameters"
);
XMLOutputter
(
--
indentLevel
,
YES
,
output
);
SDL_free
(
output
);
output
=
XMLOpenElement
(
"eventTime"
);
XMLOutputter
(
indentLevel
++
,
NO
,
output
);
SDL_free
(
output
);
output
=
XMLAddContent
(
IntToString
(
eventTime
));
XMLOutputter
(
indentLevel
,
NO
,
output
);
SDL_free
(
output
);
output
=
XMLCloseElement
(
"eventTime"
);
XMLOutputter
(
--
indentLevel
,
YES
,
output
);
SDL_free
(
output
);
}
void
XMLRunEnded
(
int
testCount
,
int
suiteCount
,
int
testPassCount
,
int
testFailCount
,
time_t
endTime
,
time_t
totalRuntime
)
{
char
*
output
=
XMLCloseDocument
(
"testlog"
);
// log suite count
char
*
output
=
XMLOpenElement
(
"numSuites"
);
XMLOutputter
(
indentLevel
++
,
NO
,
output
);
SDL_free
(
output
);
output
=
XMLAddContent
(
IntToString
(
suiteCount
));
XMLOutputter
(
indentLevel
,
NO
,
output
);
SDL_free
(
output
);
output
=
XMLCloseElement
(
"numSuites"
);
XMLOutputter
(
--
indentLevel
,
YES
,
output
);
SDL_free
(
output
);
// log test count
output
=
XMLOpenElement
(
"numTest"
);
XMLOutputter
(
indentLevel
++
,
NO
,
output
);
SDL_free
(
output
);
output
=
XMLAddContent
(
IntToString
(
testCount
));
XMLOutputter
(
indentLevel
,
NO
,
output
);
SDL_free
(
output
);
output
=
XMLCloseElement
(
"numTest"
);
XMLOutputter
(
--
indentLevel
,
YES
,
output
);
SDL_free
(
output
);
// log passed test count
output
=
XMLOpenElement
(
"numPassedTests"
);
XMLOutputter
(
indentLevel
++
,
NO
,
output
);
SDL_free
(
output
);
output
=
XMLAddContent
(
IntToString
(
testPassCount
));
XMLOutputter
(
indentLevel
,
NO
,
output
);
SDL_free
(
output
);
output
=
XMLCloseElement
(
"numPassedTests"
);
XMLOutputter
(
--
indentLevel
,
YES
,
output
);
SDL_free
(
output
);
// log failed test count
output
=
XMLOpenElement
(
"numFailedTests"
);
XMLOutputter
(
indentLevel
++
,
NO
,
output
);
SDL_free
(
output
);
output
=
XMLAddContent
(
IntToString
(
testFailCount
));
XMLOutputter
(
indentLevel
,
NO
,
output
);
SDL_free
(
output
);
output
=
XMLCloseElement
(
"numFailedTests"
);
XMLOutputter
(
--
indentLevel
,
YES
,
output
);
SDL_free
(
output
);
// log end timte
output
=
XMLOpenElement
(
"endTime"
);
XMLOutputter
(
indentLevel
++
,
NO
,
output
);
SDL_free
(
output
);
output
=
XMLAddContent
(
IntToString
(
endTime
));
XMLOutputter
(
indentLevel
,
NO
,
output
);
SDL_free
(
output
);
output
=
XMLCloseElement
(
"endTime"
);
XMLOutputter
(
--
indentLevel
,
YES
,
output
);
SDL_free
(
output
);
// log total runtime
output
=
XMLOpenElement
(
"totalRuntime"
);
XMLOutputter
(
indentLevel
++
,
NO
,
output
);
SDL_free
(
output
);
output
=
XMLAddContent
(
IntToString
(
totalRuntime
));
XMLOutputter
(
indentLevel
,
NO
,
output
);
SDL_free
(
output
);
output
=
XMLCloseElement
(
"totalRuntime"
);
XMLOutputter
(
--
indentLevel
,
YES
,
output
);
SDL_free
(
output
);
output
=
XMLCloseDocument
(
"testlog"
);
XMLOutputter
(
--
indentLevel
,
YES
,
output
);
SDL_free
(
output
);
}
...
...
@@ -128,11 +236,75 @@ void
XMLSuiteEnded
(
int
testsPassed
,
int
testsFailed
,
int
testsSkipped
,
double
endTime
,
time_t
totalRuntime
)
{
char
*
output
=
XMLCloseElement
(
"suite"
);
// log tests passed
char
*
output
=
XMLOpenElement
(
"testsPassed"
);
XMLOutputter
(
indentLevel
++
,
NO
,
output
);
SDL_free
(
output
);
output
=
XMLAddContent
(
IntToString
(
testsPassed
));
XMLOutputter
(
indentLevel
,
NO
,
output
);
SDL_free
(
output
);
output
=
XMLCloseElement
(
"testsPassed"
);
XMLOutputter
(
--
indentLevel
,
YES
,
output
);
SDL_free
(
output
);
// log tests failed
output
=
XMLOpenElement
(
"testsFailed"
);
XMLOutputter
(
indentLevel
++
,
NO
,
output
);
SDL_free
(
output
);
output
=
XMLAddContent
(
IntToString
(
testsFailed
));
XMLOutputter
(
indentLevel
,
NO
,
output
);
SDL_free
(
output
);
output
=
XMLCloseElement
(
"testsFailed"
);
XMLOutputter
(
--
indentLevel
,
YES
,
output
);
SDL_free
(
output
);
//! \todo endTime and totalRuntiem
// log tests skipped
output
=
XMLOpenElement
(
"testsSkipped"
);
XMLOutputter
(
indentLevel
++
,
NO
,
output
);
SDL_free
(
output
);
output
=
XMLAddContent
(
IntToString
(
testsSkipped
));
XMLOutputter
(
indentLevel
,
NO
,
output
);
SDL_free
(
output
);
output
=
XMLCloseElement
(
"testsSkipped"
);
XMLOutputter
(
--
indentLevel
,
YES
,
output
);
SDL_free
(
output
);
// log tests skipped
output
=
XMLOpenElement
(
"endTime"
);
XMLOutputter
(
indentLevel
++
,
NO
,
output
);
SDL_free
(
output
);
output
=
XMLAddContent
(
IntToString
(
endTime
));
XMLOutputter
(
indentLevel
,
NO
,
output
);
SDL_free
(
output
);
output
=
XMLCloseElement
(
"endTime"
);
XMLOutputter
(
--
indentLevel
,
YES
,
output
);
SDL_free
(
output
);
// log total runtime
output
=
XMLOpenElement
(
"totalRuntime"
);
XMLOutputter
(
indentLevel
++
,
NO
,
output
);
SDL_free
(
output
);
output
=
XMLAddContent
(
IntToString
(
totalRuntime
));
XMLOutputter
(
indentLevel
,
NO
,
output
);
SDL_free
(
output
);
output
=
XMLCloseElement
(
"totalRuntime"
);
XMLOutputter
(
--
indentLevel
,
YES
,
output
);
SDL_free
(
output
);
output
=
XMLCloseElement
(
"suite"
);
XMLOutputter
(
--
indentLevel
,
YES
,
output
);
SDL_free
(
output
);
}
void
...
...
@@ -156,7 +328,6 @@ XMLTestStarted(const char *testName, const char *suiteName, const char *testDesc
XMLOutputter
(
--
indentLevel
,
YES
,
output
);
SDL_free
(
output
);
output
=
XMLOpenElement
(
"description"
);
XMLOutputter
(
indentLevel
++
,
NO
,
output
);
SDL_free
(
output
);
...
...
test/test-automation/xml_logger.h
View file @
7236f2ab
...
...
@@ -3,7 +3,7 @@
#include "logger.h"
void
XMLRunStarted
(
const
char
*
runnerParameters
,
time_t
eventTime
);
void
XMLRunStarted
(
int
parameterCount
,
char
*
runnerParameters
[]
,
time_t
eventTime
);
void
XMLRunEnded
(
int
testCount
,
int
suiteCount
,
int
testPassCount
,
int
testFailCount
,
time_t
endTime
,
time_t
totalRuntime
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment