From 0aca4e2791114e23c926b22638f66c4423c4e627 Mon Sep 17 00:00:00 2001 From: Icarus Sparry Date: Tue, 26 Jan 2010 13:16:03 -0800 Subject: os: in test, allow Hostname to return FQDN even if /bin/hostname does not Hostname reads the file /proc/sys/kernel/hostname to determine the value it returns. Some people set this to a Fully Qualified Doamin Name. At least one implementation of /bin/hostname truncates the name it gets (often from the "uname" system call) at the first dot unless it is given a "-f" flag. This change makes the unit test also truncate at the first dot and checks if the strings then match. This seems more portable than adding an extra flag to the called /bin/hostname program. R=rsc CC=golang-dev http://codereview.appspot.com/181097 Committer: Russ Cox --- src/pkg/os/os_test.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/pkg/os/os_test.go b/src/pkg/os/os_test.go index 4523cad79..4a84c4f18 100644 --- a/src/pkg/os/os_test.go +++ b/src/pkg/os/os_test.go @@ -647,13 +647,18 @@ func run(t *testing.T, cmd []string) string { func TestHostname(t *testing.T) { // Check internal Hostname() against the output of /bin/hostname. + // Allow that the internal Hostname returns a Fully Qualified Domain Name + // and the /bin/hostname only returns the first component hostname, err := Hostname() if err != nil { t.Fatalf("%v", err) } want := run(t, []string{"/bin/hostname"}) if hostname != want { - t.Errorf("Hostname() = %q, want %q", hostname, want) + i := strings.Index(hostname, ".") + if i < 0 || hostname[0:i] != want { + t.Errorf("Hostname() = %q, want %q", hostname, want) + } } } -- cgit v1.2.3