aboutsummaryrefslogtreecommitdiff
path: root/test/link/frameworks
diff options
context:
space:
mode:
authorJakub Konka <kubkon@jakubkonka.com>2022-05-28 11:44:53 +0200
committerJakub Konka <kubkon@jakubkonka.com>2022-06-20 17:59:17 +0200
commit38edef35bfcba5789ea50adc7c76dec504079812 (patch)
tree66d7f7279a005a36c201cadd474b66035f5c1a44 /test/link/frameworks
parent74ed7c1f0998e9dd89aa3f3480fff845afd6b422 (diff)
downloadzig-38edef35bfcba5789ea50adc7c76dec504079812.tar.gz
zig-38edef35bfcba5789ea50adc7c76dec504079812.zip
test: introduce link(er) tests - builds on standalone tests
Diffstat (limited to 'test/link/frameworks')
-rw-r--r--test/link/frameworks/build.zig20
-rw-r--r--test/link/frameworks/main.c7
2 files changed, 27 insertions, 0 deletions
diff --git a/test/link/frameworks/build.zig b/test/link/frameworks/build.zig
new file mode 100644
index 0000000000..5700422a41
--- /dev/null
+++ b/test/link/frameworks/build.zig
@@ -0,0 +1,20 @@
+const std = @import("std");
+const Builder = std.build.Builder;
+
+pub fn build(b: *Builder) void {
+ const mode = b.standardReleaseOptions();
+
+ const test_step = b.step("test", "Test the program");
+
+ const exe = b.addExecutable("test", null);
+ b.default_step.dependOn(&exe.step);
+ exe.addCSourceFile("main.c", &[0][]const u8{});
+ exe.setBuildMode(mode);
+ exe.linkLibC();
+ // TODO when we figure out how to ship framework stubs for cross-compilation,
+ // populate paths to the sysroot here.
+ exe.linkFramework("Cocoa");
+
+ const run_cmd = exe.run();
+ test_step.dependOn(&run_cmd.step);
+}
diff --git a/test/link/frameworks/main.c b/test/link/frameworks/main.c
new file mode 100644
index 0000000000..b9dab990b2
--- /dev/null
+++ b/test/link/frameworks/main.c
@@ -0,0 +1,7 @@
+#include <assert.h>
+#include <objc/runtime.h>
+
+int main() {
+ assert(objc_getClass("NSObject") > 0);
+ assert(objc_getClass("NSApplication") > 0);
+}