浏览代码

pkg/signal.TestTrap: use a subtest

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Sebastiaan van Stijn 6 年之前
父节点
当前提交
8f158db4ed
共有 1 个文件被更改,包括 14 次插入12 次删除
  1. 14 12
      pkg/signal/trap_linux_test.go

+ 14 - 12
pkg/signal/trap_linux_test.go

@@ -14,6 +14,7 @@ import (
 )
 )
 
 
 func buildTestBinary(t *testing.T, tmpdir string, prefix string) (string, string) {
 func buildTestBinary(t *testing.T, tmpdir string, prefix string) (string, string) {
+	t.Helper()
 	tmpDir, err := ioutil.TempDir(tmpdir, prefix)
 	tmpDir, err := ioutil.TempDir(tmpdir, prefix)
 	assert.NilError(t, err)
 	assert.NilError(t, err)
 	exePath := tmpDir + "/" + prefix
 	exePath := tmpDir + "/" + prefix
@@ -41,24 +42,25 @@ func TestTrap(t *testing.T) {
 	defer os.RemoveAll(tmpDir)
 	defer os.RemoveAll(tmpDir)
 
 
 	for _, v := range sigmap {
 	for _, v := range sigmap {
-		cmd := exec.Command(exePath)
-		cmd.Env = append(os.Environ(), "SIGNAL_TYPE="+v.name)
-		if v.multiple {
-			cmd.Env = append(cmd.Env, "IF_MULTIPLE=1")
-		}
-		err := cmd.Start()
-		assert.NilError(t, err)
-		err = cmd.Wait()
-		if e, ok := err.(*exec.ExitError); ok {
+		t.Run(v.name, func(t *testing.T) {
+			cmd := exec.Command(exePath)
+			cmd.Env = append(os.Environ(), "SIGNAL_TYPE="+v.name)
+			if v.multiple {
+				cmd.Env = append(cmd.Env, "IF_MULTIPLE=1")
+			}
+			err := cmd.Start()
+			assert.NilError(t, err)
+			err = cmd.Wait()
+			e, ok := err.(*exec.ExitError)
+			assert.Assert(t, ok, "expected exec.ExitError, got %T", e)
+
 			code := e.Sys().(syscall.WaitStatus).ExitStatus()
 			code := e.Sys().(syscall.WaitStatus).ExitStatus()
 			if v.multiple {
 			if v.multiple {
 				assert.Check(t, is.DeepEqual(128+int(v.signal.(syscall.Signal)), code))
 				assert.Check(t, is.DeepEqual(128+int(v.signal.(syscall.Signal)), code))
 			} else {
 			} else {
 				assert.Check(t, is.Equal(99, code))
 				assert.Check(t, is.Equal(99, code))
 			}
 			}
-			continue
-		}
-		t.Fatal("process didn't end with any error")
+		})
 	}
 	}
 
 
 }
 }