diff options
author | thomasvl@gmail.com <thomasvl@gmail.com@7dc7ac4e-7543-0410-b95c-c1676fc8e2a3> | 2008-09-22 23:33:44 +0000 |
---|---|---|
committer | thomasvl@gmail.com <thomasvl@gmail.com@7dc7ac4e-7543-0410-b95c-c1676fc8e2a3> | 2008-09-22 23:33:44 +0000 |
commit | 7bb8e9b9b24141f373ed70d7e6674a245c0227cf (patch) | |
tree | 8fab3cad46943aee24f213e041b2a7f6b71ea5df /UnitTesting/GTMTestTimerTest.m | |
parent | bfaf8705cccb15c0c2a7704b17ba011ddba8242f (diff) |
- Added GTMTestTimer.h for doing high fidelity timings.
- Added leaks checking to iPhone unit test script. It can be controlled by
the GTM_DISABLE_LEAKS environment variable
- Added ability to control using zombies to iPhone unit test script. It can be
controlled by the GTM_DISABLE_ZOMBIES environment variable
- Added ability to control termination to iPhone unit test script. It can be
controlled by the GTM_DISABLE_TERMINATION environment variable
- Fixed several leaks found with leak checking enabled.
- Added configs for different iPhone OS versions.
Diffstat (limited to 'UnitTesting/GTMTestTimerTest.m')
-rw-r--r-- | UnitTesting/GTMTestTimerTest.m | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/UnitTesting/GTMTestTimerTest.m b/UnitTesting/GTMTestTimerTest.m new file mode 100644 index 0000000..86f9d22 --- /dev/null +++ b/UnitTesting/GTMTestTimerTest.m @@ -0,0 +1,56 @@ +// +// GTMTestTimerTest.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 "GTMTestTimer.h" + +@interface GTMTestTimerTest : GTMTestCase +@end + +@implementation GTMTestTimerTest +- (void)testTimer { + GTMTestTimer *timer = GTMTestTimerCreate(); + STAssertNotNULL(timer, nil); + GTMTestTimerRetain(timer); + GTMTestTimerRelease(timer); + STAssertEqualsWithAccuracy(GTMTestTimerGetSeconds(timer), 0.0, 0.0, nil); + GTMTestTimerStart(timer); + STAssertTrue(GTMTestTimerIsRunning(timer), nil); + NSRunLoop *loop = [NSRunLoop currentRunLoop]; + [loop runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; + GTMTestTimerStop(timer); + + // We use greater than (and an almost absurd less than) because + // these tests are very dependant on machine load, and we don't want + // automated tests reporting false negatives. + STAssertGreaterThan(GTMTestTimerGetSeconds(timer), 0.1, nil); + STAssertGreaterThan(GTMTestTimerGetMilliseconds(timer), 100.0,nil); + STAssertGreaterThan(GTMTestTimerGetMicroseconds(timer), 100000.0, nil); + + // Check to make sure we're not WAY off the mark (by a factor of 10) + STAssertLessThan(GTMTestTimerGetMicroseconds(timer), 1000000.0, nil); + + [loop runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; + GTMTestTimerStart(timer); + [loop runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; + STAssertGreaterThan(GTMTestTimerGetSeconds(timer), 0.2, nil); + GTMTestTimerStop(timer); + STAssertEquals(GTMTestTimerGetIterations(timer), (NSUInteger)2, nil); + GTMTestTimerRelease(timer); +} +@end |