Skip to content

Commit

Permalink
chore: update deps (#74)
Browse files Browse the repository at this point in the history
Signed-off-by: Tronje Krop <[email protected]>
  • Loading branch information
Tronje Krop committed Mar 6, 2024
1 parent 68ee813 commit 16f27f1
Showing 1 changed file with 52 additions and 0 deletions.
52 changes: 52 additions & 0 deletions cmd/mock/main_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
package main

import (
"errors"
"os"
"os/exec"
"testing"

"github.com/stretchr/testify/assert"
"github.com/tkrop/go-testing/test"
)

type MainParams struct {
args []string
expectExitCode int
}

var testMainParams = map[string]MainParams{
"no mock to generate": {
args: []string{"mock"},
expectExitCode: 0,
},
}

func TestMain(t *testing.T) {
test.Map(t, testMainParams).
Run(func(t test.Test, param MainParams) {
// Switch to execute main function in separate process.
if name := os.Getenv("TEST"); name != "" {
// Ensure only expected test is running.
if name == t.Name() {
os.Args = param.args
main()
assert.Fail(t, "os-exit not called")
}
// Skip other test.
return
}

// Call the main function in a separate process.
cmd := exec.Command(os.Args[0], "-test.run=TestMain")
cmd.Env = append(os.Environ(), "TEST="+t.Name())
if err := cmd.Run(); err != nil || param.expectExitCode != 0 {
errExit := &exec.ExitError{}
if errors.As(err, &errExit) {
assert.Equal(t, param.expectExitCode, errExit.ExitCode())
} else {
assert.Fail(t, "unexpected error", err)
}
}
})
}

0 comments on commit 16f27f1

Please sign in to comment.