blob: e3c3b16ab11ac4e78eff0186bb9dddae687247f0 [file] [log] [blame]
Jiri Simsad7616c92015-03-24 23:44:30 -07001// Copyright 2015 The Vanadium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
Jiri Simsa5293dcb2014-05-10 09:56:38 -07005package timekeeper
6
7import (
8 "testing"
9 "time"
10)
11
12func TestAfter(t *testing.T) {
13 var tk TimeKeeper
14 tk = RealTime()
15 before := time.Now()
16 timeToSleep := 500000000 * time.Nanosecond // Half a second.
17 <-tk.After(timeToSleep)
18 after := time.Now()
19 if after.Before(before.Add(timeToSleep / 2)) {
20 t.Errorf("Too short: %s", after.Sub(before))
21 }
22 if after.After(before.Add(timeToSleep * 2)) {
23 t.Errorf("Too long: %s", after.Sub(before))
24 }
25}
26
27func TestSleep(t *testing.T) {
28 var tk TimeKeeper
29 tk = RealTime()
30 before := time.Now()
31 timeToSleep := 500000000 * time.Nanosecond // Half a second.
32 tk.Sleep(timeToSleep)
33 after := time.Now()
34 if after.Before(before.Add(timeToSleep / 2)) {
35 t.Errorf("Too short: %s", after.Sub(before))
36 }
37 if after.After(before.Add(timeToSleep * 2)) {
38 t.Errorf("Too long: %s", after.Sub(before))
39 }
40}