Skip to content

Commit 8b73505

Browse files
committed
x/tools/cmd/deadcode: return an end code.
return an end code when an unreachable code is detected. For: #66027
1 parent 7f348c7 commit 8b73505

File tree

2 files changed

+16
-7
lines changed

2 files changed

+16
-7
lines changed

Diff for: cmd/deadcode/deadcode.go

+3
Original file line numberDiff line numberDiff line change
@@ -348,6 +348,9 @@ func main() {
348348
format = *formatFlag
349349
}
350350
printObjects(format, packages)
351+
if len(packages) > 0 {
352+
os.Exit(1)
353+
}
351354
}
352355

353356
// prettyName is a fork of Function.String designed to reduce

Diff for: cmd/deadcode/deadcode_test.go

+13-7
Original file line numberDiff line numberDiff line change
@@ -113,17 +113,23 @@ func Test(t *testing.T) {
113113
cmd.Env = append(os.Environ(), "GOPROXY=", "GO111MODULE=on")
114114
var got string
115115
if err := cmd.Run(); err != nil {
116-
if !tc.wantErr {
117-
t.Fatalf("deadcode failed: %v (stderr=%s)", err, cmd.Stderr)
116+
switch err.(type) {
117+
case *exec.ExitError:
118+
if tc.wantErr {
119+
got = fmt.Sprint(cmd.Stderr)
120+
} else {
121+
// If an unreachable code is detected, exit code 1 is notified
122+
if cmd.ProcessState.ExitCode() != 1 {
123+
t.Fatalf("deadcode failed: %v", err)
124+
}
125+
got = fmt.Sprint(cmd.Stdout)
126+
}
127+
default:
128+
t.Fatalf("deadcode failed: %v", err)
118129
}
119-
got = fmt.Sprint(cmd.Stderr)
120130
} else {
121-
if tc.wantErr {
122-
t.Fatalf("deadcode succeeded unexpectedly (stdout=%s)", cmd.Stdout)
123-
}
124131
got = fmt.Sprint(cmd.Stdout)
125132
}
126-
127133
// Check each want directive.
128134
for str, sense := range tc.want {
129135
ok := true

0 commit comments

Comments
 (0)