mirror of
https://github.com/ziglang/zig.git
synced 2026-01-15 11:55:14 +00:00
Certain symbols were left unmarked, meaning they would not be emit into the final binary incorrectly. We now mark the synthetic symbols to ensure they are emit as they are already created under the circumstance they're needed for. This also re-enables disabled tests that were left disabled in a previous merge conflict. Lastly, this adds the shared-memory test to the test harnass as it was previously forgotten and therefore regressed.
50 lines
1.9 KiB
Zig
50 lines
1.9 KiB
Zig
const std = @import("std");
|
|
|
|
pub fn build(b: *std.Build) void {
|
|
const test_step = b.step("test", "Test");
|
|
b.default_step = test_step;
|
|
|
|
if (@import("builtin").os.tag == .windows) {
|
|
// TODO: Fix open handle in wasm-linker refraining rename from working on Windows.
|
|
return;
|
|
}
|
|
|
|
const lib = b.addExecutable(.{
|
|
.name = "lib",
|
|
.root_source_file = .{ .path = "lib.zig" },
|
|
.optimize = .ReleaseSafe, // to make the output deterministic in address positions
|
|
.target = b.resolveTargetQuery(.{ .cpu_arch = .wasm32, .os_tag = .freestanding }),
|
|
});
|
|
lib.entry = .disabled;
|
|
lib.use_lld = false;
|
|
lib.root_module.export_symbol_names = &.{ "foo", "bar" };
|
|
lib.global_base = 0; // put data section at address 0 to make data symbols easier to parse
|
|
|
|
const check_lib = lib.checkObject();
|
|
|
|
check_lib.checkInHeaders();
|
|
check_lib.checkExact("Section global");
|
|
check_lib.checkExact("entries 3");
|
|
check_lib.checkExact("type i32"); // stack pointer so skip other fields
|
|
check_lib.checkExact("type i32");
|
|
check_lib.checkExact("mutable false");
|
|
check_lib.checkExtract("i32.const {foo_address}");
|
|
check_lib.checkExact("type i32");
|
|
check_lib.checkExact("mutable false");
|
|
check_lib.checkExtract("i32.const {bar_address}");
|
|
check_lib.checkComputeCompare("foo_address", .{ .op = .eq, .value = .{ .literal = 4 } });
|
|
check_lib.checkComputeCompare("bar_address", .{ .op = .eq, .value = .{ .literal = 0 } });
|
|
|
|
check_lib.checkInHeaders();
|
|
check_lib.checkExact("Section export");
|
|
check_lib.checkExact("entries 3");
|
|
check_lib.checkExact("name foo");
|
|
check_lib.checkExact("kind global");
|
|
check_lib.checkExact("index 1");
|
|
check_lib.checkExact("name bar");
|
|
check_lib.checkExact("kind global");
|
|
check_lib.checkExact("index 2");
|
|
|
|
test_step.dependOn(&check_lib.step);
|
|
}
|