Commit 9473d76449

Jakub Konka <kubkon@jakubkonka.com>
2024-08-15 21:47:34
test/elf: enhance testImportingDataDynamic
1 parent 4d5bf0f
Changed files (1)
test
link
test/link/elf.zig
@@ -1773,25 +1773,41 @@ fn testImportingDataDynamic(b: *Build, opts: Options) *Step {
         .use_llvm = true,
     }, .{
         .name = "a",
-        .c_source_bytes = "int foo = 42;",
+        .c_source_bytes =
+        \\#include <stdio.h>
+        \\int foo = 42;
+        \\void printFoo() { fprintf(stderr, "lib foo=%d\n", foo); }
+        ,
     });
+    dso.linkLibC();
 
     const main = addExecutable(b, opts, .{
         .name = "main",
         .zig_source_bytes =
+        \\const std = @import("std");
         \\extern var foo: i32;
+        \\extern fn printFoo() void;
         \\pub fn main() void {
-        \\    @import("std").debug.print("{d}\n", .{foo});
+        \\    std.debug.print("exe foo={d}\n", .{foo});
+        \\    printFoo();
+        \\    foo += 1;
+        \\    std.debug.print("exe foo={d}\n", .{foo});
+        \\    printFoo();
         \\}
         ,
         .strip = true, // TODO temp hack
     });
     main.pie = true;
     main.linkLibrary(dso);
-    main.linkLibC();
 
     const run = addRunArtifact(main);
-    run.expectStdErrEqual("42\n");
+    run.expectStdErrEqual(
+        \\exe foo=42
+        \\lib foo=42
+        \\exe foo=43
+        \\lib foo=43
+        \\
+    );
     test_step.dependOn(&run.step);
 
     return test_step;