Files
rocm-systems/opencl/khronos/icd/test/log/icd_test_log.c
T
Victor Zhang 8ba6c62394 SWDEV-328158 - added modification license to changed files and removing trailing white spaces
Change-Id: I82f5ef84eac72821214d832a41e40e0f42cf66b9
2022-06-23 16:58:03 -04:00

108 lines
2.1 KiB
C

/* Modifications Copyright(C) 2022 Advanced Micro Devices, Inc.
* All rights reserved.
*/
#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);
}