aboutsummaryrefslogtreecommitdiffstats
path: root/tai64n/tai64n_test.go
blob: 859660f93cc7d24fe438fbc0e01640e213da8db4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/* SPDX-License-Identifier: MIT
 *
 * Copyright (C) 2017-2019 WireGuard LLC. All Rights Reserved.
 */

package tai64n

import (
	"testing"
	"time"
)

/* Testing the essential property of the timestamp
 * as used by WireGuard.
 */
func TestMonotonic(t *testing.T) {
	old := Now()
	for i := 0; i < 50; i++ {
		next := Now()
		if next.After(old) {
			t.Error("Whitening insufficient")
		}
		time.Sleep(time.Duration(whitenerMask)/time.Nanosecond + 1)
		next = Now()
		if !next.After(old) {
			t.Error("Not monotonically increasing on whitened nano-second scale")
		}
		old = next
	}
}