Open
Description
Executing a variadic method on a mocked object results in an "EXC_BAD_ACCESS" crash.
The variadic method does not have to be executed with OCMock (#191). It occurs even if called directly.
#import <XCTest/XCTest.h>
#import <OCMock.h>
@interface BaseClass: NSObject
@end
@implementation BaseClass
- (void)logLevel:(NSUInteger)messageLogLevel message:(NSString *)format, ... {
va_list args;
va_start(args, format);
NSString* message = [[NSString alloc] initWithFormat:format arguments:args];
va_end(args);
NSLog(@"%li: %@", messageLogLevel, message);
}
@end
@interface OCMockFailureTestTests : XCTestCase
@end
@implementation OCMockFailureTestTests
- (void)testExample {
BaseClass* obj = [BaseClass new];
id mock = [OCMockObject partialMockForObject:obj];
[obj logLevel:3 message:@"%@", @"abc"]; // crash
}
@end
Executed on an iOS Simulator running on a Macbook Pro with M1, not reproducible with i5.
OCMock v3.9.1