ignore swarm package when running tests for PR

This commit is contained in:
Trung Nguyen 2019-05-20 14:44:00 -04:00
parent 89f811a6a6
commit c8d9ed1741
No known key found for this signature in database
GPG Key ID: 4636434ED9505EB7
4 changed files with 85 additions and 10 deletions

View File

@ -74,20 +74,30 @@ matrix:
os: linux
dist: xenial
script:
- sudo modprobe fuse
- sudo chmod 666 /dev/fuse
- sudo chown root:$USER /etc/fuse.conf
- go run build/ci.go install
- go run build/ci.go test -coverage $TEST_PACKAGES
- |
sudo modprobe fuse
sudo chmod 666 /dev/fuse
sudo chown root:$USER /etc/fuse.conf
go run build/ci.go install
if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then
QUORUM_IGNORE_TEST_PACKAGES=github.com/ethereum/go-ethereum/swarm go run build/ci.go test -coverage $TEST_PACKAGES
else
go run build/ci.go test -coverage $TEST_PACKAGES
fi
- if: tag IS blank
os: osx
osx_image: xcode9.2 # so we don't have to deal with Kernel Extension Consent UI which is never possible in CI
script:
- brew update
- brew install caskroom/cask/brew-cask
- brew cask install osxfuse
- go run build/ci.go install
- go run build/ci.go test -coverage $TEST_PACKAGES
- |
brew update
brew install caskroom/cask/brew-cask
brew cask install osxfuse
go run build/ci.go install
if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then
QUORUM_IGNORE_TEST_PACKAGES=github.com/ethereum/go-ethereum/swarm go run build/ci.go test -coverage $TEST_PACKAGES
else
go run build/ci.go test -coverage $TEST_PACKAGES
fi
- if: tag IS present
os: linux

View File

@ -329,6 +329,7 @@ func doTest(cmdline []string) {
packages = flag.CommandLine.Args()
}
packages = build.ExpandPackagesNoVendor(packages)
packages = build.IgnorePackages(packages)
// Run the actual tests.
// Test a single package at a time. CI builders are slow

View File

@ -177,3 +177,27 @@ func ExpandPackagesNoVendor(patterns []string) []string {
}
return patterns
}
// Read QUORUM_IGNORE_TEST_PACKAGES env and remove from packages
func IgnorePackages(packages []string) []string {
ignore := os.Getenv("QUORUM_IGNORE_TEST_PACKAGES")
if ignore == "" {
return packages
}
ret := make([]string, 0, len(packages))
ignorePackages := strings.Split(ignore, ",")
for _, p := range packages {
mustInclude := true
for _, ig := range ignorePackages {
if strings.Index(p, strings.TrimSpace(ig)) == 0 {
mustInclude = false
break
}
}
if mustInclude {
ret = append(ret, p)
}
}
return ret
}

View File

@ -0,0 +1,40 @@
package build
import (
"os"
"testing"
testifyassert "github.com/stretchr/testify/assert"
)
func TestIgnorePackages_whenTypical(t *testing.T) {
assert := testifyassert.New(t)
arbitraryPackages := []string{"abc", "xyz/abc"}
actual := IgnorePackages(arbitraryPackages)
assert.Equal(arbitraryPackages, actual)
}
func TestIgnorePackages_whenIgnoreOnePackage(t *testing.T) {
assert := testifyassert.New(t)
arbitraryPackages := []string{"abc", "xyz/abc"}
assert.NoError(os.Setenv("QUORUM_IGNORE_TEST_PACKAGES", "abc"))
actual := IgnorePackages(arbitraryPackages)
assert.Equal([]string{arbitraryPackages[1]}, actual)
}
func TestIgnorePackages_whenIgnorePackages(t *testing.T) {
assert := testifyassert.New(t)
arbitraryPackages := []string{"abc", "xyz/abc/opq"}
assert.NoError(os.Setenv("QUORUM_IGNORE_TEST_PACKAGES", "abc, xyz/abc"))
actual := IgnorePackages(arbitraryPackages)
assert.Len(actual, 0)
}