authorgravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2023-10-04 13:12:56+02:00
committergravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2023-10-16 19:33:04+02:00
log2ee221328f1aa1e34a37f38ac8426c1e8e8ec204
treeb41ad9938bcca80f9beef16d35a9460b6ef4e870
parentf1b9c365f2bcf4e2e00e221d34f43bb343367c4d

elf: test garbage collection of sections


1 files changed, 30 insertions(+), 28 deletions(-)

test/link/elf.zig+30-28
...@@ -94,34 +94,36 @@ fn testGcSections(b: *Build, opts: Options) *Step {...@@ -94,34 +94,36 @@ fn testGcSections(b: *Build, opts: Options) *Step {
94 test_step.dependOn(&check.step);94 test_step.dependOn(&check.step);
95 }95 }
9696
97 // {97 {
98 // const exe = cc(b, opts);98 const exe = addExecutable(b, opts);
99 // exe.addFileSource(obj_out.file);99 exe.addObject(obj);
100 // exe.addArg("-Wl,-gc-sections");100 exe.link_gc_sections = true;
101101 exe.is_linking_libc = true;
102 // const run = exe.run();102 exe.is_linking_libcpp = true;
103 // run.expectStdOutEqual("1 2\n");103
104 // test_step.dependOn(run.step());104 const run = addRunArtifact(exe);
105105 run.expectStdOutEqual("1 2\n");
106 // const check = exe.check();106 test_step.dependOn(&run.step);
107 // check.checkInSymtab();107
108 // check.checkContains("live_var1");108 const check = exe.checkObject();
109 // check.checkInSymtab();109 check.checkInSymtab();
110 // check.checkContains("live_var2");110 check.checkContains("live_var1");
111 // check.checkInSymtab();111 check.checkInSymtab();
112 // check.checkNotPresent("dead_var1");112 check.checkContains("live_var2");
113 // check.checkInSymtab();113 check.checkInSymtab();
114 // check.checkNotPresent("dead_var2");114 check.checkNotPresent("dead_var1");
115 // check.checkInSymtab();115 check.checkInSymtab();
116 // check.checkContains("live_fn1");116 check.checkNotPresent("dead_var2");
117 // check.checkInSymtab();117 check.checkInSymtab();
118 // check.checkContains("live_fn2");118 check.checkContains("live_fn1");
119 // check.checkInSymtab();119 check.checkInSymtab();
120 // check.checkNotPresent("dead_fn1");120 check.checkContains("live_fn2");
121 // check.checkInSymtab();121 check.checkInSymtab();
122 // check.checkNotPresent("dead_fn2");122 check.checkNotPresent("dead_fn1");
123 // test_step.dependOn(&check.step);123 check.checkInSymtab();
124 // }124 check.checkNotPresent("dead_fn2");
125 test_step.dependOn(&check.step);
126 }
125127
126 return test_step;128 return test_step;
127}129}