| // |
| // 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(); |
| XCTAssertNotNULL(timer); |
| GTMTestTimerRetain(timer); |
| GTMTestTimerRelease(timer); |
| XCTAssertEqualWithAccuracy(GTMTestTimerGetSeconds(timer), 0.0, 0.0); |
| GTMTestTimerStart(timer); |
| XCTAssertTrue(GTMTestTimerIsRunning(timer)); |
| 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. |
| XCTAssertGreaterThan(GTMTestTimerGetSeconds(timer), 0.1); |
| XCTAssertGreaterThan(GTMTestTimerGetMilliseconds(timer), 100.0); |
| XCTAssertGreaterThan(GTMTestTimerGetMicroseconds(timer), 100000.0); |
| |
| // Check to make sure we're not WAY off the mark (by a factor of 10) |
| XCTAssertLessThan(GTMTestTimerGetMicroseconds(timer), 1000000.0); |
| |
| [loop runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; |
| GTMTestTimerStart(timer); |
| [loop runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.1]]; |
| XCTAssertGreaterThan(GTMTestTimerGetSeconds(timer), 0.2); |
| GTMTestTimerStop(timer); |
| XCTAssertEqual(GTMTestTimerGetIterations(timer), (NSUInteger)2); |
| GTMTestTimerRelease(timer); |
| } |
| @end |