tests/thirdparty: add klauspost/compress/s2 (#131)

Adds @klauspost's S2 implementation to the third party test suite.

The full klauspost/compress tests are slow but we only care about the S2 sub-package. Therefore this PR also adds the option to only run a subset of the package tests, controlled by a "test" parameter in the JSON configuration.

Closes #130
This commit is contained in:
Michael McLoughlin
2020-01-28 23:27:12 -05:00
committed by GitHub
parent e089a6c93c
commit d51141dc8f
5 changed files with 40 additions and 2 deletions

View File

@@ -89,4 +89,4 @@ jobs:
uses: actions/checkout@v1 uses: actions/checkout@v1
- name: Run Third-Party Tests - name: Run Third-Party Tests
working-directory: ./tests/thirdparty working-directory: ./tests/thirdparty
run: go test -v -pkgs packages.json run: go test -pkgs packages.json

View File

@@ -14,6 +14,7 @@ type Package struct {
Version string `json:"version"` // git sha, tag or branch Version string `json:"version"` // git sha, tag or branch
Generate [][]string `json:"generate"` // generate commands to run Generate [][]string `json:"generate"` // generate commands to run
Dir string `json:"dir"` // working directory for generate commands Dir string `json:"dir"` // working directory for generate commands
Test string `json:"test"` // test path relative to repo root (if empty defaults to ./...)
} }
// Name returns the package name. // Name returns the package name.
@@ -26,6 +27,14 @@ func (p Package) CloneURL() string {
return "https://" + p.ImportPath + ".git" return "https://" + p.ImportPath + ".git"
} }
// TestPath returns the paths to run "go test" on, relative to the repository root.
func (p Package) TestPath() string {
if p.Test == "" {
return "./..."
}
return p.Test
}
// LoadPackages loads a list of package configurations from JSON format. // LoadPackages loads a list of package configurations from JSON format.
func LoadPackages(r io.Reader) ([]Package, error) { func LoadPackages(r io.Reader) ([]Package, error) {
var pkgs []Package var pkgs []Package

View File

@@ -19,6 +19,18 @@ func TestPackageCloneURL(t *testing.T) {
} }
} }
func TestPackagesTestPath(t *testing.T) {
p := Package{}
if p.TestPath() != "./..." {
t.Fail()
}
p.Test = "./sub"
if p.TestPath() != "./sub" {
t.Fail()
}
}
func TestLoadPackages(t *testing.T) { func TestLoadPackages(t *testing.T) {
r := strings.NewReader(`[{"unknown_field": "value"}]`) r := strings.NewReader(`[{"unknown_field": "value"}]`)
_, err := LoadPackages(r) _, err := LoadPackages(r)

View File

@@ -130,5 +130,22 @@
"primitivefuncs_amd64.s" "primitivefuncs_amd64.s"
] ]
] ]
},
{
"import_path": "github.com/klauspost/compress",
"version": "23a5980ed240fd76b89481403c834f48943b3788",
"dir": "s2",
"generate": [
[
"go",
"run",
"gen.go",
"-out",
"encodeblock_amd64.s",
"-stubs",
"encodeblock_amd64.go"
]
],
"test": "./s2"
} }
] ]

View File

@@ -145,7 +145,7 @@ func (t *PackageTest) diff() {
// test runs go test. // test runs go test.
func (t *PackageTest) test() { func (t *PackageTest) test() {
t.gotool("test", "./...") t.gotool("test", t.TestPath())
} }
// git runs a git command. // git runs a git command.