aboutsummaryrefslogblamecommitdiffstats
path: root/tai64n/tai64n_test.go
blob: 859660f93cc7d24fe438fbc0e01640e213da8db4 (plain) (tree)
1
2
3
4
5
6
                               
  
                                                              

   
              









                                                  
                    
                                 
                             




                                                                           
                                     
                                                                                             



                          
/* 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
	}
}