mirror of
https://github.com/golang/go
synced 2024-11-25 07:57:56 -07:00
[release-branch.go1.23] os: fix Chtimes test flakes
It appears that some builders (notably, linux-arm) have some additional
security software installed, which apparently reads the files created by
tests. As a result, test file atime is changed, making the test fail
like these:
=== RUN TestChtimesOmit
...
os_test.go:1475: atime mismatch, got: "2024-07-30 18:42:03.450932494 +0000 UTC", want: "2024-07-30 18:42:02.450932494 +0000 UTC"
=== RUN TestChtimes
...
os_test.go:1539: AccessTime didn't go backwards; was=2024-07-31 20:45:53.390326147 +0000 UTC, after=2024-07-31 20:45:53.394326118 +0000 UTC
According to inode(7), atime is changed when more than 0 bytes are read
from the file. So, one possible solution to these flakes is to make the
test files empty, so no one can read more than 0 bytes from them.
For #68687
For #68663
Fixes #68812
Change-Id: Ib9234567883ef7b16ff8811e3360cd26c2d6bdab
Reviewed-on: https://go-review.googlesource.com/c/go/+/604315
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Kirill Kolyshkin <kolyshkin@gmail.com>
Reviewed-by: Robert Griesemer <gri@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Commit-Queue: Ian Lance Taylor <iant@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>
(cherry picked from commit 84266e1469
)
Reviewed-on: https://go-review.googlesource.com/c/go/+/604196
This commit is contained in:
parent
6885bad7dd
commit
dbecb416d1
@ -1376,8 +1376,7 @@ func TestChtimes(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
f := newFile(t)
|
||||
|
||||
f.Write([]byte("hello, world\n"))
|
||||
// This should be an empty file (see #68687, #68663).
|
||||
f.Close()
|
||||
|
||||
testChtimes(t, f.Name())
|
||||
@ -1395,12 +1394,9 @@ func TestChtimesOmit(t *testing.T) {
|
||||
func testChtimesOmit(t *testing.T, omitAt, omitMt bool) {
|
||||
t.Logf("omit atime: %v, mtime: %v", omitAt, omitMt)
|
||||
file := newFile(t)
|
||||
_, err := file.Write([]byte("hello, world\n"))
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
// This should be an empty file (see #68687, #68663).
|
||||
name := file.Name()
|
||||
err = file.Close()
|
||||
err := file.Close()
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user