123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- 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)
- }
- }
|