Fixed use of NSError pattern; fixed minor int conversion issues
This commit is contained in:
@@ -10,8 +10,8 @@
|
||||
|
||||
#import "Objective-Zip.h"
|
||||
|
||||
#define HUGE_TEST_BLOCK_LENGTH (50000)
|
||||
#define HUGE_TEST_NUMBER_OF_BLOCKS (100000)
|
||||
#define HUGE_TEST_BLOCK_LENGTH (50000LL)
|
||||
#define HUGE_TEST_NUMBER_OF_BLOCKS (100000LL)
|
||||
|
||||
#define MAC_TEST_ZIP (@"UEsDBBQACAAIAPWF10IAAAAAAAAAAAAAAAANABAAdGVzdF9maWxlLnR4dFVYDACQCsdRjQrHUfYB9gHzT8pKTS7JLEvVjcosUPBNTFYoSS0uUUjLzEnlAgBQSwcIlXE92h4AAAAcAAAAUEsDBAoAAAAAAACG10IAAAAAAAAAAAAAAAAJABAAX19NQUNPU1gvVVgMAKAKx1GgCsdR9gH2AVBLAwQUAAgACAD1hddCAAAAAAAAAAAAAAAAGAAQAF9fTUFDT1NYLy5fdGVzdF9maWxlLnR4dFVYDACQCsdRjQrHUfYB9gFjYBVjZ2BiYPBNTFbwD1aIUIACkBgDJxAbAXElEIP4qxmIAo4hIUFQJkjHHCDmR1PCiBAXT87P1UssKMhJ1QtJrShxzUvOT8nMSwdKlpak6VpYGxqbGBmaW1qYAABQSwcIcBqNwF0AAACrAAAAUEsBAhUDFAAIAAgA9YXXQpVxPdoeAAAAHAAAAA0ADAAAAAAAAAAAQKSBAAAAAHRlc3RfZmlsZS50eHRVWAgAkArHUY0Kx1FQSwECFQMKAAAAAAAAhtdCAAAAAAAAAAAAAAAACQAMAAAAAAAAAABA/UFpAAAAX19NQUNPU1gvVVgIAKAKx1GgCsdRUEsBAhUDFAAIAAgA9YXXQnAajcBdAAAAqwAAABgADAAAAAAAAAAAQKSBoAAAAF9fTUFDT1NYLy5fdGVzdF9maWxlLnR4dFVYCACQCsdRjQrHUVBLBQYAAAAAAwADANwAAABTAQAAAAA=")
|
||||
#define WIN_TEST_ZIP (@"UEsDBBQAAAAAAMmF10L4VbPKIQAAACEAAAANAAAAdGVzdF9maWxlLnR4dE9iamVjdGl2ZS1aaXAgV2luZG93cyB0ZXN0IGZpbGUNClBLAQIUABQAAAAAAMmF10L4VbPKIQAAACEAAAANAAAAAAAAAAEAIAAAAAAAAAB0ZXN0X2ZpbGUudHh0UEsFBgAAAAABAAEAOwAAAEwAAAAAAA==")
|
||||
@@ -218,7 +218,7 @@
|
||||
[stream writeData:data];
|
||||
|
||||
if (i % 100 == 0)
|
||||
NSLog(@"Test 2: written %lu KB...", ([data length] / 1024) * (i +1));
|
||||
NSLog(@"Test 2: written %lu KB...", (unsigned long) ([data length] / 1024) * (i +1));
|
||||
}
|
||||
|
||||
NSLog(@"Test 2: closing file's stream...");
|
||||
@@ -235,6 +235,18 @@
|
||||
|
||||
XCTAssertNotNil(unzipFile);
|
||||
|
||||
NSLog(@"Test 1: reading file infos...");
|
||||
|
||||
NSArray *infos= [unzipFile listFileInZipInfos];
|
||||
|
||||
XCTAssertEqual(1, infos.count);
|
||||
|
||||
OZFileInZipInfo *info1= [infos objectAtIndex:0];
|
||||
|
||||
XCTAssertEqual(info1.length, HUGE_TEST_NUMBER_OF_BLOCKS * HUGE_TEST_BLOCK_LENGTH);
|
||||
|
||||
NSLog(@"Test 1: - %@ %@ %lu (%d)", info1.name, info1.date, (unsigned long) info1.size, info1.level);
|
||||
|
||||
NSLog(@"Test 2: opening file...");
|
||||
|
||||
[unzipFile goToFirstFileInZip];
|
||||
@@ -254,7 +266,7 @@
|
||||
XCTAssertEqual(0, range.location);
|
||||
|
||||
if (i % 100 == 0)
|
||||
NSLog(@"Test 2: read %lu KB...", ([buffer length] / 1024) * (i +1));
|
||||
NSLog(@"Test 2: read %lu KB...", (unsigned long) ([buffer length] / 1024) * (i +1));
|
||||
}
|
||||
|
||||
NSLog(@"Test 2: closing file's stream...");
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
#pragma mark -
|
||||
#pragma mark Initialization
|
||||
|
||||
- (instancetype) initWithName:(NSString *)name length:(NSUInteger)length level:(OZZipCompressionLevel)level crypted:(BOOL)crypted size:(NSUInteger)size date:(NSDate *)date crc32:(NSUInteger)crc32;
|
||||
- (instancetype) initWithName:(NSString *)name length:(unsigned long long)length level:(OZZipCompressionLevel)level crypted:(BOOL)crypted size:(unsigned long long)size date:(NSDate *)date crc32:(NSUInteger)crc32;
|
||||
|
||||
|
||||
@end
|
||||
|
||||
@@ -43,10 +43,10 @@
|
||||
#pragma mark Properties
|
||||
|
||||
@property (nonatomic, readonly) NSString *name;
|
||||
@property (nonatomic, readonly) NSUInteger length;
|
||||
@property (nonatomic, readonly) unsigned long long length;
|
||||
@property (nonatomic, readonly) OZZipCompressionLevel level;
|
||||
@property (nonatomic, readonly) BOOL crypted;
|
||||
@property (nonatomic, readonly) NSUInteger size;
|
||||
@property (nonatomic, readonly) unsigned long long size;
|
||||
@property (nonatomic, readonly) NSDate *date;
|
||||
@property (nonatomic, readonly) NSUInteger crc32;
|
||||
|
||||
|
||||
@@ -40,10 +40,10 @@
|
||||
@interface OZFileInZipInfo () {
|
||||
|
||||
@private
|
||||
NSUInteger _length;
|
||||
unsigned long long _length;
|
||||
OZZipCompressionLevel _level;
|
||||
BOOL _crypted;
|
||||
NSUInteger _size;
|
||||
unsigned long long _size;
|
||||
NSDate *_date;
|
||||
NSUInteger _crc32;
|
||||
NSString *_name;
|
||||
@@ -62,7 +62,7 @@
|
||||
#pragma mark -
|
||||
#pragma mark Initialization
|
||||
|
||||
- (instancetype) initWithName:(NSString *)name length:(NSUInteger)length level:(OZZipCompressionLevel)level crypted:(BOOL)crypted size:(NSUInteger)size date:(NSDate *)date crc32:(NSUInteger)crc32 {
|
||||
- (instancetype) initWithName:(NSString *)name length:(unsigned long long)length level:(OZZipCompressionLevel)level crypted:(BOOL)crypted size:(unsigned long long)size date:(NSDate *)date crc32:(NSUInteger)crc32 {
|
||||
if (self= [super init]) {
|
||||
_name= name;
|
||||
_length= length;
|
||||
|
||||
@@ -36,21 +36,6 @@
|
||||
#define ERROR_WRAP_BEGIN \
|
||||
@try {
|
||||
|
||||
#define ERROR_WRAP_END(err) \
|
||||
} @catch (OZZipException *ze) { \
|
||||
if (ze.error) { \
|
||||
if (err) { \
|
||||
*err= [NSError errorWithDomain:@"ObjectiveZipErrorDomain" \
|
||||
code:ze.error \
|
||||
userInfo:@{NSLocalizedDescriptionKey: ze.name, \
|
||||
NSLocalizedFailureReasonErrorKey: ze.reason}]; \
|
||||
} \
|
||||
} else \
|
||||
@throw ze; \
|
||||
} @catch (NSException *exc) { \
|
||||
@throw exc; \
|
||||
}
|
||||
|
||||
#define ERROR_WRAP_END_AND_RETURN(err, ret) \
|
||||
} @catch (OZZipException *ze) { \
|
||||
if (ze.error) { \
|
||||
|
||||
@@ -88,7 +88,7 @@
|
||||
#pragma mark -
|
||||
#pragma mark File seeking and info (NSError variants)
|
||||
|
||||
- (void) goToFirstFileInZipWithError:(NSError * __autoreleasing *)error;
|
||||
- (BOOL) goToFirstFileInZipWithError:(NSError * __autoreleasing *)error;
|
||||
- (BOOL) goToNextFileInZipWithError:(NSError * __autoreleasing *)error;
|
||||
- (BOOL) locateFileInZip:(NSString *)fileNameInZip error:(NSError * __autoreleasing *)error;
|
||||
|
||||
@@ -114,13 +114,13 @@
|
||||
#pragma mark -
|
||||
#pragma mark Closing
|
||||
|
||||
- (void) close;
|
||||
- (BOOL) close;
|
||||
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark Closing (NSError variants)
|
||||
|
||||
- (void) closeWithError:(NSError * __autoreleasing *)error;
|
||||
- (BOOL) closeWithError:(NSError * __autoreleasing *)error;
|
||||
|
||||
|
||||
#pragma mark -
|
||||
|
||||
@@ -339,7 +339,7 @@
|
||||
if (err != UNZ_OK)
|
||||
@throw [OZZipException zipExceptionWithError:err reason:@"Error getting global info of '%@'", _fileName];
|
||||
|
||||
return gi.number_entry;
|
||||
return (NSUInteger) gi.number_entry;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -406,7 +406,13 @@
|
||||
NSCalendar *calendar= [NSCalendar currentCalendar];
|
||||
NSDate *date= [calendar dateFromComponents:components];
|
||||
|
||||
OZFileInZipInfo *info= [[OZFileInZipInfo alloc] initWithName:name length:file_info.uncompressed_size level:level crypted:crypted size:file_info.compressed_size date:date crc32:file_info.crc];
|
||||
OZFileInZipInfo *info= [[OZFileInZipInfo alloc] initWithName:name
|
||||
length:file_info.uncompressed_size
|
||||
level:level
|
||||
crypted:crypted
|
||||
size:file_info.compressed_size
|
||||
date:date
|
||||
crc32:file_info.crc];
|
||||
return info;
|
||||
}
|
||||
|
||||
@@ -414,12 +420,14 @@
|
||||
#pragma mark -
|
||||
#pragma mark File seeking and info (NSError variants)
|
||||
|
||||
- (void) goToFirstFileInZipWithError:(NSError * __autoreleasing *)error {
|
||||
- (BOOL) goToFirstFileInZipWithError:(NSError * __autoreleasing *)error {
|
||||
ERROR_WRAP_BEGIN {
|
||||
|
||||
[self goToFirstFileInZip];
|
||||
|
||||
} ERROR_WRAP_END(error);
|
||||
return YES;
|
||||
|
||||
} ERROR_WRAP_END_AND_RETURN(error, NO);
|
||||
}
|
||||
|
||||
- (BOOL) goToNextFileInZipWithError:(NSError * __autoreleasing *)error {
|
||||
@@ -534,7 +542,7 @@
|
||||
#pragma mark -
|
||||
#pragma mark Closing
|
||||
|
||||
- (void) close {
|
||||
- (BOOL) close {
|
||||
switch (_mode) {
|
||||
case OZZipFileModeUnzip: {
|
||||
int err= unzClose(_unzFile);
|
||||
@@ -560,17 +568,20 @@
|
||||
default:
|
||||
@throw [OZZipException zipExceptionWithReason:@"Unknown mode %d", _mode];
|
||||
}
|
||||
|
||||
return YES;
|
||||
}
|
||||
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark Closing (NSError variants)
|
||||
|
||||
- (void) closeWithError:(NSError * __autoreleasing *)error {
|
||||
- (BOOL) closeWithError:(NSError * __autoreleasing *)error {
|
||||
ERROR_WRAP_BEGIN {
|
||||
|
||||
[self close];
|
||||
|
||||
} ERROR_WRAP_END(error);
|
||||
} ERROR_WRAP_END_AND_RETURN(error, NO);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
#pragma mark Reading data (NSError variants)
|
||||
|
||||
- (NSUInteger) readDataWithBuffer:(NSMutableData *)buffer error:(NSError * __autoreleasing *)error;
|
||||
- (void) finishedReadingWithError:(NSError * __autoreleasing *)error;
|
||||
- (BOOL) finishedReadingWithError:(NSError * __autoreleasing *)error;
|
||||
|
||||
|
||||
@end
|
||||
|
||||
@@ -99,12 +99,14 @@
|
||||
} ERROR_WRAP_END_AND_RETURN(error, 0);
|
||||
}
|
||||
|
||||
- (void) finishedReadingWithError:(NSError * __autoreleasing *)error {
|
||||
- (BOOL) finishedReadingWithError:(NSError * __autoreleasing *)error {
|
||||
ERROR_WRAP_BEGIN {
|
||||
|
||||
[self finishedReading];
|
||||
|
||||
} ERROR_WRAP_END(error);
|
||||
return YES;
|
||||
|
||||
} ERROR_WRAP_END_AND_RETURN(error, NO);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -47,8 +47,8 @@
|
||||
#pragma mark -
|
||||
#pragma mark Writing data (NSError variants)
|
||||
|
||||
- (void) writeData:(NSData *)data error:(NSError * __autoreleasing *)error;
|
||||
- (void) finishedWritingWithError:(NSError * __autoreleasing *)error;
|
||||
- (BOOL) writeData:(NSData *)data error:(NSError * __autoreleasing *)error;
|
||||
- (BOOL) finishedWritingWithError:(NSError * __autoreleasing *)error;
|
||||
|
||||
|
||||
@end
|
||||
|
||||
@@ -89,20 +89,24 @@
|
||||
#pragma mark -
|
||||
#pragma mark Writing data (NSError variants)
|
||||
|
||||
- (void) writeData:(NSData *)data error:(NSError * __autoreleasing *)error {
|
||||
- (BOOL) writeData:(NSData *)data error:(NSError * __autoreleasing *)error {
|
||||
ERROR_WRAP_BEGIN {
|
||||
|
||||
[self writeData:data];
|
||||
|
||||
} ERROR_WRAP_END(error);
|
||||
return YES;
|
||||
|
||||
} ERROR_WRAP_END_AND_RETURN(error, NO);
|
||||
}
|
||||
|
||||
- (void) finishedWritingWithError:(NSError * __autoreleasing *)error {
|
||||
- (BOOL) finishedWritingWithError:(NSError * __autoreleasing *)error {
|
||||
ERROR_WRAP_BEGIN {
|
||||
|
||||
[self finishedWriting];
|
||||
|
||||
} ERROR_WRAP_END(error);
|
||||
return YES;
|
||||
|
||||
} ERROR_WRAP_END_AND_RETURN(error, NO);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user