libs-base/Tests/base/NSLock/unbalancedUnlock.m
2023-09-17 23:35:24 -04:00

25 lines
711 B
Objective-C

#import <Foundation/Foundation.h>
#import "Testing.h"
#import "ObjectTesting.h"
int main()
{
START_SET("Unbalanced unlocking")
NSLock *lock = [NSLock new];
NSUserDefaults *defs = [NSUserDefaults standardUserDefaults];
BOOL mode = [defs boolForKey: @"GSMacOSXCompatible"];
[defs setBool: NO forKey: @"GSMacOSXCompatible"];
PASS_EXCEPTION([lock unlock], @"NSLockException",
"unlocking an unlocked lock raises NSLockException")
[defs setBool: YES forKey: @"GSMacOSXCompatible"];
PASS_RUNS([lock unlock],
"unlocking an unlocked lock does not raise in MacOSX compatibility mode")
[defs setBool: mode forKey: @"GSMacOSXCompatible"];
END_SET("Unbalanced unlocking")
return 0;
}