aboutsummaryrefslogtreecommitdiff
path: root/Foundation/GTMExceptionalInlinesTest.m
diff options
context:
space:
mode:
authorGravatar thomasvl@gmail.com <thomasvl@gmail.com@7dc7ac4e-7543-0410-b95c-c1676fc8e2a3>2008-09-10 21:04:47 +0000
committerGravatar thomasvl@gmail.com <thomasvl@gmail.com@7dc7ac4e-7543-0410-b95c-c1676fc8e2a3>2008-09-10 21:04:47 +0000
commitbfaf8705cccb15c0c2a7704b17ba011ddba8242f (patch)
treeb48e104487ee5e29522da1bce6accafa007e29cf /Foundation/GTMExceptionalInlinesTest.m
parent0f0f40db85a2c295a9b6dc1623cd76106a4448a5 (diff)
- Added GTMExceptionalInlines for dealing with cases where you get
warning: variable 'r' might be clobbered by 'longjmp' or 'vfork' when using certain Apple inlined functions in @synchronized/@try blocks. - Updated to Xcode 3.1 so the GTM and iPhone project have the same baseline. The code should work in other version of xcode, but the projects and xcconfig files now use 3.1 features. - Added GTMABAddressBook which is a cocoa wrapper for the 'C' AddressBook APIs on the iPhone. - Added several set environment variable statements to RunIPhoneUnitTest.sh to encourage bugs to come out of the woodwork.
Diffstat (limited to 'Foundation/GTMExceptionalInlinesTest.m')
-rw-r--r--Foundation/GTMExceptionalInlinesTest.m65
1 files changed, 65 insertions, 0 deletions
diff --git a/Foundation/GTMExceptionalInlinesTest.m b/Foundation/GTMExceptionalInlinesTest.m
new file mode 100644
index 0000000..f785301
--- /dev/null
+++ b/Foundation/GTMExceptionalInlinesTest.m
@@ -0,0 +1,65 @@
+//
+// GTMExceptionalInlinesTest.m
+//
+// Copyright 2008 Google Inc.
+//
+// Licensed under the Apache License, Version 2.0 (the "License"); you may not
+// use this file except in compliance with the License. You may obtain a copy
+// of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+// License for the specific language governing permissions and limitations under
+// the License.
+//
+
+#import "GTMSenTestCase.h"
+#import "GTMExceptionalInlines.h"
+
+@interface GTMExceptionalInlinesTest : GTMTestCase
+@end
+
+@implementation GTMExceptionalInlinesTest
+- (void)testExceptionalInlines {
+ // Numbers chosen basically at random.
+ NSUInteger loc = 5;
+ NSUInteger len = 10;
+ CGFloat x = 22.5;
+ CGFloat y = 40.2;
+ CGFloat h = 21.6;
+ CGFloat w = 54.2;
+
+ NSRange range1 = GTMNSMakeRange(loc, len);
+ NSRange range2 = NSMakeRange(loc, len);
+ STAssertTrue(NSEqualRanges(range1, range2), nil);
+
+ CGPoint cgpoint1 = GTMCGPointMake(x, y);
+ CGPoint cgpoint2 = CGPointMake(x, y);
+ STAssertTrue(CGPointEqualToPoint(cgpoint1, cgpoint2), nil);
+
+ CGSize cgsize1 = GTMCGSizeMake(x, y);
+ CGSize cgsize2 = CGSizeMake(x, y);
+ STAssertTrue(CGSizeEqualToSize(cgsize1, cgsize2), nil);
+
+ CGRect cgrect1 = GTMCGRectMake(x, y, w, h);
+ CGRect cgrect2 = CGRectMake(x, y, w, h);
+ STAssertTrue(CGRectEqualToRect(cgrect1, cgrect2), nil);
+
+#if !GTM_IPHONE_SDK
+ NSPoint point1 = GTMNSMakePoint(x, y);
+ NSPoint point2 = NSMakePoint(x, y);
+ STAssertTrue(NSEqualPoints(point1, point2), nil);
+
+ NSSize size1 = GTMNSMakeSize(w, h);
+ NSSize size2 = NSMakeSize(w, h);
+ STAssertTrue(NSEqualSizes(size1, size2), nil);
+
+ NSRect rect1 = GTMNSMakeRect(x, y, w, h);
+ NSRect rect2 = NSMakeRect(x, y, w, h);
+ STAssertTrue(NSEqualRects(rect1, rect2), nil);
+#endif
+}
+@end