aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2025-01-14 18:25:40 -0800
committerAndrew Kelley <andrew@ziglang.org>2025-01-15 15:11:36 -0800
commit7ae2f21e2bb23cebb9d3cbfc22b5ac386a7a6235 (patch)
tree4cf5d12cc7571575c6b20be8dd353ad3fdf2da23 /test
parentb37ad5110cb66330211e930df1d1093963213c48 (diff)
downloadzig-7ae2f21e2bb23cebb9d3cbfc22b5ac386a7a6235.tar.gz
zig-7ae2f21e2bb23cebb9d3cbfc22b5ac386a7a6235.zip
delete bad linker test: bss
The purpose of this test is unclear. It checks for the existence of bss section which is completely unnecessary since those zeroes can be omitted from the binary. Furthermore the code generated for __wasm_init_memory looks wrong. Finally, the CheckObject DSL is brittle, it only checks for exact matches of entire lines in an ad-hoc text format. Conclusion, it's a bad test, delete it.
Diffstat (limited to 'test')
-rw-r--r--test/link/build.zig.zon3
-rw-r--r--test/link/wasm/bss/build.zig91
-rw-r--r--test/link/wasm/bss/lib.zig9
-rw-r--r--test/link/wasm/bss/lib2.zig9
4 files changed, 0 insertions, 112 deletions
diff --git a/test/link/build.zig.zon b/test/link/build.zig.zon
index d304212c05..59490fa741 100644
--- a/test/link/build.zig.zon
+++ b/test/link/build.zig.zon
@@ -24,9 +24,6 @@
.wasm_basic_features = .{
.path = "wasm/basic-features",
},
- .wasm_bss = .{
- .path = "wasm/bss",
- },
.wasm_export = .{
.path = "wasm/export",
},
diff --git a/test/link/wasm/bss/build.zig b/test/link/wasm/bss/build.zig
deleted file mode 100644
index 2d4cf84b62..0000000000
--- a/test/link/wasm/bss/build.zig
+++ /dev/null
@@ -1,91 +0,0 @@
-const std = @import("std");
-
-pub const requires_stage2 = true;
-
-pub fn build(b: *std.Build) void {
- const test_step = b.step("test", "Test");
- b.default_step = test_step;
-
- add(b, test_step, .Debug, true);
- add(b, test_step, .ReleaseFast, false);
- add(b, test_step, .ReleaseSmall, false);
- add(b, test_step, .ReleaseSafe, true);
-}
-
-fn add(b: *std.Build, test_step: *std.Build.Step, optimize_mode: std.builtin.OptimizeMode, is_safe: bool) void {
- {
- const lib = b.addExecutable(.{
- .name = "lib",
- .root_module = b.createModule(.{
- .root_source_file = b.path("lib.zig"),
- .target = b.resolveTargetQuery(.{ .cpu_arch = .wasm32, .os_tag = .freestanding }),
- .optimize = optimize_mode,
- .strip = false,
- }),
- });
- lib.entry = .disabled;
- lib.use_llvm = false;
- lib.use_lld = false;
- // to make sure the bss segment is emitted, we must import memory
- lib.import_memory = true;
- lib.link_gc_sections = false;
-
- const check_lib = lib.checkObject();
-
- // since we import memory, make sure it exists with the correct naming
- check_lib.checkInHeaders();
- check_lib.checkExact("Section import");
- check_lib.checkExact("entries 1");
- check_lib.checkExact("module env"); // default module name is "env"
- check_lib.checkExact("name memory"); // as per linker specification
-
- // since we are importing memory, ensure it's not exported
- check_lib.checkInHeaders();
- check_lib.checkNotPresent("Section export");
-
- // validate the name of the stack pointer
- check_lib.checkInHeaders();
- check_lib.checkExact("Section custom");
- check_lib.checkExact("type data_segment");
- check_lib.checkExact("names 1");
- // for safe optimization modes `undefined` is stored in data instead of bss.
- if (is_safe) {
- check_lib.checkExact("index 0");
- check_lib.checkExact("name .data");
- check_lib.checkNotPresent("name .bss");
- } else {
- check_lib.checkExact("index 0"); // bss section always last
- check_lib.checkExact("name .bss");
- }
- test_step.dependOn(&check_lib.step);
- }
-
- // verify zero'd declaration is stored in bss for all optimization modes.
- {
- const lib = b.addExecutable(.{
- .name = "lib",
- .root_module = b.createModule(.{
- .root_source_file = b.path("lib2.zig"),
- .target = b.resolveTargetQuery(.{ .cpu_arch = .wasm32, .os_tag = .freestanding }),
- .optimize = optimize_mode,
- .strip = false,
- }),
- });
- lib.entry = .disabled;
- lib.use_llvm = false;
- lib.use_lld = false;
- // to make sure the bss segment is emitted, we must import memory
- lib.import_memory = true;
- lib.link_gc_sections = false;
-
- const check_lib = lib.checkObject();
- check_lib.checkInHeaders();
- check_lib.checkExact("Section custom");
- check_lib.checkExact("type data_segment");
- check_lib.checkExact("names 1");
- check_lib.checkExact("index 0");
- check_lib.checkExact("name .bss");
-
- test_step.dependOn(&check_lib.step);
- }
-}
diff --git a/test/link/wasm/bss/lib.zig b/test/link/wasm/bss/lib.zig
deleted file mode 100644
index 5a05d4d6e2..0000000000
--- a/test/link/wasm/bss/lib.zig
+++ /dev/null
@@ -1,9 +0,0 @@
-pub var bss: u32 = undefined;
-
-fn foo() callconv(.c) u32 {
- return bss;
-}
-
-comptime {
- @export(&foo, .{ .name = "foo", .visibility = .hidden });
-}
diff --git a/test/link/wasm/bss/lib2.zig b/test/link/wasm/bss/lib2.zig
deleted file mode 100644
index 2cf1ef87da..0000000000
--- a/test/link/wasm/bss/lib2.zig
+++ /dev/null
@@ -1,9 +0,0 @@
-pub var bss: u32 = 0;
-
-fn foo() callconv(.c) u32 {
- return bss;
-}
-
-comptime {
- @export(&foo, .{ .name = "foo", .visibility = .hidden });
-}