@@ -28,42 +28,45 @@ var (
2828)
2929
3030func TestMain (m * testing.M ) {
31+ os .Exit (runMain (m ))
32+ }
33+
34+ func runMain (m * testing.M ) int {
3135 cfg = harness .LoadConfig ()
3236 if missing := cfg .MissingVars (); len (missing ) > 0 {
3337 fmt .Fprintf (os .Stderr , "Skipping CLI e2e tests — missing env vars: %v\n " , missing )
3438 fmt .Fprintln (os .Stderr , "Set FIZZY_TEST_TOKEN and FIZZY_TEST_ACCOUNT to run these tests." )
35- os . Exit ( 0 )
39+ return 0
3640 }
3741
3842 if ! fileExists (cfg .BinaryPath ) {
3943 repoRoot , err := harness .RepoRoot ()
4044 if err != nil {
4145 fmt .Fprintln (os .Stderr , err .Error ())
42- os . Exit ( 1 )
46+ return 1
4347 }
4448 tmpDir , err := os .MkdirTemp ("" , "fizzy-e2e-cli-build-*" )
4549 if err != nil {
4650 fmt .Fprintln (os .Stderr , err .Error ())
47- os . Exit ( 1 )
51+ return 1
4852 }
53+ defer os .RemoveAll (tmpDir )
4954 binPath := filepath .Join (tmpDir , "fizzy" )
5055 cmd := exec .Command ("go" , "build" , "-o" , binPath , "./cmd/fizzy" )
5156 cmd .Dir = repoRoot
5257 if out , err := cmd .CombinedOutput (); err != nil {
53- _ = os .RemoveAll (tmpDir )
5458 fmt .Fprintf (os .Stderr , "failed to build binary: %v\n %s\n " , err , string (out ))
55- os . Exit ( 1 )
59+ return 1
5660 }
5761 _ = os .Setenv ("FIZZY_TEST_BINARY" , binPath )
5862 cfg .BinaryPath = binPath
59- defer os .RemoveAll (tmpDir )
6063 }
6164
6265 var err error
6366 fixture , err = harness .NewSharedFixture (cfg )
6467 if err != nil {
6568 fmt .Fprintf (os .Stderr , "fixture setup failed: %v\n " , err )
66- os . Exit ( 1 )
69+ return 1
6770 }
6871 printFixtureInfo ()
6972
@@ -72,7 +75,7 @@ func TestMain(m *testing.M) {
7275 if os .Getenv ("FIZZY_E2E_KEEP_FIXTURE" ) == "1" {
7376 fmt .Fprintln (os .Stderr , "Keeping CLI e2e fixture (FIZZY_E2E_KEEP_FIXTURE=1)" )
7477 printFixtureInfo ()
75- os . Exit ( code )
78+ return code
7679 }
7780 if delay := teardownDelay (); delay > 0 {
7881 fmt .Fprintf (os .Stderr , "Delaying CLI e2e fixture teardown for %s\n " , delay )
@@ -82,7 +85,7 @@ func TestMain(m *testing.M) {
8285 if err := fixture .Teardown (); err != nil {
8386 fmt .Fprintf (os .Stderr , "warning: fixture teardown error: %v\n " , err )
8487 }
85- os . Exit ( code )
88+ return code
8689}
8790
8891func printFixtureInfo () {
0 commit comments