aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/rosa/hakurei_release.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/rosa/hakurei_release.go')
-rw-r--r--internal/rosa/hakurei_release.go51
1 files changed, 51 insertions, 0 deletions
diff --git a/internal/rosa/hakurei_release.go b/internal/rosa/hakurei_release.go
new file mode 100644
index 00000000..d5af4d06
--- /dev/null
+++ b/internal/rosa/hakurei_release.go
@@ -0,0 +1,51 @@
+//go:build !current
+
+package rosa
+
+import "hakurei.app/internal/pkg"
+
+const hakureiVersion = "0.3.5"
+
+// hakureiSource is the source code of a hakurei release.
+var hakureiSource = pkg.NewHTTPGetTar(
+ nil, "https://git.gensokyo.uk/security/hakurei/archive/"+
+ "v"+hakureiVersion+".tar.gz",
+ mustDecode("6Tn38NLezRD2d3aGdFg5qFfqn8_KvC6HwMKwJMPvaHmVw8xRgxn8B0PObswl2mOk"),
+ pkg.TarGzip,
+)
+
+// hakureiPatches are patches applied against a hakurei release.
+var hakureiPatches = [][2]string{
+ {"createTemp-error-injection", `diff --git a/container/dispatcher_test.go b/container/dispatcher_test.go
+index 5de37fc..fe0c4db 100644
+--- a/container/dispatcher_test.go
++++ b/container/dispatcher_test.go
+@@ -238,8 +238,11 @@ func sliceAddr[S any](s []S) *[]S { return &s }
+
+ func newCheckedFile(t *testing.T, name, wantData string, closeErr error) osFile {
+ f := &checkedOsFile{t: t, name: name, want: wantData, closeErr: closeErr}
+- // check happens in Close, and cleanup is not guaranteed to run, so relying on it for sloppy implementations will cause sporadic test results
+- f.cleanup = runtime.AddCleanup(f, func(name string) { f.t.Fatalf("checkedOsFile %s became unreachable without a call to Close", name) }, f.name)
++ // check happens in Close, and cleanup is not guaranteed to run, so relying
++ // on it for sloppy implementations will cause sporadic test results
++ f.cleanup = runtime.AddCleanup(f, func(name string) {
++ panic("checkedOsFile " + name + " became unreachable without a call to Close")
++ }, name)
+ return f
+ }
+
+diff --git a/container/initplace_test.go b/container/initplace_test.go
+index afeddbe..1c2f20b 100644
+--- a/container/initplace_test.go
++++ b/container/initplace_test.go
+@@ -21,7 +21,7 @@ func TestTmpfileOp(t *testing.T) {
+ Path: samplePath,
+ Data: sampleData,
+ }, nil, nil, []stub.Call{
+- call("createTemp", stub.ExpectArgs{"/", "tmp.*"}, newCheckedFile(t, "tmp.32768", sampleDataString, nil), stub.UniqueError(5)),
++ call("createTemp", stub.ExpectArgs{"/", "tmp.*"}, (*checkedOsFile)(nil), stub.UniqueError(5)),
+ }, stub.UniqueError(5)},
+
+ {"Write", &Params{ParentPerm: 0700}, &TmpfileOp{
+`},
+}