Reproduce command
Some checks failed
CI / ci (MinSizeRel, ubuntu-latest) (pull_request) Failing after 32s
CI / ci (RelWithDebInfo, ubuntu-latest) (pull_request) Failing after 31s
CI / ci (Release, ubuntu-latest) (pull_request) Failing after 30s
CI / ci (Debug, ubuntu-latest) (pull_request) Failing after 1m5s

This commit is contained in:
David Gonzalez Martin 2025-06-21 07:58:19 -06:00
parent 03aa714a51
commit 113a584b9b
2 changed files with 39 additions and 0 deletions

View File

@ -34,3 +34,4 @@ jobs:
./generate.sh
./build.sh
./build/bb test
./build/bb reproduce

View File

@ -984,6 +984,7 @@ CompilerCommand = enum
{
compile,
test,
reproduce,
}
BuildMode = enum
@ -18656,6 +18657,43 @@ names: [_][]u8 =
}
}
},
.reproduce =>
{
for (build_mode: #enum_values(BuildMode))
{
for (has_debug_info: debug_info_array)
{
>position = arena.position;
// Produce the compiler
>relative_file_path = "src/compiler.bbb";
>executable_path = compile_file(arena, {
.relative_file_path = relative_file_path,
.build_mode = build_mode,
.has_debug_info = has_debug_info,
.silent = 1,
}, envp);
// Test the compiler
>arguments: [_]&u8 = [
executable_path.pointer,
"test",
zero,
];
>args = arguments[..arguments.length - 1];
>execution = os_execute(arena, args, envp, zero);
>success = execution.termination_kind == .exit and execution.termination_code == 0;
if (!success)
{
#trap();
}
arena.position = position;
}
}
},
}
return 0;