diff options
| author | Jakub Konka <kubkon@jakubkonka.com> | 2022-05-28 11:44:53 +0200 |
|---|---|---|
| committer | Jakub Konka <kubkon@jakubkonka.com> | 2022-06-20 17:59:17 +0200 |
| commit | 38edef35bfcba5789ea50adc7c76dec504079812 (patch) | |
| tree | 66d7f7279a005a36c201cadd474b66035f5c1a44 /test/link/interdependent_static_c_libs | |
| parent | 74ed7c1f0998e9dd89aa3f3480fff845afd6b422 (diff) | |
| download | zig-38edef35bfcba5789ea50adc7c76dec504079812.tar.gz zig-38edef35bfcba5789ea50adc7c76dec504079812.zip | |
test: introduce link(er) tests - builds on standalone tests
Diffstat (limited to 'test/link/interdependent_static_c_libs')
| -rw-r--r-- | test/link/interdependent_static_c_libs/a.c | 4 | ||||
| -rw-r--r-- | test/link/interdependent_static_c_libs/a.h | 2 | ||||
| -rw-r--r-- | test/link/interdependent_static_c_libs/b.c | 6 | ||||
| -rw-r--r-- | test/link/interdependent_static_c_libs/b.h | 2 | ||||
| -rw-r--r-- | test/link/interdependent_static_c_libs/build.zig | 24 | ||||
| -rw-r--r-- | test/link/interdependent_static_c_libs/main.zig | 8 |
6 files changed, 46 insertions, 0 deletions
diff --git a/test/link/interdependent_static_c_libs/a.c b/test/link/interdependent_static_c_libs/a.c new file mode 100644 index 0000000000..ee9da97a3a --- /dev/null +++ b/test/link/interdependent_static_c_libs/a.c @@ -0,0 +1,4 @@ +#include "a.h" +int32_t add(int32_t a, int32_t b) { + return a + b; +} diff --git a/test/link/interdependent_static_c_libs/a.h b/test/link/interdependent_static_c_libs/a.h new file mode 100644 index 0000000000..7b45d54d56 --- /dev/null +++ b/test/link/interdependent_static_c_libs/a.h @@ -0,0 +1,2 @@ +#include <stdint.h> +int32_t add(int32_t a, int32_t b); diff --git a/test/link/interdependent_static_c_libs/b.c b/test/link/interdependent_static_c_libs/b.c new file mode 100644 index 0000000000..ac2cc4f937 --- /dev/null +++ b/test/link/interdependent_static_c_libs/b.c @@ -0,0 +1,6 @@ +#include "a.h" +#include "b.h" + +int32_t sub(int32_t a, int32_t b) { + return add(a, -1 * b); +} diff --git a/test/link/interdependent_static_c_libs/b.h b/test/link/interdependent_static_c_libs/b.h new file mode 100644 index 0000000000..6047163145 --- /dev/null +++ b/test/link/interdependent_static_c_libs/b.h @@ -0,0 +1,2 @@ +#include <stdint.h> +int32_t sub(int32_t a, int32_t b); diff --git a/test/link/interdependent_static_c_libs/build.zig b/test/link/interdependent_static_c_libs/build.zig new file mode 100644 index 0000000000..bd1b6100da --- /dev/null +++ b/test/link/interdependent_static_c_libs/build.zig @@ -0,0 +1,24 @@ +const Builder = @import("std").build.Builder; + +pub fn build(b: *Builder) void { + const mode = b.standardReleaseOptions(); + + const lib_a = b.addStaticLibrary("a", null); + lib_a.addCSourceFile("a.c", &[_][]const u8{}); + lib_a.setBuildMode(mode); + lib_a.addIncludePath("."); + + const lib_b = b.addStaticLibrary("b", null); + lib_b.addCSourceFile("b.c", &[_][]const u8{}); + lib_b.setBuildMode(mode); + lib_b.addIncludePath("."); + + const test_exe = b.addTest("main.zig"); + test_exe.setBuildMode(mode); + test_exe.linkLibrary(lib_a); + test_exe.linkLibrary(lib_b); + test_exe.addIncludePath("."); + + const test_step = b.step("test", "Test it"); + test_step.dependOn(&test_exe.step); +} diff --git a/test/link/interdependent_static_c_libs/main.zig b/test/link/interdependent_static_c_libs/main.zig new file mode 100644 index 0000000000..cb5d2e7b77 --- /dev/null +++ b/test/link/interdependent_static_c_libs/main.zig @@ -0,0 +1,8 @@ +const std = @import("std"); +const expect = std.testing.expect; +const c = @cImport(@cInclude("b.h")); + +test "import C sub" { + const result = c.sub(2, 1); + try expect(result == 1); +} |
