fix interop and indexing oversights

This commit is contained in:
2026-07-01 09:08:58 +02:00
parent 7fe3552c01
commit 870f946b52
15 changed files with 593 additions and 116 deletions
+29
View File
@@ -2033,6 +2033,35 @@ sentinel_pointer_views_compile_and_run :: proc(t: ^testing.T) {
testing.expect_value(t, state.exit_code, 303)
}
@(test)
milestone_24_regressions_compile_and_run :: proc(t: ^testing.T) {
output := "/tmp/brolang-test-milestone-24"
defer _ = os.remove(output)
status := compiler_core.compile_package("examples/programs/milestone_24", output)
testing.expect_value(t, status, 0)
state := run_executable(output)
testing.expect_value(t, state.exit_code, 0)
}
@(test)
milestone_24_rejects_invalid_forms :: proc(t: ^testing.T) {
Case :: struct {
directory: string,
output: string,
}
cases := [?]Case{
{"examples/programs/index_signed_error", "/tmp/brolang-test-index-signed-error"},
{"examples/programs/index_int_constraint_error", "/tmp/brolang-test-index-int-constraint-error"},
{"examples/programs/scalar_cast_error", "/tmp/brolang-test-scalar-cast-error"},
{"examples/programs/array_const_size_error", "/tmp/brolang-test-array-const-size-error"},
}
for test_case in cases {
status := compiler_core.compile_package(test_case.directory, test_case.output)
testing.expect_value(t, status, 1)
_ = os.remove(test_case.output)
}
}
@(test)
control_flow_compiles_and_runs :: proc(t: ^testing.T) {
output := "/tmp/brolang-test-control-flow"