Skip to content

Commit 38031c5

Browse files
committed
Add basic ranger test
1 parent a6756ee commit 38031c5

File tree

2 files changed

+59
-0
lines changed

2 files changed

+59
-0
lines changed

ranger/ranger_test.go

+58
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
package ranger
2+
3+
import (
4+
"context"
5+
"math/rand/v2"
6+
"net/http"
7+
"net/http/httptest"
8+
"os"
9+
"testing"
10+
)
11+
12+
func TestRanger(t *testing.T) {
13+
s := httptest.NewServer(http.FileServerFS(os.DirFS("./testdata")))
14+
defer s.Close()
15+
16+
uri := s.URL + "/gsip.tar"
17+
18+
t.Logf("uri: %q", uri)
19+
20+
ra := New(context.Background(), uri, s.Client().Transport)
21+
22+
f, err := os.Open("./testdata/gsip.tar")
23+
if err != nil {
24+
t.Fatal(err)
25+
}
26+
defer f.Close()
27+
28+
info, err := f.Stat()
29+
if err != nil {
30+
t.Fatal(err)
31+
}
32+
33+
size := info.Size()
34+
35+
// TODO: Pull this out into a test package.
36+
for range 100 {
37+
start := rand.Int64N(size)
38+
length := rand.Int64N(size - start)
39+
40+
if length == 0 {
41+
continue
42+
}
43+
44+
b := make([]byte, length)
45+
zb := make([]byte, length)
46+
47+
n, err := f.ReadAt(b, start)
48+
zn, zerr := ra.ReadAt(zb, start)
49+
50+
if err != zerr {
51+
t.Fatalf("ReadAt(%d, %d): %v != %v", start, len(b), err, zerr)
52+
}
53+
54+
if n != zn {
55+
t.Fatalf("ReadAt(%d, %d): %d != %d", start, len(b), n, zn)
56+
}
57+
}
58+
}

ranger/testdata

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../tarfs/testdata

0 commit comments

Comments
 (0)