mirror of
https://github.com/netbirdio/gvisor.git
synced 2026-05-22 17:12:49 -07:00
Limit the scope when deleting test log directory on success
The code was deleting logs for all tests when a single test passed. Change it to delete only the logs relevant to the test at hand. Also fixed the benchmark lookup code, which was always generating a single empty benchmark entry if there were not benchmarks. PiperOrigin-RevId: 326311477
This commit is contained in:
committed by
gVisor bot
parent
d797f26666
commit
00b684ea7f
@@ -146,10 +146,13 @@ func ParseTestCases(testBin string, benchmarks bool, extraArgs ...string) ([]Tes
|
||||
return nil, fmt.Errorf("could not enumerate gtest benchmarks: %v\nstderr\n%s", err, exitErr.Stderr)
|
||||
}
|
||||
|
||||
out = []byte(strings.Trim(string(out), "\n"))
|
||||
benches := strings.Trim(string(out), "\n")
|
||||
if len(benches) == 0 {
|
||||
return t, nil
|
||||
}
|
||||
|
||||
// Parse benchmark output.
|
||||
for _, line := range strings.Split(string(out), "\n") {
|
||||
for _, line := range strings.Split(benches, "\n") {
|
||||
// Strip comments.
|
||||
line = strings.Split(line, "#")[0]
|
||||
|
||||
@@ -163,6 +166,5 @@ func ParseTestCases(testBin string, benchmarks bool, extraArgs ...string) ([]Tes
|
||||
benchmark: true,
|
||||
})
|
||||
}
|
||||
|
||||
return t, nil
|
||||
}
|
||||
|
||||
+16
-15
@@ -172,13 +172,14 @@ func runRunsc(tc gtest.TestCase, spec *specs.Spec) error {
|
||||
args = append(args, "-fsgofer-host-uds")
|
||||
}
|
||||
|
||||
undeclaredOutputsDir, ok := syscall.Getenv("TEST_UNDECLARED_OUTPUTS_DIR")
|
||||
if ok {
|
||||
tdir := filepath.Join(undeclaredOutputsDir, strings.Replace(name, "/", "_", -1))
|
||||
if err := os.MkdirAll(tdir, 0755); err != nil {
|
||||
testLogDir := ""
|
||||
if undeclaredOutputsDir, ok := syscall.Getenv("TEST_UNDECLARED_OUTPUTS_DIR"); ok {
|
||||
// Create log directory dedicated for this test.
|
||||
testLogDir = filepath.Join(undeclaredOutputsDir, strings.Replace(name, "/", "_", -1))
|
||||
if err := os.MkdirAll(testLogDir, 0755); err != nil {
|
||||
return fmt.Errorf("could not create test dir: %v", err)
|
||||
}
|
||||
debugLogDir, err := ioutil.TempDir(tdir, "runsc")
|
||||
debugLogDir, err := ioutil.TempDir(testLogDir, "runsc")
|
||||
if err != nil {
|
||||
return fmt.Errorf("could not create temp dir: %v", err)
|
||||
}
|
||||
@@ -227,10 +228,10 @@ func runRunsc(tc gtest.TestCase, spec *specs.Spec) error {
|
||||
dArgs := append([]string{}, args...)
|
||||
dArgs = append(dArgs, "-alsologtostderr=true", "debug", "--stacks", id)
|
||||
go func(dArgs []string) {
|
||||
cmd := exec.Command(*runscPath, dArgs...)
|
||||
cmd.Stdout = os.Stdout
|
||||
cmd.Stderr = os.Stderr
|
||||
cmd.Run()
|
||||
debug := exec.Command(*runscPath, dArgs...)
|
||||
debug.Stdout = os.Stdout
|
||||
debug.Stderr = os.Stderr
|
||||
debug.Run()
|
||||
done <- true
|
||||
}(dArgs)
|
||||
|
||||
@@ -245,17 +246,17 @@ func runRunsc(tc gtest.TestCase, spec *specs.Spec) error {
|
||||
dArgs = append(args, "debug",
|
||||
fmt.Sprintf("--signal=%d", syscall.SIGTERM),
|
||||
id)
|
||||
cmd := exec.Command(*runscPath, dArgs...)
|
||||
cmd.Stdout = os.Stdout
|
||||
cmd.Stderr = os.Stderr
|
||||
cmd.Run()
|
||||
signal := exec.Command(*runscPath, dArgs...)
|
||||
signal.Stdout = os.Stdout
|
||||
signal.Stderr = os.Stderr
|
||||
signal.Run()
|
||||
}()
|
||||
|
||||
err = cmd.Run()
|
||||
if err == nil {
|
||||
if err == nil && len(testLogDir) > 0 {
|
||||
// If the test passed, then we erase the log directory. This speeds up
|
||||
// uploading logs in continuous integration & saves on disk space.
|
||||
os.RemoveAll(undeclaredOutputsDir)
|
||||
os.RemoveAll(testLogDir)
|
||||
}
|
||||
|
||||
return err
|
||||
|
||||
Reference in New Issue
Block a user