// Copyright 2009 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.

package net

import (
	"testing";
	"time";
)

func testTimeout(t *testing.T, network, addr string) {
	fd, err := Dial(network, "", addr);
	defer fd.Close();
	if err != nil {
		t.Errorf("dial %s %s failed: %v", network, addr, err)
	}
	t0 := time.Nanoseconds();
	fd.SetReadTimeout(1e8);	// 100ms
	var b [100]byte;
	n, err1 := fd.Read(&b);
	t1 := time.Nanoseconds();
	if n != 0 || !isEAGAIN(err1) {
		t.Errorf("fd.Read on %s %s did not return 0, EAGAIN: %v, %v", network, addr, n, err1)
	}
	if t1-t0 < 0.5e8 || t1-t0 > 1.5e8 {
		t.Errorf("fd.Read on %s %s took %f seconds, expected 0.1", network, addr, float64(t1-t0)/1e9)
	}
}

func TestTimeoutUDP(t *testing.T)	{ testTimeout(t, "udp", "127.0.0.1:53") }

func TestTimeoutTCP(t *testing.T) {
	// 74.125.19.99 is www.google.com.
	// could use dns, but dns depends on
	// timeouts and this is the timeout test.
	testTimeout(t, "tcp", "74.125.19.99:80")
}
