authorgravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2023-11-06 14:47:01+01:00
committergravatar for kubkon@jakubkonka.comJakub Konka <kubkon@jakubkonka.com> 2023-11-06 14:47:01+01:00
log6490e2ed82ebcf7ffe9732bbd7ef881412363336
tree84331dfd5f3df41bf931335440d6c6f9f0bbd956
parent1b69b0c621568b1b36b6cf946967aaf9e2a596fa

test/link/elf: improve test linking with static lib


1 files changed, 10 insertions(+), 8 deletions(-)

test/link/elf.zig+10-8
...@@ -1858,28 +1858,30 @@ fn testLinkingObj(b: *Build, opts: Options) *Step {...@@ -1858,28 +1858,30 @@ fn testLinkingObj(b: *Build, opts: Options) *Step {
1858fn testLinkingStaticLib(b: *Build, opts: Options) *Step {1858fn testLinkingStaticLib(b: *Build, opts: Options) *Step {
1859 const test_step = addTestStep(b, "linking-static-lib", opts);1859 const test_step = addTestStep(b, "linking-static-lib", opts);
18601860
1861 const obj = addObject(b, "bobj", opts);
1862 addZigSourceBytes(obj, "export var bar: i32 = -42;");
1863
1861 const lib = addStaticLibrary(b, "alib", opts);1864 const lib = addStaticLibrary(b, "alib", opts);
1862 addZigSourceBytes(lib,1865 addZigSourceBytes(lib,
1863 \\extern var mod: usize;1866 \\export fn foo() i32 {
1864 \\export fn callMe() usize {1867 \\ return 42;
1865 \\ return me * mod;
1866 \\}1868 \\}
1867 \\var me: usize = 42;
1868 );1869 );
1870 lib.addObject(obj);
18691871
1870 const exe = addExecutable(b, "testlib", opts);1872 const exe = addExecutable(b, "testlib", opts);
1871 addZigSourceBytes(exe,1873 addZigSourceBytes(exe,
1872 \\const std = @import("std");1874 \\const std = @import("std");
1873 \\extern fn callMe() usize;1875 \\extern fn foo() i32;
1874 \\export var mod: usize = 2;1876 \\extern var bar: i32;
1875 \\pub fn main() void {1877 \\pub fn main() void {
1876 \\ std.debug.print("{d}\n", .{callMe()});1878 \\ std.debug.print("{d}\n", .{foo() + bar});
1877 \\}1879 \\}
1878 );1880 );
1879 exe.linkLibrary(lib);1881 exe.linkLibrary(lib);
18801882
1881 const run = addRunArtifact(exe);1883 const run = addRunArtifact(exe);
1882 run.expectStdErrEqual("84\n");1884 run.expectStdErrEqual("0\n");
1883 test_step.dependOn(&run.step);1885 test_step.dependOn(&run.step);
18841886
1885 return test_step;1887 return test_step;