Skip to content

Commit c7e8365

Browse files
committed
daemon: refactor watchdog tests
1 parent bce6abe commit c7e8365

File tree

1 file changed

+46
-87
lines changed

1 file changed

+46
-87
lines changed

daemon/watchdog_test.go

Lines changed: 46 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -18,105 +18,64 @@ import (
1818
"os"
1919
"strconv"
2020
"testing"
21+
"time"
2122
)
2223

23-
func TestSdWatchdogEnabled(t *testing.T) {
24-
// (time, nil)
25-
err := os.Setenv("WATCHDOG_USEC", "100")
26-
if err != nil {
27-
panic(err)
28-
}
29-
err = os.Setenv("WATCHDOG_PID", strconv.Itoa(os.Getpid()))
24+
func must(err error) {
3025
if err != nil {
3126
panic(err)
3227
}
28+
}
3329

34-
delay, err := SdWatchdogEnabled()
35-
if delay == 0 || err != nil {
36-
t.Errorf("TEST: Watchdog enabled FAILED")
37-
}
30+
func TestSdWatchdogEnabled(t *testing.T) {
31+
mypid := strconv.Itoa(os.Getpid())
32+
tests := []struct {
33+
usec string // empty => unset
34+
pid string // empty => unset
3835

39-
// (0, nil) PID doesnt match
40-
err = os.Setenv("WATCHDOG_USEC", "100")
41-
if err != nil {
42-
panic(err)
43-
}
44-
err = os.Setenv("WATCHDOG_PID", "0")
45-
if err != nil {
46-
panic(err)
47-
}
48-
delay, err = SdWatchdogEnabled()
49-
if delay != 0 || err != nil {
50-
t.Errorf("TEST: PID doesn't match FAILED")
51-
}
36+
werr bool
37+
wdelay time.Duration
38+
}{
39+
// Success cases
40+
{"100", mypid, false, 100 * time.Microsecond},
41+
{"50", mypid, false, 50 * time.Microsecond},
42+
{"1", mypid, false, 1 * time.Microsecond},
5243

53-
// (0, nil) WATCHDOG_USEC doen't exist
54-
err = os.Unsetenv("WATCHDOG_USEC")
55-
if err != nil {
56-
panic(err)
57-
}
58-
err = os.Setenv("WATCHDOG_PID", strconv.Itoa(os.Getpid()))
59-
if err != nil {
60-
panic(err)
61-
}
62-
delay, err = SdWatchdogEnabled()
63-
if delay != 0 || err != nil {
64-
t.Errorf("TEST: WATCHDOG_USEC doen't exist FAILED")
65-
}
44+
// No-op cases
45+
{"", mypid, false, 0}, // WATCHDOG_USEC not set
46+
{"1", "", false, 0}, // WATCHDOG_PID not set
47+
{"1", "0", false, 0}, // WATCHDOG_PID doesn't match
48+
{"", "", false, 0}, // Both not set
6649

67-
// (0, nil) WATCHDOG_PID doen't exist
68-
err = os.Setenv("WATCHDOG_USEC", "1")
69-
if err != nil {
70-
panic(err)
71-
}
72-
err = os.Unsetenv("WATCHDOG_PID")
73-
if err != nil {
74-
panic(err)
75-
}
76-
delay, err = SdWatchdogEnabled()
77-
if delay != 0 || err != nil {
78-
t.Errorf("TEST: WATCHDOG_PID doen't exist FAILED")
50+
// Failure cases
51+
{"-1", mypid, true, 0}, // Negative USEC
52+
{"string", "1", true, 0}, // Non-integer USEC value
53+
{"1", "string", true, 0}, // Non-integer PID value
54+
{"stringa", "stringb", true, 0}, // E v e r y t h i n g
55+
{"-10239", "-eleventythree", true, 0}, // i s w r o n g
7956
}
8057

81-
// (0, err) USEC negative
82-
err = os.Setenv("WATCHDOG_USEC", "-1")
83-
if err != nil {
84-
panic(err)
85-
}
86-
err = os.Setenv("WATCHDOG_PID", strconv.Itoa(os.Getpid()))
87-
if err != nil {
88-
panic(err)
89-
}
90-
_, err = SdWatchdogEnabled()
91-
if err == nil {
92-
t.Errorf("TEST: USEC negative FAILED")
93-
}
58+
for i, tt := range tests {
59+
if tt.usec != "" {
60+
must(os.Setenv("WATCHDOG_USEC", tt.usec))
61+
} else {
62+
must(os.Unsetenv("WATCHDOG_USEC"))
63+
}
64+
if tt.pid != "" {
65+
must(os.Setenv("WATCHDOG_PID", tt.pid))
66+
} else {
67+
must(os.Unsetenv("WATCHDOG_PID"))
68+
}
9469

95-
// (0, err) Bad USEC
96-
err = os.Setenv("WATCHDOG_USEC", "string")
97-
if err != nil {
98-
panic(err)
99-
}
100-
err = os.Setenv("WATCHDOG_PID", strconv.Itoa(os.Getpid()))
101-
if err != nil {
102-
panic(err)
103-
}
104-
_, err = SdWatchdogEnabled()
105-
if err == nil {
106-
t.Errorf("TEST: Bad USEC FAILED")
107-
}
70+
delay, err := SdWatchdogEnabled()
10871

109-
// (0, err) Bad PID
110-
err = os.Setenv("WATCHDOG_USEC", "1")
111-
if err != nil {
112-
panic(err)
113-
}
114-
err = os.Setenv("WATCHDOG_PID", "string")
115-
if err != nil {
116-
panic(err)
117-
}
118-
_, err = SdWatchdogEnabled()
119-
if err == nil {
120-
t.Errorf("TEST: Bad PID FAILED")
72+
if tt.werr && err == nil {
73+
t.Errorf("#%d: want non-nil err, got nil", i)
74+
} else if !tt.werr && err != nil {
75+
t.Errorf("#%d: want nil err, got %v", i, err)
76+
}
77+
if tt.wdelay != delay {
78+
t.Errorf("#%d: want delay=%d, got %d", i, tt.wdelay, delay)
79+
}
12180
}
12281
}

0 commit comments

Comments
 (0)