@@ -164,21 +164,26 @@ func Run(t *testing.T, testCases []Test, opt ...TestOpt) {
164
164
}
165
165
166
166
var sliceSplit int
167
- v , ok := os .LookupEnv ("TESTSLICE" )
168
- if ok {
169
- t .Logf ("TESTSLICE=%s" , v )
170
- offsetS , totalS , ok := strings .Cut (v , "-" )
171
- if ! ok {
172
- t .Fatalf ("invalid TESTSLICE=%s" , v )
173
- }
174
- offset , err := strconv .Atoi (offsetS )
175
- require .NoError (t , err )
176
- total , err := strconv .Atoi (totalS )
177
- require .NoError (t , err )
178
- if offset < 1 || total < 1 || offset > total {
179
- t .Fatalf ("invalid TESTSLICE=%s" , v )
167
+ if filter , ok := lookupTestFilter (); ok {
168
+ parts := strings .Split (filter , "/" )
169
+ if len (parts ) >= 2 {
170
+ const prefix = "slice="
171
+ if strings .HasPrefix (parts [1 ], prefix ) {
172
+ conf := strings .TrimPrefix (parts [1 ], prefix )
173
+ offsetS , totalS , ok := strings .Cut (conf , "-" )
174
+ if ! ok {
175
+ t .Fatalf ("invalid slice=%q" , conf )
176
+ }
177
+ offset , err := strconv .Atoi (offsetS )
178
+ require .NoError (t , err )
179
+ total , err := strconv .Atoi (totalS )
180
+ require .NoError (t , err )
181
+ if offset < 1 || total < 1 || offset > total {
182
+ t .Fatalf ("invalid slice=%q" , conf )
183
+ }
184
+ sliceSplit = total
185
+ }
180
186
}
181
- sliceSplit = total
182
187
}
183
188
184
189
var tc testConf
@@ -488,3 +493,13 @@ func UnixOrWindows[T any](unix, windows T) T {
488
493
}
489
494
return unix
490
495
}
496
+
497
+ func lookupTestFilter () (string , bool ) {
498
+ const prefix = "-test.run="
499
+ for _ , arg := range os .Args {
500
+ if strings .HasPrefix (arg , prefix ) {
501
+ return strings .TrimPrefix (arg , prefix ), true
502
+ }
503
+ }
504
+ return "" , false
505
+ }
0 commit comments