mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
85 lines
1.5 KiB
Go
85 lines
1.5 KiB
Go
|
package main
|
||
|
|
||
|
import (
|
||
|
"os"
|
||
|
"path/filepath"
|
||
|
"reflect"
|
||
|
"sort"
|
||
|
"strings"
|
||
|
"testing"
|
||
|
)
|
||
|
|
||
|
func getRepoTopDir(t *testing.T) string {
|
||
|
wd, err := os.Getwd()
|
||
|
if err != nil {
|
||
|
t.Fatal(err)
|
||
|
}
|
||
|
wd = filepath.Clean(wd)
|
||
|
suffix := "hack/integration-cli-on-swarm/host"
|
||
|
if !strings.HasSuffix(wd, suffix) {
|
||
|
t.Skipf("cwd seems strange (needs to have suffix %s): %v", suffix, wd)
|
||
|
}
|
||
|
return filepath.Clean(filepath.Join(wd, "../../.."))
|
||
|
}
|
||
|
|
||
|
func TestEnumerateTests(t *testing.T) {
|
||
|
if testing.Short() {
|
||
|
t.Skip("skipping in short mode")
|
||
|
}
|
||
|
tests, err := enumerateTests(getRepoTopDir(t))
|
||
|
if err != nil {
|
||
|
t.Fatal(err)
|
||
|
}
|
||
|
sort.Strings(tests)
|
||
|
t.Logf("enumerated %d test filter strings:", len(tests))
|
||
|
for _, s := range tests {
|
||
|
t.Logf("- %q", s)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestEnumerateTestsForBytes(t *testing.T) {
|
||
|
b := []byte(`package main
|
||
|
import (
|
||
|
"github.com/go-check/check"
|
||
|
)
|
||
|
|
||
|
func (s *FooSuite) TestA(c *check.C) {
|
||
|
}
|
||
|
|
||
|
func (s *FooSuite) TestAAA(c *check.C) {
|
||
|
}
|
||
|
|
||
|
func (s *BarSuite) TestBar(c *check.C) {
|
||
|
}
|
||
|
|
||
|
func (x *FooSuite) TestC(c *check.C) {
|
||
|
}
|
||
|
|
||
|
func (*FooSuite) TestD(c *check.C) {
|
||
|
}
|
||
|
|
||
|
// should not be counted
|
||
|
func (s *FooSuite) testE(c *check.C) {
|
||
|
}
|
||
|
|
||
|
// counted, although we don't support ungofmt file
|
||
|
func (s *FooSuite) TestF (c *check.C){}
|
||
|
`)
|
||
|
expected := []string{
|
||
|
"FooSuite.TestA$",
|
||
|
"FooSuite.TestAAA$",
|
||
|
"BarSuite.TestBar$",
|
||
|
"FooSuite.TestC$",
|
||
|
"FooSuite.TestD$",
|
||
|
"FooSuite.TestF$",
|
||
|
}
|
||
|
|
||
|
actual, err := enumerateTestsForBytes(b)
|
||
|
if err != nil {
|
||
|
t.Fatal(err)
|
||
|
}
|
||
|
if !reflect.DeepEqual(expected, actual) {
|
||
|
t.Fatalf("expected %q, got %q", expected, actual)
|
||
|
}
|
||
|
}
|