test: make zig build test actually run all tests + fix latent rot
root.zig had no `test` block, so the test binary discovered zero tests and trivially "passed" — every src test had silently rotted. Add `refAllDecls(@This())` to root.zig so all 185 tests run, then fix the rot it surfaced: - emit_llvm.test: operands were constants, so LLVM folded the very instructions being asserted (fadd/sub/icmp/insertvalue/extractvalue/sext). Rewrite to use function-parameter operands; `main` now returns i32 (entry convention); tagged-union enum_init lowers via memory, not insertvalue. - interp.test: switch the per-test allocator to an arena (the interpreter is arena-style and intentionally frees little) — clears the transient-Value leaks without an ownership-ambiguous source change. - lower.test: pass `is_imported` to lowerFunction; mark two helpers `pub`; the if/else block test now uses a runtime (param) condition since lowering folds `if true`. - print.test: SSA numbering — params occupy %0/%1, so consts start at %2. - jni_java_emit.test: nested-class refs render in Java source form (`SurfaceHolder.Callback`), not the JNI `$` form. Leaks fixed at the source where ownership was clear: Module gains an arena for the operand slices the Builder dupes (struct/call/branch/switch args, block params, lowerFunction params); objcDefinedStateStructType builds its field slice in that arena and frees its temp name string.
This commit is contained in:
@@ -342,9 +342,11 @@ test "#implements clauses on the class header" {
|
||||
const out = try emit.emitJavaSource(a, &fcd, .{ .classes = ®istry });
|
||||
defer a.free(out);
|
||||
|
||||
// Registry value `android/view/SurfaceHolder$Callback` is emitted in Java
|
||||
// *source* form: `/` → `.` and the nested-class `$` → `.`.
|
||||
try std.testing.expect(std.mem.indexOf(
|
||||
u8,
|
||||
out,
|
||||
"public class SxApp extends android.app.Activity implements android.view.SurfaceHolder$Callback, java.lang.Runnable {",
|
||||
"public class SxApp extends android.app.Activity implements android.view.SurfaceHolder.Callback, java.lang.Runnable {",
|
||||
) != null);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user