language/internal: use sub tests
Change-Id: If436bca5977cd99ea9c91f624649b391818bfeb1
Reviewed-on: https://go-review.googlesource.com/95829
Run-TryBot: Marcel van Lohuizen <mpvl@golang.org>
Reviewed-by: Nigel Tao <nigeltao@golang.org>
diff --git a/language/internal/language_test.go b/language/internal/language_test.go
index ecba137..2437b6e 100644
--- a/language/internal/language_test.go
+++ b/language/internal/language_test.go
@@ -34,7 +34,7 @@
}
func TestEquality(t *testing.T) {
- for i, tt := range parseTests()[48:49] {
+ for i, tt := range parseTests() {
s := tt.in
tag := Make(s)
t1 := Make(tag.String())
diff --git a/language/internal/parse_test.go b/language/internal/parse_test.go
index 7ed74eb..f0d6b48 100644
--- a/language/internal/parse_test.go
+++ b/language/internal/parse_test.go
@@ -256,43 +256,45 @@
}
// partChecks runs checks for each part by calling the function returned by f.
-func partChecks(t *testing.T, f func(*parseTest) (Tag, bool)) {
+func partChecks(t *testing.T, f func(*testing.T, *parseTest) (Tag, bool)) {
for i, tt := range parseTests() {
- tag, skip := f(&tt)
- if skip {
- continue
- }
- if l, _ := getLangID(b(tt.lang)); l != tag.LangID {
- t.Errorf("%d: lang was %q; want %q", i, tag.LangID, l)
- }
- if sc, _ := getScriptID(script, b(tt.script)); sc != tag.ScriptID {
- t.Errorf("%d: script was %q; want %q", i, tag.ScriptID, sc)
- }
- if r, _ := getRegionID(b(tt.region)); r != tag.RegionID {
- t.Errorf("%d: region was %q; want %q", i, tag.RegionID, r)
- }
- if tag.str == "" {
- continue
- }
- p := int(tag.pVariant)
- if p < int(tag.pExt) {
- p++
- }
- if s, g := tag.str[p:tag.pExt], tt.variants; s != g {
- t.Errorf("%d: variants was %q; want %q", i, s, g)
- }
- p = int(tag.pExt)
- if p > 0 && p < len(tag.str) {
- p++
- }
- if s, g := (tag.str)[p:], tt.ext; s != g {
- t.Errorf("%d: extensions were %q; want %q", i, s, g)
- }
+ t.Run(tt.in, func(t *testing.T) {
+ tag, skip := f(t, &tt)
+ if skip {
+ return
+ }
+ if l, _ := getLangID(b(tt.lang)); l != tag.LangID {
+ t.Errorf("%d: lang was %q; want %q", i, tag.LangID, l)
+ }
+ if sc, _ := getScriptID(script, b(tt.script)); sc != tag.ScriptID {
+ t.Errorf("%d: script was %q; want %q", i, tag.ScriptID, sc)
+ }
+ if r, _ := getRegionID(b(tt.region)); r != tag.RegionID {
+ t.Errorf("%d: region was %q; want %q", i, tag.RegionID, r)
+ }
+ if tag.str == "" {
+ return
+ }
+ p := int(tag.pVariant)
+ if p < int(tag.pExt) {
+ p++
+ }
+ if s, g := tag.str[p:tag.pExt], tt.variants; s != g {
+ t.Errorf("%d: variants was %q; want %q", i, s, g)
+ }
+ p = int(tag.pExt)
+ if p > 0 && p < len(tag.str) {
+ p++
+ }
+ if s, g := (tag.str)[p:], tt.ext; s != g {
+ t.Errorf("%d: extensions were %q; want %q", i, s, g)
+ }
+ })
}
}
func TestParseTag(t *testing.T) {
- partChecks(t, func(tt *parseTest) (id Tag, skip bool) {
+ partChecks(t, func(t *testing.T, tt *parseTest) (id Tag, skip bool) {
if strings.HasPrefix(tt.in, "x-") || tt.rewrite {
return Tag{}, true
}
@@ -306,7 +308,7 @@
}
func TestParse(t *testing.T) {
- partChecks(t, func(tt *parseTest) (id Tag, skip bool) {
+ partChecks(t, func(t *testing.T, tt *parseTest) (id Tag, skip bool) {
id, err := Parse(tt.in)
ext := ""
if id.str != "" {