commit | 4f1b1ecbe0bd173e7643040adfa9f263f96fdfbe | [log] [tgz] |
---|---|---|
author | Fumitoshi Ukai <ukai@google.com> | Mon Jan 22 08:48:44 2024 |
committer | LUCI CQ <infra-scoped@luci-project-accounts.iam.gserviceaccount.com> | Mon Jan 22 08:48:44 2024 |
tree | bbed0877e8878b4ace6ed7417107fcdb6bdd5206 | |
parent | 502d3aa6bef7d98a233594728e45036246b51ab4 [diff] |
siso: fix reproxy test error on recent go with recent version of go, execute/reproxyexec.TestRun_LocalFallback fails like this: ukai@ukai ...infra/build/siso % go version go version go1.22-20240109-RC01 cl/597041403 +dcbe772469 X:fieldtrack,boringcrypto linux/amd64 ukai@ukai ...infra/build/siso % CGO_ENABLED=0 go test ./execute/reproxyexec -run '.*LocalFallback' --- FAIL: TestRun_LocalFallback (0.02s) reproxyexec_test.go:236: fake reproxy at 127.0.0.1:46193 reproxyexec_test.go:290: hashFS.IOMetrics.Stats(): diff -want +got: iometrics.Stats{ Ops: 2, OpsErrs: 0, ROps: 1, - RBytes: 15, + RBytes: 0, RErrs: 0, WOps: 0, ... // 2 identical fields } reproxytest.go:66: Serve finished: accept tcp 127.0.0.1:46193: use of closed network connection FAIL FAIL infra/build/siso/execute/reproxyexec 0.046s FAIL This is because localFile embeds *os.File and io.Copy might use *os.File's Read method rather than localFile's Read method. This is because go dev implements WriteTo on *os.File and io.Copy uses WriteTo if available. go 1.21: https://go.dev/play/p/FK8_HO_3jjQ go dev: https://go.dev/play/p/FK8_HO_3jjQ?v=gotip No need to embed *os.File here, so use field rather than embed and make sure user of of localFile uses localFile's Read/Close method rather than *os.File's method. Change-Id: I4b139c2814c30e28007d1c8b22f9faa69e9c694b Reviewed-on: https://chromium-review.googlesource.com/c/infra/infra/+/5220966 Commit-Queue: Junji Watanabe <jwata@google.com> Reviewed-by: Takuto Ikuta <tikuta@chromium.org> Reviewed-by: Junji Watanabe <jwata@google.com> Auto-Submit: Fumitoshi Ukai <ukai@google.com> Cr-Commit-Position: refs/heads/main@{#62462}
Welcome to the Chrome Infra repository!
Wondering where to start? Check out General Chrome Infrastructure documentation. In particular, to check out this repo and the rest of the infrastructure code, follow the instructions here. The rest of this page is specific to this repo.
sys.path
modifications.git push origin <updated hash>:deployed
git push
commandIf you've added a new module, run your tests with test.py:
*_test.py
files to this directory.Double-check that your tests are getting picked up when you want them to be: ./test.py test <path-to-package>
.
Tests still not getting picked up by test.py? Double-check to make sure you have __init__.py
files in each directory of your module so Python recognizes it as a package.
The preferred style is PEP8 with two-space indent; that is, the Chromium Python style, except functions use lowercase_with_underscores
. Use yapf (git cl format
) to autoformat new code.