aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/pkg/net_test.go
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2026-01-04 21:57:57 +0900
committerOphestra <cat@gensokyo.uk>2026-01-05 00:01:23 +0900
commit4897b0259edeb256a3d5cf77148758536e366e64 (patch)
tree23c9e0ff7bbc0f49d233381e6c17b4cc357a939c /internal/pkg/net_test.go
parentd6e4f85864a1e9b2aadc2e7f47e481242d5e946a (diff)
internal/pkg: improve artifact interface
This moves all cache I/O code to Cache. Artifact now only contains methods for constructing their actual contents. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/pkg/net_test.go')
-rw-r--r--internal/pkg/net_test.go92
1 files changed, 28 insertions, 64 deletions
diff --git a/internal/pkg/net_test.go b/internal/pkg/net_test.go
index 0466a4fc..2e2e2cec 100644
--- a/internal/pkg/net_test.go
+++ b/internal/pkg/net_test.go
@@ -34,7 +34,7 @@ func TestHTTP(t *testing.T) {
checkWithCache(t, []cacheTestCase{
{"direct", nil, func(t *testing.T, base *check.Absolute, c *pkg.Cache) {
var got []byte
- if f, err := c.NewHTTPGet(
+ if f, err := pkg.NewHTTPGet(
t.Context(),
&client,
"file:///testdata",
@@ -45,15 +45,15 @@ func TestHTTP(t *testing.T) {
t.Fatalf("Data: error = %v", err)
} else if string(got) != testdata {
t.Fatalf("Data: %x, want %x", got, testdata)
- } else if gotIdent := f.ID(); gotIdent != testdataChecksum {
- t.Fatalf("ID: %x, want %x", gotIdent, testdataChecksum)
+ } else if gotIdent := pkg.Ident(f); gotIdent != testdataChecksum {
+ t.Fatalf("Ident: %x, want %x", gotIdent, testdataChecksum)
}
// check direct validation
wantErrMismatch := &pkg.ChecksumMismatchError{
Got: testdataChecksum,
}
- if f, err := c.NewHTTPGet(
+ if f, err := pkg.NewHTTPGet(
t.Context(),
&client,
"file:///testdata",
@@ -62,13 +62,13 @@ func TestHTTP(t *testing.T) {
t.Fatalf("NewHTTPGet: error = %v", err)
} else if _, err = f.Data(); !reflect.DeepEqual(err, wantErrMismatch) {
t.Fatalf("Data: error = %#v, want %#v", err, wantErrMismatch)
- } else if gotIdent := f.ID(); gotIdent != (pkg.Checksum{}) {
- t.Fatalf("ID: %x, want %x", gotIdent, pkg.Checksum{})
+ } else if gotIdent := pkg.Ident(f); gotIdent != (pkg.Checksum{}) {
+ t.Fatalf("Ident: %x, want %x", gotIdent, pkg.Checksum{})
}
// check direct response error
wantErrNotFound := pkg.ResponseStatusError(http.StatusNotFound)
- if f, err := c.NewHTTPGet(
+ if f, err := pkg.NewHTTPGet(
t.Context(),
&client,
"file:///nonexistent",
@@ -77,13 +77,13 @@ func TestHTTP(t *testing.T) {
t.Fatalf("NewHTTPGet: error = %v", err)
} else if _, err = f.Data(); !reflect.DeepEqual(err, wantErrNotFound) {
t.Fatalf("Data: error = %#v, want %#v", err, wantErrNotFound)
- } else if gotIdent := f.ID(); gotIdent != (pkg.Checksum{}) {
- t.Fatalf("ID: %x, want %x", gotIdent, pkg.Checksum{})
+ } else if gotIdent := pkg.Ident(f); gotIdent != (pkg.Checksum{}) {
+ t.Fatalf("Ident: %x, want %x", gotIdent, pkg.Checksum{})
}
}, pkg.MustDecode("E4vEZKhCcL2gPZ2Tt59FS3lDng-d_2SKa2i5G_RbDfwGn6EemptFaGLPUDiOa94C")},
- {"load or store", nil, func(t *testing.T, base *check.Absolute, c *pkg.Cache) {
- f, err := c.NewHTTPGet(
+ {"cure", nil, func(t *testing.T, base *check.Absolute, c *pkg.Cache) {
+ f, err := pkg.NewHTTPGet(
t.Context(),
&client,
"file:///testdata",
@@ -97,18 +97,16 @@ func TestHTTP(t *testing.T) {
"identifier",
testdataChecksumString,
)
- var pathname *check.Absolute
- if pathname, err = f.Pathname(); err != nil {
- t.Fatalf("Pathname: error = %v", err)
+ var (
+ pathname *check.Absolute
+ checksum pkg.Checksum
+ )
+ if pathname, checksum, err = c.Cure(f); err != nil {
+ t.Fatalf("Cure: error = %v", err)
} else if !pathname.Is(wantPathname) {
- t.Fatalf("Pathname: %q, want %q", pathname, wantPathname)
- }
-
- var checksum pkg.Checksum
- if checksum, err = f.Hash(); err != nil {
- t.Fatalf("Hash: error = %v", err)
+ t.Fatalf("Cure: %q, want %q", pathname, wantPathname)
} else if checksum != testdataChecksum {
- t.Fatalf("Hash: %x, want %x", checksum, testdataChecksum)
+ t.Fatalf("Cure: %x, want %x", checksum, testdataChecksum)
}
var got []byte
@@ -116,12 +114,12 @@ func TestHTTP(t *testing.T) {
t.Fatalf("Data: error = %v", err)
} else if string(got) != testdata {
t.Fatalf("Data: %x, want %x", got, testdata)
- } else if gotIdent := f.ID(); gotIdent != testdataChecksum {
- t.Fatalf("ID: %x, want %x", gotIdent, testdataChecksum)
+ } else if gotIdent := pkg.Ident(f); gotIdent != testdataChecksum {
+ t.Fatalf("Ident: %x, want %x", gotIdent, testdataChecksum)
}
// check load from cache
- if f, err = c.NewHTTPGet(
+ if f, err = pkg.NewHTTPGet(
t.Context(),
&client,
"file:///testdata",
@@ -132,57 +130,23 @@ func TestHTTP(t *testing.T) {
t.Fatalf("Data: error = %v", err)
} else if string(got) != testdata {
t.Fatalf("Data: %x, want %x", got, testdata)
- } else if gotIdent := f.ID(); gotIdent != testdataChecksum {
- t.Fatalf("ID: %x, want %x", gotIdent, testdataChecksum)
+ } else if gotIdent := pkg.Ident(f); gotIdent != testdataChecksum {
+ t.Fatalf("Ident: %x, want %x", gotIdent, testdataChecksum)
}
// check error passthrough
wantErrNotFound := pkg.ResponseStatusError(http.StatusNotFound)
- if f, err = c.NewHTTPGet(
+ if f, err = pkg.NewHTTPGet(
t.Context(),
&client,
"file:///nonexistent",
pkg.Checksum{},
); err != nil {
t.Fatalf("NewHTTPGet: error = %v", err)
- } else if _, err = f.Pathname(); !reflect.DeepEqual(err, wantErrNotFound) {
+ } else if _, _, err = c.Cure(f); !reflect.DeepEqual(err, wantErrNotFound) {
t.Fatalf("Pathname: error = %#v, want %#v", err, wantErrNotFound)
- } else if gotIdent := f.ID(); gotIdent != (pkg.Checksum{}) {
- t.Fatalf("ID: %x, want %x", gotIdent, pkg.Checksum{})
- }
- }, pkg.MustDecode("4WHaMvRRcCac1uAyXnEklEd2YaNQBj6rXlfMntX9GgYLij3By1znv5QYPGJHYQIH")},
-
- {"store", nil, func(t *testing.T, base *check.Absolute, c *pkg.Cache) {
- var (
- got []byte
- pathname *check.Absolute
- checksum pkg.Checksum
- )
- wantPathname := base.Append(
- "identifier",
- testdataChecksumString,
- )
- if f, err := c.NewHTTPGet(
- t.Context(),
- &client,
- "file:///testdata",
- testdataChecksum,
- ); err != nil {
- t.Fatalf("NewHTTPGet: error = %v", err)
- } else if got, err = f.Data(); err != nil {
- t.Fatalf("Data: error = %v", err)
- } else if string(got) != testdata {
- t.Fatalf("Data: %x, want %x", got, testdata)
- } else if gotIdent := f.ID(); gotIdent != testdataChecksum {
- t.Fatalf("ID: %x, want %x", gotIdent, testdataChecksum)
- } else if pathname, err = f.Pathname(); err != nil {
- t.Fatalf("Pathname: error = %v", err)
- } else if !pathname.Is(wantPathname) {
- t.Fatalf("Pathname: %q, want %q", pathname, wantPathname)
- } else if checksum, err = f.Hash(); err != nil {
- t.Fatalf("Hash: error = %v", err)
- } else if checksum != testdataChecksum {
- t.Fatalf("Hash: %x, want %x", checksum, testdataChecksum)
+ } else if gotIdent := pkg.Ident(f); gotIdent != (pkg.Checksum{}) {
+ t.Fatalf("Ident: %x, want %x", gotIdent, pkg.Checksum{})
}
}, pkg.MustDecode("4WHaMvRRcCac1uAyXnEklEd2YaNQBj6rXlfMntX9GgYLij3By1znv5QYPGJHYQIH")},
})