61 lines
1.1 KiB
C
61 lines
1.1 KiB
C
#ifndef REPTESTER_H
|
|
#define REPTESTER_H
|
|
|
|
#include "aliases.h"
|
|
|
|
struct reptest_params {
|
|
const char *filename;
|
|
char *buffer;
|
|
u64 read_size;
|
|
u64 read_count;
|
|
};
|
|
|
|
struct reptest_results {
|
|
u64 bytes_read;
|
|
u64 read_time;
|
|
};
|
|
|
|
struct time_stats {
|
|
u64 min_time;
|
|
u64 max_time;
|
|
u64 avg_time;
|
|
u64 total_time;
|
|
};
|
|
|
|
struct reptester {
|
|
reptest_params params;
|
|
|
|
const u64 cpu_freq;
|
|
|
|
f64 wait_time_secs;
|
|
f64 test_time_secs;
|
|
u64 test_start_time;
|
|
|
|
u64 current_run;
|
|
time_stats tstats;
|
|
|
|
reptest_results results;
|
|
};
|
|
|
|
enum alloc_type {
|
|
ALLOC_TYPE_WITHOUT_MALLOC,
|
|
ALLOC_TYPE_WITH_MALLOC,
|
|
|
|
COUNT_ALLOC_TYPE,
|
|
};
|
|
|
|
typedef void (*reptest_func)(reptester *tester, alloc_type type);
|
|
|
|
struct func_data {
|
|
const char *names[COUNT_ALLOC_TYPE];
|
|
reptest_func func;
|
|
};
|
|
|
|
void handle_alloc(reptester *tester, alloc_type type);
|
|
void handle_free(reptester *tester, alloc_type type);
|
|
void run_func_test(reptester *tester, reptest_func func, const char *func_name,
|
|
alloc_type type);
|
|
void print_results(reptester *tester, const char *name);
|
|
|
|
#endif // !REPTESTER_H
|