From c93ca600eca4cee6dae2495772ae910eb768cec3 Mon Sep 17 00:00:00 2001 From: Fazlul Shahriar Date: Wed, 25 Jan 2012 00:15:44 -0800 Subject: [PATCH] os: pass tests on Plan 9 again R=golang-dev, rsc CC=golang-dev https://golang.org/cl/5563046 --- src/pkg/os/file_plan9.go | 12 ++++++------ src/pkg/os/stat_plan9.go | 5 +++++ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/pkg/os/file_plan9.go b/src/pkg/os/file_plan9.go index 6ee57ff239..7d136eb368 100644 --- a/src/pkg/os/file_plan9.go +++ b/src/pkg/os/file_plan9.go @@ -7,6 +7,7 @@ package os import ( "runtime" "syscall" + "time" ) // File represents an open file descriptor. @@ -299,15 +300,14 @@ func Chmod(name string, mode FileMode) error { // Chtimes changes the access and modification times of the named // file, similar to the Unix utime() or utimes() functions. // -// The argument times are in nanoseconds, although the underlying -// filesystem may truncate or round the values to a more -// coarse time unit. -func Chtimes(name string, atimeNs int64, mtimeNs int64) error { +// The underlying filesystem may truncate or round the values to a +// less precise time unit. +func Chtimes(name string, atime time.Time, mtime time.Time) error { var d Dir d.Null() - d.Atime = uint32(atimeNs / 1e9) - d.Mtime = uint32(mtimeNs / 1e9) + d.Atime = uint32(atime.Unix()) + d.Mtime = uint32(mtime.Unix()) if e := syscall.Wstat(name, pdir(nil, &d)); e != nil { return &PathError{"chtimes", name, e} diff --git a/src/pkg/os/stat_plan9.go b/src/pkg/os/stat_plan9.go index 8d3b8a84d5..f731e43740 100644 --- a/src/pkg/os/stat_plan9.go +++ b/src/pkg/os/stat_plan9.go @@ -97,3 +97,8 @@ func Stat(name string) (FileInfo, error) { func Lstat(name string) (FileInfo, error) { return Stat(name) } + +// For testing. +func atime(fi FileInfo) time.Time { + return time.Unix(int64(fi.(*FileStat).Sys.(*Dir).Atime), 0) +}