aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/pkg/net_test.go
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2026-04-17 18:56:43 +0900
committerOphestra <cat@gensokyo.uk>2026-04-17 19:33:21 +0900
commit3942272c3039b16e4731855641887f2442a2dc79 (patch)
treefed36b66fab2bd3883cecb14a1851bad81e0ce4e /internal/pkg/net_test.go
parent90369861568d38737001f1d7e1304e6914675359 (diff)
internal/pkg: fine-grained cancellation
This enables a specific artifact to be targeted for cancellation. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/pkg/net_test.go')
-rw-r--r--internal/pkg/net_test.go28
1 files changed, 8 insertions, 20 deletions
diff --git a/internal/pkg/net_test.go b/internal/pkg/net_test.go
index f525efbd..23c39356 100644
--- a/internal/pkg/net_test.go
+++ b/internal/pkg/net_test.go
@@ -8,7 +8,6 @@ import (
"testing"
"testing/fstest"
"unique"
- "unsafe"
"hakurei.app/check"
"hakurei.app/internal/pkg"
@@ -33,20 +32,14 @@ func TestHTTPGet(t *testing.T) {
checkWithCache(t, []cacheTestCase{
{"direct", pkg.CValidateKnown, nil, func(t *testing.T, base *check.Absolute, c *pkg.Cache) {
- var r pkg.RContext
- rCacheVal := reflect.ValueOf(&r).Elem().FieldByName("cache")
- reflect.NewAt(
- rCacheVal.Type(),
- unsafe.Pointer(rCacheVal.UnsafeAddr()),
- ).Elem().Set(reflect.ValueOf(c))
-
+ r := newRContext(t, c)
f := pkg.NewHTTPGet(
&client,
"file:///testdata",
testdataChecksum.Value(),
)
var got []byte
- if rc, err := f.Cure(&r); err != nil {
+ if rc, err := f.Cure(r); err != nil {
t.Fatalf("Cure: error = %v", err)
} else if got, err = io.ReadAll(rc); err != nil {
t.Fatalf("ReadAll: error = %v", err)
@@ -65,7 +58,7 @@ func TestHTTPGet(t *testing.T) {
wantErrMismatch := &pkg.ChecksumMismatchError{
Got: testdataChecksum.Value(),
}
- if rc, err := f.Cure(&r); err != nil {
+ if rc, err := f.Cure(r); err != nil {
t.Fatalf("Cure: error = %v", err)
} else if got, err = io.ReadAll(rc); err != nil {
t.Fatalf("ReadAll: error = %v", err)
@@ -76,7 +69,7 @@ func TestHTTPGet(t *testing.T) {
}
// check fallback validation
- if rc, err := f.Cure(&r); err != nil {
+ if rc, err := f.Cure(r); err != nil {
t.Fatalf("Cure: error = %v", err)
} else if err = rc.Close(); !reflect.DeepEqual(err, wantErrMismatch) {
t.Fatalf("Close: error = %#v, want %#v", err, wantErrMismatch)
@@ -89,18 +82,13 @@ func TestHTTPGet(t *testing.T) {
pkg.Checksum{},
)
wantErrNotFound := pkg.ResponseStatusError(http.StatusNotFound)
- if _, err := f.Cure(&r); !reflect.DeepEqual(err, wantErrNotFound) {
+ if _, err := f.Cure(r); !reflect.DeepEqual(err, wantErrNotFound) {
t.Fatalf("Cure: error = %#v, want %#v", err, wantErrNotFound)
}
}, pkg.MustDecode("E4vEZKhCcL2gPZ2Tt59FS3lDng-d_2SKa2i5G_RbDfwGn6EemptFaGLPUDiOa94C")},
{"cure", pkg.CValidateKnown, nil, func(t *testing.T, base *check.Absolute, c *pkg.Cache) {
- var r pkg.RContext
- rCacheVal := reflect.ValueOf(&r).Elem().FieldByName("cache")
- reflect.NewAt(
- rCacheVal.Type(),
- unsafe.Pointer(rCacheVal.UnsafeAddr()),
- ).Elem().Set(reflect.ValueOf(c))
+ r := newRContext(t, c)
f := pkg.NewHTTPGet(
&client,
@@ -120,7 +108,7 @@ func TestHTTPGet(t *testing.T) {
}
var got []byte
- if rc, err := f.Cure(&r); err != nil {
+ if rc, err := f.Cure(r); err != nil {
t.Fatalf("Cure: error = %v", err)
} else if got, err = io.ReadAll(rc); err != nil {
t.Fatalf("ReadAll: error = %v", err)
@@ -136,7 +124,7 @@ func TestHTTPGet(t *testing.T) {
"file:///testdata",
testdataChecksum.Value(),
)
- if rc, err := f.Cure(&r); err != nil {
+ if rc, err := f.Cure(r); err != nil {
t.Fatalf("Cure: error = %v", err)
} else if got, err = io.ReadAll(rc); err != nil {
t.Fatalf("ReadAll: error = %v", err)