aboutsummaryrefslogtreecommitdiff
path: root/weed/udptransfer/endpoint_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'weed/udptransfer/endpoint_test.go')
-rw-r--r--weed/udptransfer/endpoint_test.go42
1 files changed, 42 insertions, 0 deletions
diff --git a/weed/udptransfer/endpoint_test.go b/weed/udptransfer/endpoint_test.go
new file mode 100644
index 000000000..01be073bc
--- /dev/null
+++ b/weed/udptransfer/endpoint_test.go
@@ -0,0 +1,42 @@
+package udptransfer
+
+import (
+ "fmt"
+ "math/rand"
+ "sort"
+ "testing"
+)
+
+func Test_insert_delete_rid(t *testing.T) {
+ var a []uint32
+ var b = make([]uint32, 0, 1e3)
+ var uniq = make(map[uint32]int)
+ // insert into a with random
+ for i := 0; i < cap(b); i++ {
+ n := uint32(rand.Int31())
+ if _, y := uniq[n]; !y {
+ b = append(b, n)
+ uniq[n] = 1
+ }
+ dups := 1
+ if i&0xf == 0xf {
+ dups = 3
+ }
+ for j := 0; j < dups; j++ {
+ if aa := insertRid(a, n); aa != nil {
+ a = aa
+ }
+ }
+ }
+ sort.Sort(u32Slice(b))
+ bStr := fmt.Sprintf("%d", b)
+ aStr := fmt.Sprintf("%d", a)
+ assert(aStr == bStr, t, "a!=b")
+
+ for i := 0; i < len(b); i++ {
+ if aa := deleteRid(a, b[i]); aa != nil {
+ a = aa
+ }
+ }
+ assert(len(a) == 0, t, "a!=0")
+}