cmd/testwrapper: only retry flaky failed tests

Redo the testwrapper to track and only retry flaky tests instead
of retrying the entire pkg. It also fails early if a non-flaky test fails.

This also makes it so that the go test caches are used.

Fixes #7975

Signed-off-by: Maisem Ali <maisem@tailscale.com>
This commit is contained in:
Maisem Ali
2023-02-14 17:57:02 -08:00
committed by Maisem Ali
parent 2cf6e12790
commit 8e840489ed
4 changed files with 232 additions and 55 deletions

View File

@@ -3,7 +3,10 @@
package flakytest
import "testing"
import (
"os"
"testing"
)
func TestIssueFormat(t *testing.T) {
testCases := []struct {
@@ -24,3 +27,14 @@ func TestIssueFormat(t *testing.T) {
}
}
}
func TestFlakeRun(t *testing.T) {
Mark(t, "https://github.com/tailscale/tailscale/issues/0") // random issue
e := os.Getenv(FlakeAttemptEnv)
if e == "" {
t.Skip("not running in testwrapper")
}
if e == "1" {
t.Fatal("failing on purpose")
}
}