@@ -14,6 +14,7 @@ import (
1414 "testing"
1515 "time"
1616
17+ "github.com/bazelbuild/bazel-watcher/internal/utils"
1718 "github.com/bazelbuild/rules_go/go/tools/bazel_testing"
1819)
1920
@@ -22,6 +23,10 @@ const (
2223 defaultDelay = 50 * time .Second
2324)
2425
26+ var defaultFlags = []string {
27+ "--graceful_termination_wait_duration=1s" ,
28+ }
29+
2530type IBazelTester struct {
2631 t * testing.T
2732 ibazelLogFile string
@@ -35,7 +40,7 @@ type IBazelTester struct {
3540}
3641
3742func NewIBazelTester (t * testing.T ) * IBazelTester {
38- f , err := ioutil . TempFile ("" , "ibazel_output.*.log" )
43+ f , err := os . CreateTemp ("" , "ibazel_output.*.log" )
3944 if err != nil {
4045 panic (fmt .Sprintf ("Error ioutil.Tempfile: %v" , err ))
4146 }
@@ -66,13 +71,14 @@ func (i *IBazelTester) Test(bazelArgs []string, targets ...string) {
6671 args := []string {"--bazel_path=" + i .bazelPath ()}
6772 args = append (args ,
6873 "--log_to_file=" + i .ibazelLogFile ,
69- "--graceful_termination_wait_duration=1s" )
74+ )
7075 args = append (args , "test" )
71- args = append ( args , "--bazelrc=/dev/null" )
76+ bazelArgs = utils . EnsureBazel8Compatibility ( bazelArgs )
7277 args = append (args , targets ... )
7378 args = append (args , bazelArgs ... )
7479 i .cmd = exec .Command (ibazelPath , args ... )
75- i .t .Logf ("ibazel invoked as: %s" , strings .Join (i .cmd .Args , " " ))
80+ i .t .Logf ("ibazel invoked in %s as: %s" , i .cmd .Dir ,
81+ strings .Join (i .cmd .Args , " " ))
7682
7783 i .stdoutBuffer = & Buffer {}
7884 i .cmd .Stdout = i .stdoutBuffer
@@ -89,15 +95,17 @@ func (i *IBazelTester) Coverage(bazelArgs []string, targets ...string) {
8995 i .t .Helper ()
9096
9197 args := []string {"--bazel_path=" + i .bazelPath ()}
98+ args = append (args , defaultFlags ... )
9299 args = append (args ,
93100 "--log_to_file=" + i .ibazelLogFile ,
94- "--graceful_termination_wait_duration=1s" )
101+ )
95102 args = append (args , "coverage" )
96- args = append ( args , "--bazelrc=/dev/null" )
103+ bazelArgs = utils . EnsureBazel8Compatibility ( bazelArgs )
97104 args = append (args , targets ... )
98105 args = append (args , bazelArgs ... )
99106 i .cmd = exec .Command (ibazelPath , args ... )
100- i .t .Logf ("ibazel invoked as: %s" , strings .Join (i .cmd .Args , " " ))
107+ i .t .Logf ("ibazel invoked in %s as: %s" , i .cmd .Dir ,
108+ strings .Join (i .cmd .Args , " " ))
101109
102110 i .stdoutBuffer = & Buffer {}
103111 i .cmd .Stdout = i .stdoutBuffer
@@ -112,24 +120,22 @@ func (i *IBazelTester) Coverage(bazelArgs []string, targets ...string) {
112120
113121func (i * IBazelTester ) Run (bazelArgs []string , target string ) {
114122 i .t .Helper ()
115- i .run (target , bazelArgs , []string {
116- "--log_to_file=" + i .ibazelLogFile ,
117- "--graceful_termination_wait_duration=1s" ,
118- })
123+ i .run (target , utils .EnsureBazel8Compatibility (bazelArgs ), append (defaultFlags ,
124+ "--log_to_file=" + i .ibazelLogFile ,
125+ ))
119126}
120127
121128func (i * IBazelTester ) RunWithProfiler (target string , profiler string ) {
122129 i .t .Helper ()
123- i .run (target , []string {}, []string {
124- "--log_to_file=" + i .ibazelLogFile ,
125- "--graceful_termination_wait_duration=1s" ,
126- "--profile_dev=" + profiler ,
127- })
130+ i .run (target , utils .EnsureBazel8Compatibility ([]string {}), append (defaultFlags ,
131+ "--log_to_file=" + i .ibazelLogFile ,
132+ "--profile_dev=" + profiler ,
133+ ))
128134}
129135
130136func (i * IBazelTester ) RunWithBazelFixCommands (target string ) {
131137 i .t .Helper ()
132- i .run (target , []string {}, []string {
138+ i .run (target , utils . EnsureBazel8Compatibility ( []string {}) , []string {
133139 "--log_to_file=" + i .ibazelLogFile ,
134140 "--graceful_termination_wait_duration=1s" ,
135141 "--run_output=true" ,
@@ -139,13 +145,13 @@ func (i *IBazelTester) RunWithBazelFixCommands(target string) {
139145
140146func (i * IBazelTester ) RunWithAdditionalArgs (target string , additionalArgs []string ) {
141147 i .t .Helper ()
142- i .run (target , []string {}, additionalArgs )
148+ i .run (target , utils . EnsureBazel8Compatibility ( []string {}) , additionalArgs )
143149}
144150
145151func (i * IBazelTester ) RunUnverifiedWithAdditionalArgs (target string , additionalArgs []string ) {
146152 i .t .Helper ()
147153 prebuild := false
148- i .runUnverified (target , []string {}, additionalArgs , prebuild )
154+ i .runUnverified (target , utils . EnsureBazel8Compatibility ( []string {}) , additionalArgs , prebuild )
149155}
150156
151157func (i * IBazelTester ) GetOutput () string {
@@ -415,15 +421,17 @@ func (i *IBazelTester) runUnverified(target string, bazelArgs []string, addition
415421 args := []string {"--bazel_path=" + i .bazelPath ()}
416422 args = append (args , additionalArgs ... )
417423 args = append (args , "run" )
418- args = append ( args , "--bazelrc=/dev/null" )
424+
419425 args = append (args , target )
420426 args = append (args , bazelArgs ... )
421427 i .cmd = exec .Command (ibazelPath , args ... )
422- i .t .Logf ("ibazel invoked as: %s" , strings .Join (i .cmd .Args , " " ))
428+ i .t .Logf ("ibazel invoked in %s as: %s in: %s" ,
429+ i .cmd .Dir , strings .Join (i .cmd .Args , " " ),
430+ os .Getenv ("TEST_TMPDIR" ))
423431
424432 checkArgs := []string {"build" }
425433 checkArgs = append (checkArgs , target )
426- checkArgs = append (checkArgs , bazelArgs ... )
434+ checkArgs = append (checkArgs , utils . EnsureBazel8Compatibility ( bazelArgs ) ... )
427435 cmd := bazel_testing .BazelCmd (checkArgs ... )
428436
429437 var buildStdout , buildStderr bytes.Buffer
@@ -436,6 +444,8 @@ func (i *IBazelTester) runUnverified(target string, bazelArgs []string, addition
436444 if exitErr , ok := err .(* exec.ExitError ); ok {
437445 status := exitErr .Sys ().(syscall.WaitStatus )
438446 i .t .Fatalf ("Unable to build target. Error code: %d\n Stdout:\n %s\n Stderr:\n %s" , status .ExitStatus (), buildStdout .String (), buildStderr .String ())
447+ } else {
448+ i .t .Fatalf ("Unable to build target. %v" , err )
439449 }
440450 }
441451 }
0 commit comments