-
Notifications
You must be signed in to change notification settings - Fork 42
Expand file tree
/
Copy pathrun_state_test.go
More file actions
69 lines (60 loc) · 1.78 KB
/
Copy pathrun_state_test.go
File metadata and controls
69 lines (60 loc) · 1.78 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
package main
import (
"os"
"testing"
)
func TestRegisterRunningExtractionAppearsActiveAndReleases(t *testing.T) {
stateDir := t.TempDir()
oldStateDir := runningStateDir
oldProcessExists := processExists
runningStateDir = func() string { return stateDir }
processExists = func(pid int) bool { return pid == os.Getpid() }
t.Cleanup(func() {
runningStateDir = oldStateDir
processExists = oldProcessExists
})
release, err := registerRunningExtraction("device-1", "out")
if err != nil {
t.Fatalf("registerRunningExtraction returned error: %v", err)
}
active := activeRunningExtractionsBySerial()
state, ok := active["device-1"]
if !ok {
t.Fatal("device-1 was not found in active running extractions")
}
if state.StoragePath != "out" {
t.Fatalf("storage path = %q, want out", state.StoragePath)
}
release()
active = activeRunningExtractionsBySerial()
if _, ok := active["device-1"]; ok {
t.Fatal("device-1 remained active after release")
}
}
func TestActiveRunningExtractionsRemovesStaleState(t *testing.T) {
stateDir := t.TempDir()
oldStateDir := runningStateDir
oldProcessExists := processExists
runningStateDir = func() string { return stateDir }
processExists = func(int) bool { return false }
t.Cleanup(func() {
runningStateDir = oldStateDir
processExists = oldProcessExists
})
release, err := registerRunningExtraction("device-1", "out")
if err != nil {
t.Fatalf("registerRunningExtraction returned error: %v", err)
}
defer release()
active := activeRunningExtractionsBySerial()
if len(active) != 0 {
t.Fatalf("active state count = %d, want 0", len(active))
}
entries, err := os.ReadDir(stateDir)
if err != nil {
t.Fatalf("ReadDir returned error: %v", err)
}
if len(entries) != 0 {
t.Fatalf("state files remaining = %d, want 0", len(entries))
}
}