wireguard-go/tai64n/tai64n_test.go

31 lines
582 B
Go
Raw Normal View History

2019-01-02 00:55:51 +00:00
/* SPDX-License-Identifier: MIT
*
* Copyright (C) 2017-2020 WireGuard LLC. All Rights Reserved.
*/
package tai64n
2018-02-11 21:53:39 +00:00
import (
"testing"
"time"
)
/* Testing the essential property of the timestamp
* as used by WireGuard.
*/
func TestMonotonic(t *testing.T) {
old := Now()
2019-05-29 16:43:17 +00:00
for i := 0; i < 50; i++ {
next := Now()
2019-05-29 16:43:17 +00:00
if next.After(old) {
t.Error("Whitening insufficient")
}
time.Sleep(time.Duration(whitenerMask)/time.Nanosecond + 1)
next = Now()
2018-02-11 21:53:39 +00:00
if !next.After(old) {
2019-05-29 16:43:17 +00:00
t.Error("Not monotonically increasing on whitened nano-second scale")
2018-02-11 21:53:39 +00:00
}
old = next
}
}