#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 reptester { reptest_params params; const u64 cpu_freq; f64 wait_time_secs; f64 test_time_secs; u64 test_start_time; u64 current_run; u64 min; u64 max; u64 avg; u64 total; 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