pull out test input/exemplar path formation helpers to base; fix torture crash

This commit is contained in:
Ryan Fleury
2026-06-21 20:13:44 -07:00
parent bc324a9041
commit c890b806d5
5 changed files with 54 additions and 58 deletions
+21
View File
@@ -3,6 +3,27 @@
#if BUILD_TESTS #if BUILD_TESTS
internal String8
test_input_path(Arena *arena, TestCtx *ctx, String8 name)
{
String8 path = str8f(arena, "%S/%S", ctx->input_data_path, name);
return path;
}
internal String8
test_input_exe_path(Arena *arena, TestCtx *ctx, String8 name)
{
String8 path = str8f(arena, "%S/%S%S", ctx->input_data_path, name, program_ext_postfix_from_os(OperatingSystem_CURRENT, 1));
return path;
}
internal String8
test_exemplar_path(Arena *arena, TestCtx *ctx, String8 name)
{
String8 path = str8f(arena, "%S/%S", ctx->exemplars_path, name);
return path;
}
internal void internal void
base_register_test(char *func_name_cstr, TestFunctionType *fn, char *file_path_cstr, int line, int skip) base_register_test(char *func_name_cstr, TestFunctionType *fn, char *file_path_cstr, int line, int skip)
{ {
+3
View File
@@ -54,6 +54,9 @@ struct TestInfo
global U16 test_infos_count = 0; global U16 test_infos_count = 0;
global TestInfo test_infos[0xffff] = {0}; global TestInfo test_infos[0xffff] = {0};
internal String8 test_input_path(Arena *arena, TestCtx *ctx, String8 name);
internal String8 test_input_exe_path(Arena *arena, TestCtx *ctx, String8 name);
internal String8 test_exemplar_path(Arena *arena, TestCtx *ctx, String8 name);
internal void base_register_test(char *func_name, TestFunctionType *fn, char *file_path, int line, int skip); internal void base_register_test(char *func_name, TestFunctionType *fn, char *file_path, int line, int skip);
#define AddTest(name, file_path, line, skip_, ...) \ #define AddTest(name, file_path, line, skip_, ...) \
+2 -9
View File
@@ -4,13 +4,6 @@
//////////////////////////////// ////////////////////////////////
//~ rjf: Debugger Testing IPC Driving Helpers //~ rjf: Debugger Testing IPC Driving Helpers
internal String8
rd_test__test_binary_path(Arena *arena, TestCtx *ctx, String8 name)
{
String8 path = str8f(arena, "%S/%S/%S%S", ctx->input_data_path, name, name, program_ext_postfix_from_os(OperatingSystem_CURRENT, 1));
return path;
}
internal String8 internal String8
rd_test__raddbg_path(Arena *arena, CmdLine *cmdline) rd_test__raddbg_path(Arena *arena, CmdLine *cmdline)
{ {
@@ -114,7 +107,7 @@ rd_test__stepping_regressions(Arena *arena, TestCtx *ctx, String8 target_binary,
String8List test_log_strings = {0}; String8List test_log_strings = {0};
// rjf: get binary path // rjf: get binary path
String8 binary_path = rd_test__test_binary_path(arena, ctx, target_binary); String8 binary_path = test_input_exe_path(arena, ctx, str8f(scratch.arena, "%S/%S", target_binary, target_binary));
B32 binary_exists_locally = (properties_from_file_path(binary_path).modified != 0); B32 binary_exists_locally = (properties_from_file_path(binary_path).modified != 0);
// rjf: if binary does not exist -> skip this test, // rjf: if binary does not exist -> skip this test,
@@ -233,7 +226,7 @@ rd_test__eval_regressions(Arena *arena, TestCtx *ctx, String8 target_binary, Str
String8List test_log_strings = {0}; String8List test_log_strings = {0};
// rjf: get binary path // rjf: get binary path
String8 binary_path = rd_test__test_binary_path(arena, ctx, target_binary); String8 binary_path = test_input_exe_path(arena, ctx, str8f(scratch.arena, "%S/%S", target_binary, target_binary));
B32 binary_exists_locally = (properties_from_file_path(binary_path).modified != 0); B32 binary_exists_locally = (properties_from_file_path(binary_path).modified != 0);
// rjf: if binary does not exist -> skip this test, // rjf: if binary does not exist -> skip this test,
+2 -23
View File
@@ -1,36 +1,15 @@
// Copyright (c) Epic Games Tools // Copyright (c) Epic Games Tools
// Licensed under the MIT license (https://opensource.org/license/mit/) // Licensed under the MIT license (https://opensource.org/license/mit/)
internal String8
p2r_test__test_path(Arena *arena, TestCtx *ctx, String8 id, String8 name)
{
String8 path = str8f(arena, "%S/%S/%S", ctx->input_data_path, id, name);
return path;
}
Test(p2r_determinism) Test(p2r_determinism)
{ {
U64 num_repeats_per_pdb = 16; U64 num_repeats_per_pdb = 16;
String8 pdb_paths[] = String8 pdb_paths[] =
{ {
p2r_test__test_path(arena, ctx, s("mule_main_9ff1e58f"), s("mule_main.pdb")), test_input_path(arena, ctx, s("mule_main_9ff1e58f/mule_main.pdb")),
p2r_test__test_path(arena, ctx, s("mule_main_9ff1e58f"), s("mule_module.pdb")), test_input_path(arena, ctx, s("mule_main_9ff1e58f/mule_module.pdb")),
}; };
B32 all_pdbs_exist_locally = 1;
for EachElement(pdb_idx, pdb_paths) for EachElement(pdb_idx, pdb_paths)
{
String8 pdb_path = pdb_paths[pdb_idx];
if(properties_from_file_path(pdb_path).modified == 0)
{
all_pdbs_exist_locally = 0;
break;
}
}
if(!all_pdbs_exist_locally)
{
TestSkip();
}
else for EachElement(pdb_idx, pdb_paths)
{ {
// rjf: unpack paths, make output directory // rjf: unpack paths, make output directory
String8 pdb_path = pdb_paths[pdb_idx]; String8 pdb_path = pdb_paths[pdb_idx];
+2 -2
View File
@@ -1382,14 +1382,14 @@ t_entry_point(CmdLine *cmdline)
if (slow_count > 1) { if (slow_count > 1) {
U64 label_max = 0; U64 label_max = 0;
U64 layer_max = 0; U64 layer_max = 0;
for EachElement(i, slowest) { for EachIndex(i, slow_count) {
Slowest s = slowest[i]; Slowest s = slowest[i];
label_max = Max(g_sorted_test_infos[s.target_idx]->label.size, label_max); label_max = Max(g_sorted_test_infos[s.target_idx]->label.size, label_max);
layer_max = Max(g_sorted_test_infos[s.target_idx]->layer.size, layer_max); layer_max = Max(g_sorted_test_infos[s.target_idx]->layer.size, layer_max);
} }
fprintf(stderr, " \nSlow Tests\n"); fprintf(stderr, " \nSlow Tests\n");
for EachElement(i, slowest) { for EachIndex(i, slow_count) {
Slowest s = slowest[i]; Slowest s = slowest[i];
if (s.target_idx >= test_infos_count) { break; } if (s.target_idx >= test_infos_count) { break; }