Skip to content

Commit 3e49f0d

Browse files
committed
Use SSZipArchive for OS X as well
1 parent 35f7d08 commit 3e49f0d

File tree

2 files changed

+41
-31
lines changed

2 files changed

+41
-31
lines changed

ObjectiveGitFramework.xcodeproj/project.pbxproj

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,12 @@
6060
2089E43C17D9A58000F451DA /* GTTagSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 2089E43B17D9A58000F451DA /* GTTagSpec.m */; };
6161
20F43DE318A2F668007D3621 /* GTRepository+Blame.h in Headers */ = {isa = PBXBuildFile; fileRef = 20F43DE118A2F667007D3621 /* GTRepository+Blame.h */; settings = {ATTRIBUTES = (Public, ); }; };
6262
20F43DE618A2F668007D3621 /* GTRepository+Blame.m in Sources */ = {isa = PBXBuildFile; fileRef = 20F43DE218A2F667007D3621 /* GTRepository+Blame.m */; };
63+
23BB67B91C7DF3B600A37A66 /* SSZipArchive.m in Sources */ = {isa = PBXBuildFile; fileRef = F8D007801B4F9758009A8DAF /* SSZipArchive.m */; };
64+
23BB67BA1C7DF3BC00A37A66 /* unzip.c in Sources */ = {isa = PBXBuildFile; fileRef = F8D007841B4F97F9009A8DAF /* unzip.c */; };
65+
23BB67BC1C7DF45300A37A66 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 23BB67BB1C7DF45300A37A66 /* libz.tbd */; };
66+
23BB67BD1C7DF49500A37A66 /* zip.c in Sources */ = {isa = PBXBuildFile; fileRef = F8D007851B4F97F9009A8DAF /* zip.c */; };
67+
23BB67BE1C7DF4B100A37A66 /* mztools.c in Sources */ = {isa = PBXBuildFile; fileRef = F8D007831B4F97F9009A8DAF /* mztools.c */; };
68+
23BB67BF1C7DF4CD00A37A66 /* ioapi.c in Sources */ = {isa = PBXBuildFile; fileRef = F8D007821B4F97F9009A8DAF /* ioapi.c */; };
6369
23BB67C11C7DF60300A37A66 /* GTRepository+PullSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = F8EFA0361B405020000FF7D0 /* GTRepository+PullSpec.m */; };
6470
23BB67C21C7DF60400A37A66 /* GTRepository+PullSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = F8EFA0361B405020000FF7D0 /* GTRepository+PullSpec.m */; };
6571
3011D86B1668E48500CE3409 /* GTDiffFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 3011D8691668E48500CE3409 /* GTDiffFile.h */; settings = {ATTRIBUTES = (Public, ); }; };
@@ -445,6 +451,7 @@
445451
2089E43B17D9A58000F451DA /* GTTagSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GTTagSpec.m; sourceTree = "<group>"; };
446452
20F43DE118A2F667007D3621 /* GTRepository+Blame.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "GTRepository+Blame.h"; sourceTree = "<group>"; };
447453
20F43DE218A2F667007D3621 /* GTRepository+Blame.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "GTRepository+Blame.m"; sourceTree = "<group>"; };
454+
23BB67BB1C7DF45300A37A66 /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; };
448455
3011D8691668E48500CE3409 /* GTDiffFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GTDiffFile.h; sourceTree = "<group>"; };
449456
3011D86A1668E48500CE3409 /* GTDiffFile.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GTDiffFile.m; sourceTree = "<group>"; };
450457
3011D86F1668E78500CE3409 /* GTDiffHunk.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GTDiffHunk.h; sourceTree = "<group>"; };
@@ -649,6 +656,7 @@
649656
isa = PBXFrameworksBuildPhase;
650657
buildActionMask = 2147483647;
651658
files = (
659+
23BB67BC1C7DF45300A37A66 /* libz.tbd in Frameworks */,
652660
D0A0128A19F98475007F1914 /* Quick.framework in Frameworks */,
653661
88F05A9E16011F6E00B7AD1D /* ObjectiveGit.framework in Frameworks */,
654662
D0A0128C19F9853D007F1914 /* Nimble.framework in Frameworks */,
@@ -705,6 +713,7 @@
705713
0867D691FE84028FC02AAC07 /* ObjectiveGitFramework */ = {
706714
isa = PBXGroup;
707715
children = (
716+
23BB67BB1C7DF45300A37A66 /* libz.tbd */,
708717
BDD8AB01130F01AB00CB5D40 /* README.md */,
709718
887B948D1A3A38130070D41D /* ObjectiveGit.modulemap */,
710719
BDE4C05E130EFE2C00851650 /* ObjectiveGit */,
@@ -1388,6 +1397,11 @@
13881397
isa = PBXSourcesBuildPhase;
13891398
buildActionMask = 2147483647;
13901399
files = (
1400+
23BB67BF1C7DF4CD00A37A66 /* ioapi.c in Sources */,
1401+
23BB67BE1C7DF4B100A37A66 /* mztools.c in Sources */,
1402+
23BB67BD1C7DF49500A37A66 /* zip.c in Sources */,
1403+
23BB67BA1C7DF3BC00A37A66 /* unzip.c in Sources */,
1404+
23BB67B91C7DF3B600A37A66 /* SSZipArchive.m in Sources */,
13911405
23BB67C11C7DF60300A37A66 /* GTRepository+PullSpec.m in Sources */,
13921406
D0751CD918BE520400134314 /* GTFilterListSpec.m in Sources */,
13931407
200578C518932A82001C06C3 /* GTBlameSpec.m in Sources */,
@@ -1810,6 +1824,16 @@
18101824
"$(inherited)",
18111825
"$(DEVELOPER_FRAMEWORKS_DIR)",
18121826
);
1827+
GCC_PREPROCESSOR_DEFINITIONS = (
1828+
"DEBUG=1",
1829+
"NOUNCRYPT=1",
1830+
"NOCRYPT=1",
1831+
);
1832+
HEADER_SEARCH_PATHS = (
1833+
External/libgit2/include,
1834+
/usr/local/include,
1835+
"Carthage/Checkouts/ZipArchive/SSZipArchive/**",
1836+
);
18131837
INFOPLIST_FILE = "ObjectiveGitTests/ObjectiveGitTests-Info.plist";
18141838
MACOSX_DEPLOYMENT_TARGET = 10.9;
18151839
PRODUCT_BUNDLE_IDENTIFIER = "org.libgit2.$(PRODUCT_NAME:rfc1034identifier)";
@@ -1825,6 +1849,11 @@
18251849
"$(inherited)",
18261850
"$(DEVELOPER_FRAMEWORKS_DIR)",
18271851
);
1852+
HEADER_SEARCH_PATHS = (
1853+
External/libgit2/include,
1854+
/usr/local/include,
1855+
"Carthage/Checkouts/ZipArchive/SSZipArchive/**",
1856+
);
18281857
INFOPLIST_FILE = "ObjectiveGitTests/ObjectiveGitTests-Info.plist";
18291858
MACOSX_DEPLOYMENT_TARGET = 10.9;
18301859
PRODUCT_BUNDLE_IDENTIFIER = "org.libgit2.$(PRODUCT_NAME:rfc1034identifier)";
@@ -1894,6 +1923,11 @@
18941923
"$(inherited)",
18951924
"$(DEVELOPER_FRAMEWORKS_DIR)",
18961925
);
1926+
HEADER_SEARCH_PATHS = (
1927+
External/libgit2/include,
1928+
/usr/local/include,
1929+
"Carthage/Checkouts/ZipArchive/SSZipArchive/**",
1930+
);
18971931
INFOPLIST_FILE = "ObjectiveGitTests/ObjectiveGitTests-Info.plist";
18981932
MACOSX_DEPLOYMENT_TARGET = 10.9;
18991933
PRODUCT_BUNDLE_IDENTIFIER = "org.libgit2.$(PRODUCT_NAME:rfc1034identifier)";
@@ -2127,6 +2161,11 @@
21272161
"$(inherited)",
21282162
"$(DEVELOPER_FRAMEWORKS_DIR)",
21292163
);
2164+
HEADER_SEARCH_PATHS = (
2165+
External/libgit2/include,
2166+
/usr/local/include,
2167+
"Carthage/Checkouts/ZipArchive/SSZipArchive/**",
2168+
);
21302169
INFOPLIST_FILE = "ObjectiveGitTests/ObjectiveGitTests-Info.plist";
21312170
MACOSX_DEPLOYMENT_TARGET = 10.9;
21322171
PRODUCT_BUNDLE_IDENTIFIER = "org.libgit2.$(PRODUCT_NAME:rfc1034identifier)";

ObjectiveGitTests/QuickSpec+GTFixtures.m

Lines changed: 2 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,7 @@
99
#import <ObjectiveGit/ObjectiveGit.h>
1010
#import "QuickSpec+GTFixtures.h"
1111
#import <objc/runtime.h>
12-
13-
#if TARGET_OS_IPHONE
1412
#import "SSZipArchive.h"
15-
#endif
1613

1714
static const NSInteger FixturesErrorUnzipFailed = 666;
1815

@@ -94,7 +91,7 @@ - (void)setUpRepositoryFixtureIfNeeded:(NSString *)repositoryName {
9491
NSString *cleanRepositoryPath = [self.rootTempDirectory stringByAppendingPathComponent:@"clean_repository"];
9592
if (![NSFileManager.defaultManager fileExistsAtPath:cleanRepositoryPath isDirectory:nil]) {
9693
error = nil;
97-
success = [self unzipFile:repositoryName fromArchiveAtPath:zippedRepositoriesPath intoDirectory:cleanRepositoryPath error:&error];
94+
success = [self unzipFromArchiveAtPath:zippedRepositoriesPath intoDirectory:cleanRepositoryPath error:&error];
9895
XCTAssertTrue(success, @"Couldn't unzip fixture \"%@\" from %@ to %@: %@", repositoryName, zippedRepositoriesPath, cleanRepositoryPath, error);
9996
}
10097

@@ -108,13 +105,7 @@ - (NSString *)pathForFixtureRepositoryNamed:(NSString *)repositoryName {
108105
return [self.repositoryFixturesPath stringByAppendingPathComponent:repositoryName];
109106
}
110107

111-
- (BOOL)unzipFile:(NSString *)member fromArchiveAtPath:(NSString *)zipPath intoDirectory:(NSString *)destinationPath error:(NSError **)error {
112-
113-
#if TARGET_OS_IPHONE
114-
// iOS: unzip in-process using SSZipArchive
115-
//
116-
// system() and NSTask() are not available when running tests in the iOS simulator
117-
108+
- (BOOL)unzipFromArchiveAtPath:(NSString *)zipPath intoDirectory:(NSString *)destinationPath error:(NSError **)error {
118109
BOOL success = [SSZipArchive unzipFileAtPath:zipPath toDestination:destinationPath overwrite:YES password:nil error:error];
119110

120111
if (!success) {
@@ -123,26 +114,6 @@ - (BOOL)unzipFile:(NSString *)member fromArchiveAtPath:(NSString *)zipPath intoD
123114
}
124115

125116
return YES;
126-
127-
#else
128-
// OS X: shell out to unzip using NSTask
129-
130-
NSTask *task = [[NSTask alloc] init];
131-
task.launchPath = @"/usr/bin/unzip";
132-
task.arguments = @[ @"-qq", @"-d", destinationPath, zipPath, [member stringByAppendingString:@"*"] ];
133-
134-
[task launch];
135-
[task waitUntilExit];
136-
137-
BOOL success = (task.terminationStatus == 0);
138-
if (!success) {
139-
if (error != NULL) *error = [NSError errorWithDomain:FixturesErrorDomain code:FixturesErrorUnzipFailed userInfo:@{ NSLocalizedDescriptionKey: NSLocalizedString(@"Unzip failed", @"") }];
140-
}
141-
142-
return success;
143-
144-
#endif
145-
146117
}
147118

148119
#pragma mark API

0 commit comments

Comments
 (0)