Commit 4115f70cd3

Luuk de Gram <luuk@degram.dev>
2023-11-28 18:32:31
test/link: update wasm linker tests
Disable garbage-collection for certain tests to ensure the tested sections are being emitted.
1 parent 596d1cd
Changed files (4)
test
link
wasm
bss
function-table
segments
stack_pointer
test/link/wasm/bss/build.zig
@@ -26,6 +26,7 @@ fn add(b: *std.Build, test_step: *std.Build.Step, optimize_mode: std.builtin.Opt
         lib.strip = 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();
 
@@ -73,6 +74,7 @@ fn add(b: *std.Build, test_step: *std.Build.Step, optimize_mode: std.builtin.Opt
         lib.strip = 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.checkStart();
test/link/wasm/function-table/build.zig
@@ -23,6 +23,7 @@ fn add(b: *std.Build, test_step: *std.Build.Step, optimize: std.builtin.Optimize
     import_table.use_llvm = false;
     import_table.use_lld = false;
     import_table.import_table = true;
+    import_table.link_gc_sections = false;
 
     const export_table = b.addExecutable(.{
         .name = "export_table",
@@ -34,6 +35,7 @@ fn add(b: *std.Build, test_step: *std.Build.Step, optimize: std.builtin.Optimize
     export_table.use_llvm = false;
     export_table.use_lld = false;
     export_table.export_table = true;
+    export_table.link_gc_sections = false;
 
     const regular_table = b.addExecutable(.{
         .name = "regular_table",
@@ -44,6 +46,7 @@ fn add(b: *std.Build, test_step: *std.Build.Step, optimize: std.builtin.Optimize
     regular_table.entry = .disabled;
     regular_table.use_llvm = false;
     regular_table.use_lld = false;
+    regular_table.link_gc_sections = false; // Ensure function table is not empty
 
     const check_import = import_table.checkObject();
     const check_export = export_table.checkObject();
test/link/wasm/segments/build.zig
@@ -23,6 +23,7 @@ fn add(b: *std.Build, test_step: *std.Build.Step, optimize: std.builtin.Optimize
     lib.use_llvm = false;
     lib.use_lld = false;
     lib.strip = false;
+    lib.link_gc_sections = false; // so data is not garbage collected and we can verify data section
     b.installArtifact(lib);
 
     const check_lib = lib.checkObject();
test/link/wasm/stack_pointer/build.zig
@@ -24,6 +24,7 @@ fn add(b: *std.Build, test_step: *std.Build.Step, optimize: std.builtin.Optimize
     lib.use_lld = false;
     lib.strip = false;
     lib.stack_size = std.wasm.page_size * 2; // set an explicit stack size
+    lib.link_gc_sections = false;
     b.installArtifact(lib);
 
     const check_lib = lib.checkObject();