blob: cd7cc7d741d76bce9704ab70c07f95307028ea3d [file] [log] [blame]
#include<sys/stat.h>
#include<stdlib.h>
#include<stdio.h>
#include<stdarg.h>
#include<CL/cl.h>
#include<platform/icd_test_log.h>
#define APP_LOG_FILE "icd_test_app_log.txt"
#define STUB_LOG_FILE "icd_test_stub_log.txt"
static FILE *app_log_file;
static FILE *stub_log_file;
int test_icd_initialize_app_log(void)
{
app_log_file = fopen(APP_LOG_FILE, "w");
if (!app_log_file) {
printf("Unable to open file %s\n", APP_LOG_FILE);
return -1;
}
return 0;
}
void test_icd_close_app_log(void)
{
fclose(app_log_file);
}
void test_icd_app_log(const char *format, ...)
{
va_list args;
va_start(args, format);
vfprintf(app_log_file, format, args);
va_end(args);
}
int test_icd_initialize_stub_log(void)
{
stub_log_file = fopen(STUB_LOG_FILE, "w");
if (!stub_log_file) {
printf("Unable to open file %s\n", STUB_LOG_FILE);
return -1;
}
return 0;
}
void test_icd_close_stub_log(void)
{
fclose(stub_log_file);
}
void test_icd_stub_log(const char *format, ...)
{
va_list args;
va_start(args, format);
vfprintf(stub_log_file, format, args);
va_end(args);
}
static char *test_icd_get_log(const char *filename)
{
struct stat statbuf;
FILE *fp;
char *source = NULL;
fp = fopen(filename, "rb");
if (fp) {
size_t fsize = 0;
stat(filename, &statbuf);
fsize = statbuf.st_size;
source = (char *)malloc(fsize+1); // +1 for NULL terminator
if (source) {
if (fsize) {
if (fread(source, fsize, 1, fp) != 1) {
free(source);
source = NULL;
} else {
source[fsize] = '\0';
}
} else {
// Don't fail when fsize = 0, just return empty string
source[fsize] = '\0';
}
}
fclose(fp);
}
return source;
}
char *test_icd_get_app_log(void)
{
return test_icd_get_log(APP_LOG_FILE);
}
char *test_icd_get_stub_log(void)
{
return test_icd_get_log(STUB_LOG_FILE);
}