Commit 55a24760 authored by Markus Kauppila's avatar Markus Kauppila

Changed SetUpLogger based on CR.

parent 77405acd
...@@ -21,6 +21,6 @@ do ...@@ -21,6 +21,6 @@ do
cp -f "$suite/.libs/lib$suite.$EXT" $DIRECTORY cp -f "$suite/.libs/lib$suite.$EXT" $DIRECTORY
done 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." echo "Test suites installed."
...@@ -24,11 +24,12 @@ ...@@ -24,11 +24,12 @@
#include <time.h> #include <time.h>
/* Logging levels */ /* Logging levels */
typedef enum Level { typedef enum LogLevel {
STANDARD = 1, LOGGER_TERSE = 1,
VERBOSE LOGGER_VERBOSE
} Level; } Level;
#define LOGGER_DEFAULT_LEVEL LOGGER_TERSE
typedef struct LoggerData { typedef struct LoggerData {
//! If enabled logger will write to stdout instead of file //! If enabled logger will write to stdout instead of file
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
static int indentLevel; static int indentLevel;
/*! Logging level of the logger */ /*! Logging level of the logger */
static Level level = STANDARD; static Level level = LOGGER_TERSE;
//! Handle to log file //! Handle to log file
static FILE *logFile; static FILE *logFile;
...@@ -155,7 +155,7 @@ PlainAssert(const char *assertName, int assertResult, const char *assertMessage, ...@@ -155,7 +155,7 @@ PlainAssert(const char *assertName, int assertResult, const char *assertMessage,
time_t eventTime) time_t eventTime)
{ {
// Log passed asserts only on VERBOSE level // Log passed asserts only on VERBOSE level
if(level <= STANDARD && assertResult == ASSERT_PASS) { if(level <= LOGGER_TERSE && assertResult == ASSERT_PASS) {
return ; return ;
} }
...@@ -168,7 +168,7 @@ PlainAssertWithValues(const char *assertName, int assertResult, const char *asse ...@@ -168,7 +168,7 @@ PlainAssertWithValues(const char *assertName, int assertResult, const char *asse
int actualValue, int expectedValue, time_t eventTime) int actualValue, int expectedValue, time_t eventTime)
{ {
// Log passed asserts only on VERBOSE level // Log passed asserts only on VERBOSE level
if(level <= STANDARD && assertResult == ASSERT_PASS) { if(level <= LOGGER_TERSE && assertResult == ASSERT_PASS) {
return ; return ;
} }
......
...@@ -106,6 +106,12 @@ int universal_timeout = -1; ...@@ -106,6 +106,12 @@ int universal_timeout = -1;
//! Default directory of the test suites //! Default directory of the test suites
#define DEFAULT_LOG_FILENAME "runner" #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 //! Fuzzer seed for the harness
char *runSeed = NULL; char *runSeed = NULL;
...@@ -256,7 +262,7 @@ ScanForTestSuites(char *directoryName, char *extension) ...@@ -256,7 +262,7 @@ ScanForTestSuites(char *directoryName, char *extension)
SDL_snprintf(reference->name, nameSize, "%s", name); SDL_snprintf(reference->name, nameSize, "%s", name);
// copy the directory path // 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)); reference->directoryPath = SDL_malloc(dpSize * sizeof(char));
if(reference->directoryPath == NULL) { if(reference->directoryPath == NULL) {
SDL_free(reference->name); SDL_free(reference->name);
...@@ -891,7 +897,8 @@ GenerateRunSeed(const int length) ...@@ -891,7 +897,8 @@ GenerateRunSeed(const int length)
* \return Logger data structure (that needs be deallocated) * \return Logger data structure (that needs be deallocated)
*/ */
LoggerData * 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)); LoggerData *loggerData = SDL_malloc(sizeof(LoggerData));
if(loggerData == NULL) { if(loggerData == NULL) {
...@@ -900,7 +907,7 @@ SetUpLogger() ...@@ -900,7 +907,7 @@ SetUpLogger()
} }
memset(loggerData, 0, sizeof(LoggerData)); 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) { if(log_stdout_enabled == 1) {
loggerData->stdoutEnabled = 1; loggerData->stdoutEnabled = 1;
...@@ -910,20 +917,24 @@ SetUpLogger() ...@@ -910,20 +917,24 @@ SetUpLogger()
const char *extension = (xml_enabled ? "xml" : "log"); 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) // create directory (if it doesn't exist yet)
unsigned int mode = S_IRWXU | S_IRGRP | S_ISUID; unsigned int mode = S_IRWXU | S_IRGRP | S_ISUID;
mkdir(log_directory, mode); 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 // couple of extras bytes for '/', '-', '.' and '\0' at the end
const int length = directoryLength + basenameLength + seedLength const Uint32 length = directoryLength + basenameLength + seedLength
+ extensionLength + 4; + extensionLength + 4;
if(length <= 0) {
return NULL;
}
char *filename = SDL_malloc(length); char *filename = SDL_malloc(length);
if(filename == NULL) { if(filename == NULL) {
SDL_free(loggerData); SDL_free(loggerData);
...@@ -933,8 +944,8 @@ SetUpLogger() ...@@ -933,8 +944,8 @@ SetUpLogger()
} }
memset(filename, 0, length); memset(filename, 0, length);
SDL_snprintf(filename, length, "%s/%s-%s.%s", log_directory, log_basename, SDL_snprintf(filename, length, "%s%c%s-%s.%s", log_directory,
runSeed, extension); DIRECTORY_SEPARATOR, log_basename, runSeed, extension);
loggerData->filename = filename; loggerData->filename = filename;
} }
...@@ -1285,7 +1296,12 @@ main(int argc, char *argv[]) ...@@ -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) { if(log_stdout_enabled == 0) {
printf("Runner is executing the tests.\n"); printf("Runner is executing the tests.\n");
......
...@@ -68,7 +68,7 @@ const char *logElementName = "log"; ...@@ -68,7 +68,7 @@ const char *logElementName = "log";
static int indentLevel; static int indentLevel;
/*! Logging level of the logger */ /*! Logging level of the logger */
static Level level = STANDARD; static Level level = LOGGER_TERSE;
//! Constants for XMLOuputters EOL parameter //! Constants for XMLOuputters EOL parameter
#define YES 1 #define YES 1
...@@ -485,7 +485,7 @@ XMLAssert(const char *assertName, int assertResult, const char *assertMessage, ...@@ -485,7 +485,7 @@ XMLAssert(const char *assertName, int assertResult, const char *assertMessage,
time_t eventTime) time_t eventTime)
{ {
// Log passed asserts only on VERBOSE level // Log passed asserts only on VERBOSE level
if(level <= STANDARD && assertResult == ASSERT_PASS) { if(level <= LOGGER_TERSE && assertResult == ASSERT_PASS) {
return ; return ;
} }
...@@ -542,7 +542,7 @@ XMLAssertWithValues(const char *assertName, int assertResult, const char *assert ...@@ -542,7 +542,7 @@ XMLAssertWithValues(const char *assertName, int assertResult, const char *assert
int actualValue, int excpected, time_t eventTime) int actualValue, int excpected, time_t eventTime)
{ {
// Log passed asserts only on VERBOSE level // Log passed asserts only on VERBOSE level
if(level <= STANDARD && assertResult == ASSERT_PASS) { if(level <= LOGGER_TERSE && assertResult == ASSERT_PASS) {
return ; return ;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment