// Copyright 2012 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // +build darwin freebsd linux netbsd openbsd windows package net import ( "testing" "time" ) var deadlineSetTimeTests = []struct { input time.Time expected int64 }{ {time.Time{}, 0}, {time.Date(2009, 11, 10, 23, 00, 00, 00, time.UTC), 1257894000000000000}, // 2009-11-10 23:00:00 +0000 UTC } func TestDeadlineSetTime(t *testing.T) { for _, tt := range deadlineSetTimeTests { var d deadline d.setTime(tt.input) actual := d.value() expected := int64(0) if !tt.input.IsZero() { expected = tt.input.UnixNano() } if actual != expected { t.Errorf("set/value failed: expected %v, actual %v", expected, actual) } } } var deadlineExpiredTests = []struct { deadline time.Time expired bool }{ // note, times are relative to the start of the test run, not // the start of TestDeadlineExpired {time.Now().Add(5 * time.Minute), false}, {time.Now().Add(-5 * time.Minute), true}, {time.Time{}, false}, // no deadline set } func TestDeadlineExpired(t *testing.T) { for _, tt := range deadlineExpiredTests { var d deadline d.set(tt.deadline.UnixNano()) expired := d.expired() if expired != tt.expired { t.Errorf("expire failed: expected %v, actual %v", tt.expired, expired) } } }