aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorJakub Konka <kubkon@jakubkonka.com>2024-01-15 11:28:05 +0100
committerJakub Konka <kubkon@jakubkonka.com>2024-01-24 12:34:40 +0100
commit5c8acc551d4d99efebcdfc3b4a4a56dcbaad53b3 (patch)
tree342e603adcfcfb1cbf3d7ec3c1c689fd50832fd0 /test
parent000598acc9cbd362e533afad9c48cffdd2fae380 (diff)
downloadzig-5c8acc551d4d99efebcdfc3b4a4a56dcbaad53b3.tar.gz
zig-5c8acc551d4d99efebcdfc3b4a4a56dcbaad53b3.zip
test/link/macho: revert testing objc msgsend stubs - no way of enabling in clang
Diffstat (limited to 'test')
-rw-r--r--test/link/macho.zig151
1 files changed, 0 insertions, 151 deletions
diff --git a/test/link/macho.zig b/test/link/macho.zig
index 27ae09a22e..ac58620e8c 100644
--- a/test/link/macho.zig
+++ b/test/link/macho.zig
@@ -53,8 +53,6 @@ pub fn testAll(b: *Build, build_opts: BuildOptions) *Step {
macho_step.dependOn(testHeaderpad(b, .{ .target = b.host }));
macho_step.dependOn(testNeededFramework(b, .{ .target = b.host }));
macho_step.dependOn(testObjc(b, .{ .target = b.host }));
- macho_step.dependOn(testObjcStubs(b, .{ .target = b.host }));
- macho_step.dependOn(testObjcStubs2(b, .{ .target = b.host }));
macho_step.dependOn(testWeakFramework(b, .{ .target = b.host }));
}
}
@@ -864,155 +862,6 @@ fn testObjc(b: *Build, opts: Options) *Step {
return test_step;
}
-fn testObjcStubs(b: *Build, opts: Options) *Step {
- const test_step = addTestStep(b, "macho-objc-stubs", opts);
-
- const exe = addExecutable(b, opts, .{
- .name = "main",
- .objc_source_bytes =
- \\@import Foundation;
- \\@interface Foo : NSObject
- \\@property (nonatomic, assign) NSString* name;
- \\@end
- \\@implementation Foo
- \\- (void)bar {
- \\ printf("%s", [self.name UTF8String]);
- \\}
- \\@end
- \\int main() {
- \\ Foo *foo = [[Foo alloc] init];
- \\ foo.name = @"Foo";
- \\ [foo bar];
- \\ return 0;
- \\}
- ,
- .objc_source_flags = &.{ "-fmodules", "-fobjc-msgsend-selector-stubs" },
- });
- exe.root_module.linkFramework("Foundation", .{});
-
- const run = addRunArtifact(exe);
- run.expectStdOutEqual("Foo");
- test_step.dependOn(&run.step);
-
- const check = exe.checkObject();
- check.checkInHeaders();
- check.checkExact("sectname __objc_stubs");
- check.checkInHeaders();
- check.checkExact("sectname __objc_methname");
- check.checkInHeaders();
- check.checkExact("sectname __objc_selrefs");
- check.checkInSymtab();
- check.checkContains("(__TEXT,__objc_stubs) (was private external) _objc_msgSend$bar");
- check.checkInSymtab();
- check.checkContains("(__TEXT,__objc_stubs) (was private external) _objc_msgSend$name");
- check.checkInSymtab();
- check.checkContains("(__TEXT,__objc_stubs) (was private external) _objc_msgSend$setName");
- test_step.dependOn(&check.step);
-
- return test_step;
-}
-
-fn testObjcStubs2(b: *Build, opts: Options) *Step {
- const test_step = addTestStep(b, "macho-objc-stubs-2", opts);
-
- const all_h = all_h: {
- const wf = WriteFile.create(b);
- break :all_h wf.add("all.h",
- \\#import <Foundation/Foundation.h>
- \\
- \\@interface Foo : NSObject
- \\@property (nonatomic, assign) NSString* name;
- \\- (void) foo;
- \\@end
- \\@interface Bar : NSObject
- \\@property (nonatomic, assign) NSString* name;
- \\- (void) bar;
- \\- (void) foobar: (Foo*) foo;
- \\@end
- );
- };
-
- const foo_o = addObject(b, opts, .{
- .name = "foo",
- .objc_source_bytes =
- \\#import <Foundation/Foundation.h>
- \\#import "all.h"
- \\@implementation Foo
- \\- (void)foo {
- \\ printf("%s", [self.name UTF8String]);
- \\}
- \\@end
- ,
- .objc_source_flags = &.{"-fobjc-msgsend-selector-stubs"},
- });
- foo_o.root_module.addIncludePath(all_h.dirname());
-
- const bar_o = addObject(b, opts, .{
- .name = "bar",
- .objc_source_bytes =
- \\#import <Foundation/Foundation.h>
- \\#import "all.h"
- \\@implementation Bar
- \\- (void)bar {
- \\ printf("%s", [self.name UTF8String]);
- \\}
- \\- (void)foobar: (Foo*) foo {
- \\ printf("%s%s", [foo.name UTF8String], [self.name UTF8String]);
- \\}
- \\@end
- ,
- .objc_source_flags = &.{"-fobjc-msgsend-selector-stubs"},
- });
- bar_o.root_module.addIncludePath(all_h.dirname());
-
- const main_o = addObject(b, opts, .{
- .name = "main",
- .objc_source_bytes =
- \\#import <Foundation/Foundation.h>
- \\#import "all.h"
- \\int main() {
- \\ Foo *foo = [[Foo alloc] init];
- \\ foo.name = @"Foo";
- \\ Bar *bar = [[Bar alloc] init];
- \\ bar.name = @"Bar";
- \\ [foo foo];
- \\ [bar bar];
- \\ [bar foobar:foo];
- \\ return 0;
- \\}
- ,
- .objc_source_flags = &.{"-fobjc-msgsend-selector-stubs"},
- });
- main_o.root_module.addIncludePath(all_h.dirname());
-
- const exe = addExecutable(b, opts, .{ .name = "main" });
- exe.addObject(main_o);
- exe.addObject(foo_o);
- exe.addObject(bar_o);
- exe.root_module.linkFramework("Foundation", .{});
-
- const run = addRunArtifact(exe);
- run.expectStdOutEqual("FooBarFooBar");
- test_step.dependOn(&run.step);
-
- const check = exe.checkObject();
- check.checkInHeaders();
- check.checkExact("sectname __objc_stubs");
- check.checkInHeaders();
- check.checkExact("sectname __objc_methname");
- check.checkInHeaders();
- check.checkExact("sectname __objc_selrefs");
- check.checkInSymtab();
- check.checkContains("(__TEXT,__objc_stubs) (was private external) _objc_msgSend$foo");
- check.checkInSymtab();
- check.checkContains("(__TEXT,__objc_stubs) (was private external) _objc_msgSend$bar");
- check.checkInSymtab();
- check.checkContains("(__TEXT,__objc_stubs) (was private external) _objc_msgSend$foobar");
- test_step.dependOn(&check.step);
-
- return test_step;
-}
-
fn testRelocatable(b: *Build, opts: Options) *Step {
const test_step = addTestStep(b, "macho-relocatable", opts);