Skip to content
This repository has been archived by the owner on Feb 11, 2021. It is now read-only.

Commit

Permalink
Changed SetUpLogger based on CR.
Browse files Browse the repository at this point in the history
  • Loading branch information
mkauppila committed Jul 31, 2011
1 parent 700ce10 commit caf09c4
Show file tree
Hide file tree
Showing 5 changed files with 41 additions and 24 deletions.
2 changes: 1 addition & 1 deletion test/test-automation/build-scripts/install-tests.sh
Expand Up @@ -21,6 +21,6 @@ do
cp -f "$suite/.libs/lib$suite.$EXT" $DIRECTORY
done

sudo cp .libs/libtest.0.dylib /usr/local/lib/libtest.0.dylib
#sudo cp .libs/libtest.0.dylib /usr/local/lib/libtest.0.dylib

echo "Test suites installed."
7 changes: 4 additions & 3 deletions test/test-automation/logger.h
Expand Up @@ -24,11 +24,12 @@
#include <time.h>

/* Logging levels */
typedef enum Level {
STANDARD = 1,
VERBOSE
typedef enum LogLevel {
LOGGER_TERSE = 1,
LOGGER_VERBOSE
} Level;

#define LOGGER_DEFAULT_LEVEL LOGGER_TERSE

typedef struct LoggerData {
//! If enabled logger will write to stdout instead of file
Expand Down
6 changes: 3 additions & 3 deletions test/test-automation/plain_logger.c
Expand Up @@ -13,7 +13,7 @@
static int indentLevel;

/*! Logging level of the logger */
static Level level = STANDARD;
static Level level = LOGGER_TERSE;

//! Handle to log file
static FILE *logFile;
Expand Down Expand Up @@ -155,7 +155,7 @@ PlainAssert(const char *assertName, int assertResult, const char *assertMessage,
time_t eventTime)
{
// Log passed asserts only on VERBOSE level
if(level <= STANDARD && assertResult == ASSERT_PASS) {
if(level <= LOGGER_TERSE && assertResult == ASSERT_PASS) {
return ;
}

Expand All @@ -168,7 +168,7 @@ PlainAssertWithValues(const char *assertName, int assertResult, const char *asse
int actualValue, int expectedValue, time_t eventTime)
{
// Log passed asserts only on VERBOSE level
if(level <= STANDARD && assertResult == ASSERT_PASS) {
if(level <= LOGGER_TERSE && assertResult == ASSERT_PASS) {
return ;
}

Expand Down
44 changes: 30 additions & 14 deletions test/test-automation/runner.c
Expand Up @@ -106,6 +106,12 @@ int universal_timeout = -1;
//! Default directory of the test suites
#define DEFAULT_LOG_FILENAME "runner"

//! Defines directory separator
#define DIRECTORY_SEPARATOR '/'

//! Name of the default stylesheet
const char *defaultXSLStylesheet = "style.xsl";

//! Fuzzer seed for the harness
char *runSeed = NULL;

Expand Down Expand Up @@ -256,7 +262,7 @@ ScanForTestSuites(char *directoryName, char *extension)
SDL_snprintf(reference->name, nameSize, "%s", name);

// copy the directory path
const int dpSize = dirSize + nameSize + 1 + extSize + 1;
const Uint32 dpSize = dirSize + nameSize + 1 + extSize + 1;
reference->directoryPath = SDL_malloc(dpSize * sizeof(char));
if(reference->directoryPath == NULL) {
SDL_free(reference->name);
Expand Down Expand Up @@ -891,7 +897,8 @@ GenerateRunSeed(const int length)
* \return Logger data structure (that needs be deallocated)
*/
LoggerData *
SetUpLogger()
SetUpLogger(const int log_stdout_enabled, const int xml_enabled, const int xsl_enabled,
const int custom_xsl_enabled, const char *defaultXslSheet)
{
LoggerData *loggerData = SDL_malloc(sizeof(LoggerData));
if(loggerData == NULL) {
Expand All @@ -900,7 +907,7 @@ SetUpLogger()
}
memset(loggerData, 0, sizeof(LoggerData));

loggerData->level = (enable_verbose_logger ? VERBOSE : STANDARD);
loggerData->level = (enable_verbose_logger ? LOGGER_VERBOSE : LOGGER_TERSE);

if(log_stdout_enabled == 1) {
loggerData->stdoutEnabled = 1;
Expand All @@ -910,20 +917,24 @@ SetUpLogger()

const char *extension = (xml_enabled ? "xml" : "log");

/* Combine and create directory for log file */
// log_directory + log_basename + seed + . + type
const int directoryLength = SDL_strlen(log_directory);
const int basenameLength = SDL_strlen(log_basename);
const int seedLength = SDL_strlen(runSeed);
const int extensionLength = SDL_strlen(extension);

// create directory (if it doesn't exist yet)
unsigned int mode = S_IRWXU | S_IRGRP | S_ISUID;
mkdir(log_directory, mode);

/* Combine and create directory for log file */
const Uint32 directoryLength = SDL_strlen(log_directory);
const Uint32 basenameLength = SDL_strlen(log_basename);
const Uint32 seedLength = SDL_strlen(runSeed);
const Uint32 extensionLength = SDL_strlen(extension);

// couple of extras bytes for '/', '-', '.' and '\0' at the end
const int length = directoryLength + basenameLength + seedLength
const Uint32 length = directoryLength + basenameLength + seedLength
+ extensionLength + 4;

if(length <= 0) {
return NULL;
}

char *filename = SDL_malloc(length);
if(filename == NULL) {
SDL_free(loggerData);
Expand All @@ -933,8 +944,8 @@ SetUpLogger()
}
memset(filename, 0, length);

SDL_snprintf(filename, length, "%s/%s-%s.%s", log_directory, log_basename,
runSeed, extension);
SDL_snprintf(filename, length, "%s%c%s-%s.%s", log_directory,
DIRECTORY_SEPARATOR, log_basename, runSeed, extension);

loggerData->filename = filename;
}
Expand Down Expand Up @@ -1285,7 +1296,12 @@ main(int argc, char *argv[])
}
}

LoggerData *loggerData = SetUpLogger();
LoggerData *loggerData = SetUpLogger(log_stdout_enabled, xml_enabled,
xsl_enabled, custom_xsl_enabled, defaultXSLStylesheet);
if(loggerData == NULL) {
printf("Failed to create a logger.\n");
return 2;
}

if(log_stdout_enabled == 0) {
printf("Runner is executing the tests.\n");
Expand Down
6 changes: 3 additions & 3 deletions test/test-automation/xml_logger.c
Expand Up @@ -68,7 +68,7 @@ const char *logElementName = "log";
static int indentLevel;

/*! Logging level of the logger */
static Level level = STANDARD;
static Level level = LOGGER_TERSE;

//! Constants for XMLOuputters EOL parameter
#define YES 1
Expand Down Expand Up @@ -485,7 +485,7 @@ XMLAssert(const char *assertName, int assertResult, const char *assertMessage,
time_t eventTime)
{
// Log passed asserts only on VERBOSE level
if(level <= STANDARD && assertResult == ASSERT_PASS) {
if(level <= LOGGER_TERSE && assertResult == ASSERT_PASS) {
return ;
}

Expand Down Expand Up @@ -542,7 +542,7 @@ XMLAssertWithValues(const char *assertName, int assertResult, const char *assert
int actualValue, int excpected, time_t eventTime)
{
// Log passed asserts only on VERBOSE level
if(level <= STANDARD && assertResult == ASSERT_PASS) {
if(level <= LOGGER_TERSE && assertResult == ASSERT_PASS) {
return ;
}

Expand Down

0 comments on commit caf09c4

Please sign in to comment.