-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathoffset_marker_test.go
78 lines (60 loc) · 1.88 KB
/
offset_marker_test.go
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
70
71
72
73
74
75
76
77
78
package diskq
import (
"path/filepath"
"testing"
)
func Test_OffsetMarker_basic(t *testing.T) {
testPath, done := tempDir()
defer done()
offsetPath := filepath.Join(testPath, UUIDv4().String())
marker, found, err := OpenOrCreateOffsetMarker(offsetPath, OffsetMarkerOptions{})
assert_noerror(t, err)
assert_equal(t, false, found)
assert_equal(t, 0, marker.hasSetLatestOffset)
assert_nil(t, marker.Errors())
assert_equal(t, 0, marker.LatestOffset())
marker.SetLatestOffset(2)
assert_equal(t, 2, marker.LatestOffset())
err = marker.Sync()
assert_noerror(t, err)
err = marker.Close()
assert_noerror(t, err)
marker, found, err = OpenOrCreateOffsetMarker(offsetPath, OffsetMarkerOptions{})
assert_noerror(t, err)
assert_equal(t, true, found)
assert_equal(t, 1, marker.hasSetLatestOffset)
assert_nil(t, marker.Errors())
assert_equal(t, 2, marker.LatestOffset())
}
func Test_OffsetMarker_everyOffset(t *testing.T) {
testPath, done := tempDir()
defer done()
offsetPath := filepath.Join(testPath, UUIDv4().String())
marker, found, err := OpenOrCreateOffsetMarker(offsetPath, OffsetMarkerOptions{
AutosyncEveryOffset: 5,
})
assert_noerror(t, err)
assert_equal(t, false, found)
assert_equal(t, 0, marker.hasSetLatestOffset)
assert_notnil(t, marker.Errors())
assert_equal(t, 0, marker.LatestOffset())
err = marker.Sync()
assert_noerror(t, err)
stat, err := marker.file.Stat()
assert_noerror(t, err)
assert_equal(t, 0, stat.Size())
for x := 0; x < 10; x++ {
marker.SetLatestOffset(uint64(x))
assert_equal(t, 1, marker.hasSetLatestOffset)
}
assert_equal(t, 9, marker.LatestOffset())
err = marker.Close()
assert_noerror(t, err)
marker, found, err = OpenOrCreateOffsetMarker(offsetPath, OffsetMarkerOptions{
AutosyncEveryOffset: 5,
})
assert_noerror(t, err)
assert_equal(t, true, found)
assert_notnil(t, marker.Errors())
assert_equal(t, 9, marker.LatestOffset())
}