From ad7bb569eb3aab6e5ee6c08c0b996ccfaf44de39 Mon Sep 17 00:00:00 2001 From: Filippo Valsorda Date: Sun, 7 Dec 2025 21:58:13 +0100 Subject: [PATCH] cmd/age: fix testscript setup races --- cmd/age/age_test.go | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/cmd/age/age_test.go b/cmd/age/age_test.go index 1781cf3..5213384 100644 --- a/cmd/age/age_test.go +++ b/cmd/age/age_test.go @@ -8,6 +8,7 @@ import ( "os" "os/exec" "path/filepath" + "sync" "testing" "filippo.io/age" @@ -50,21 +51,25 @@ func (testPlugin) Unwrap(ss []*age.Stanza) ([]byte, error) { return nil, age.ErrIncorrectIdentity } +var buildExtraCommands = sync.OnceValue(func() error { + bindir := filepath.SplitList(os.Getenv("PATH"))[0] + // Build age-keygen and age-plugin-pq into the test binary directory. + cmd := exec.Command("go", "build", "-o", bindir) + if testing.CoverMode() != "" { + cmd.Args = append(cmd.Args, "-cover") + } + cmd.Args = append(cmd.Args, "filippo.io/age/cmd/age-keygen") + cmd.Args = append(cmd.Args, "filippo.io/age/cmd/age-plugin-pq") + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr + return cmd.Run() +}) + func TestScript(t *testing.T) { testscript.Run(t, testscript.Params{ Dir: "testdata", Setup: func(e *testscript.Env) error { - bindir := filepath.SplitList(os.Getenv("PATH"))[0] - // Build age-keygen and age-plugin-pq into the test binary directory - cmd := exec.Command("go", "build", "-o", bindir) - if testing.CoverMode() != "" { - cmd.Args = append(cmd.Args, "-cover") - } - cmd.Args = append(cmd.Args, "filippo.io/age/cmd/age-keygen") - cmd.Args = append(cmd.Args, "filippo.io/age/cmd/age-plugin-pq") - cmd.Stdout = os.Stdout - cmd.Stderr = os.Stderr - return cmd.Run() + return buildExtraCommands() }, // TODO: enable AGEDEBUG=plugin without breaking stderr checks. })