On Fri, Sep 13, 2024 at 3:03 PM twp...@gmail.com <twpa...@gmail.com> wrote: > > tl;dr: umask is a system-wide global that affects go tests and should be > considered when validating go test's cache. > > > Motivation: > > I'm the author of a popular open source project that writes files to the > user's home directory and cares about getting exact file permissions correct. > The file permissions depend on the the current umask setting. As umask is a > process global variable, it cannot be set for individual tests, and so > separate tests are needed for different umasks. > > Currently changing the umask does not invalidate go test's cache, so I get > incorrect test results if I change the umask and re-run go test. > > > Suggested solution: > > Include umask as an op in go test's id calculation. > > > Next steps: > > * Is this something that the Go project would consider? > * If so, I would be happy to submit a CL.
Personally, I would approach this kind of thing by writing a test that sets the umask to various different values and invokes subtests with each umask value. That way the test is independent of the external environment. In general our approach has been that if your test intrinsically depends on the external environment, then you should run it with -test.run=1 to disable the test cache. Ian -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/CAOyqgcXLcoQ95EzKD%3DyUtkSxf3Yu%2BWAoKS6j5c20dko7HcjfzQ%40mail.gmail.com.