golang / go

The Go programming language
https://go.dev
BSD 3-Clause "New" or "Revised" License
124.37k stars 17.71k forks source link

x/build: number of test failures #22254

Open kevinburke opened 7 years ago

kevinburke commented 7 years ago

In lieu of an automated builder, I run the x/build tests in Travis CI. @andybons has fixed two problems with cmd/cl and with cloud.google.com depedencies, but this has revealed a number of underlying test failures:

--- FAIL: TestConnAgainstNetTest (2.03s)
    revdial_test.go:236: warning: the revdial's SetWriteDeadline support is not complete; some tests involving write deadlines known to be flaky
    --- PASS: TestConnAgainstNetTest/BasicIO (0.41s)
    --- PASS: TestConnAgainstNetTest/PingPong (0.19s)
    --- PASS: TestConnAgainstNetTest/RacyRead (0.34s)
    --- FAIL: TestConnAgainstNetTest/RacyWrite (0.42s)
        testing.go:610: race detected during execution of test

TestCorpusCheck causes the entire Go corpus to download to the test instance, which eventually runs out of memory.

2017/10/13 18:26:13 Downloading 9495471 bytes of https://maintner.golang.org/logs/27 ...
2017/10/13 18:26:13 wrote /home/travis/.cache/golang-maintner/0027.growing.mutlog
fatal error: runtime: out of memory

Also, we need to update the go-github version for the gitmirror Docker file, I believe; IsPullRequest was added very recently.

src/golang.org/x/build/maintner/github.go:802: d.b.IsPullRequest undefined (type *github.Issue has no field or method IsPullRequest)
Removing intermediate container 65ca938e2dcb
The command '/bin/sh -c go install golang.org/x/build/cmd/gitmirror' returned a non-zero code: 2
make: *** [build0] Error 2
kevinburke commented 7 years ago

These may be good issues for beginners; here's the .travis.yml file I'm using.

sudo: required
language: go
go_import_path: golang.org/x/build

services:
  - docker

before_install:
  # Hack to work around https://github.com/golang/go/issues/20423.
  - go get go4.org/syncutil

go:
  - 1.8
  - 1.9
  - tip

script:
  - go vet ./... || true
  - go test -v -race ./...
  - pushd cmd/coordinator && make docker-staging && popd
  - pushd cmd/gitmirror && make docker-staging && popd
  - pushd cmd/gopherbot && make docker-staging && popd
  - pushd cmd/pubsubhelper && make docker-staging && popd
  - pushd devapp && make docker-staging && popd
  - pushd maintner/maintnerd && make docker-staging && popd
judepereira commented 7 years ago

What do you think is best for TestCorpusCheck? Maybe generate some fake test data on the fly? I think that'd involve fixing other tests where they're explicitly looking for a particular commit ID, parent and so on.