mirror of
https://github.com/golang/sys.git
synced 2026-02-08 11:46:04 +03:00
On AIX, Stat_t's fields dealing with time are of type StTimespec while all other GOOS are using Timespec. StTimespec and Timespec are the same on ppc but not in ppc64. Therefore, values returned by ppc64 syscalls need to be adjusted in order to allow the use of Timespec instead of StTimespec. Fixes golang/go#32073 Change-Id: I0c212bf1741a27c49e995bf928d4941b6d583e54 Reviewed-on: https://go-review.googlesource.com/c/sys/+/177838 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
75 lines
1.5 KiB
Go
75 lines
1.5 KiB
Go
// Copyright 2013 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 aix darwin dragonfly freebsd linux netbsd openbsd solaris
|
|
|
|
package unix_test
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
|
|
"golang.org/x/sys/unix"
|
|
)
|
|
|
|
func testSetGetenv(t *testing.T, key, value string) {
|
|
err := unix.Setenv(key, value)
|
|
if err != nil {
|
|
t.Fatalf("Setenv failed to set %q: %v", value, err)
|
|
}
|
|
newvalue, found := unix.Getenv(key)
|
|
if !found {
|
|
t.Fatalf("Getenv failed to find %v variable (want value %q)", key, value)
|
|
}
|
|
if newvalue != value {
|
|
t.Fatalf("Getenv(%v) = %q; want %q", key, newvalue, value)
|
|
}
|
|
}
|
|
|
|
func TestEnv(t *testing.T) {
|
|
testSetGetenv(t, "TESTENV", "AVALUE")
|
|
// make sure TESTENV gets set to "", not deleted
|
|
testSetGetenv(t, "TESTENV", "")
|
|
}
|
|
|
|
func TestItoa(t *testing.T) {
|
|
// Make most negative integer: 0x8000...
|
|
i := 1
|
|
for i<<1 != 0 {
|
|
i <<= 1
|
|
}
|
|
if i >= 0 {
|
|
t.Fatal("bad math")
|
|
}
|
|
s := unix.Itoa(i)
|
|
f := fmt.Sprint(i)
|
|
if s != f {
|
|
t.Fatalf("itoa(%d) = %s, want %s", i, s, f)
|
|
}
|
|
}
|
|
|
|
func TestUname(t *testing.T) {
|
|
var utsname unix.Utsname
|
|
err := unix.Uname(&utsname)
|
|
if err != nil {
|
|
t.Fatalf("Uname: %v", err)
|
|
}
|
|
|
|
t.Logf("OS: %s/%s %s", utsname.Sysname[:], utsname.Machine[:], utsname.Release[:])
|
|
}
|
|
|
|
// Test that this compiles. (Issue #31735)
|
|
func TestStatFieldNames(t *testing.T) {
|
|
var st unix.Stat_t
|
|
var ts *unix.Timespec
|
|
ts = &st.Atim
|
|
ts = &st.Mtim
|
|
ts = &st.Ctim
|
|
_ = ts
|
|
secs := int64(st.Mtim.Sec)
|
|
nsecs := int64(st.Mtim.Nsec)
|
|
_ = secs
|
|
_ = nsecs
|
|
}
|