All checks were successful
Test / Create distribution (push) Successful in 1m1s
Test / Sandbox (push) Successful in 2m38s
Test / Hakurei (push) Successful in 3m55s
Test / ShareFS (push) Successful in 4m0s
Test / Hpkg (push) Successful in 4m30s
Test / Sandbox (race detector) (push) Successful in 4m57s
Test / Hakurei (race detector) (push) Successful in 6m12s
Test / Flake checks (push) Successful in 1m45s
This builds hakurei in Rosa OS between releases. Signed-off-by: Ophestra <cat@gensokyo.uk>
52 lines
2.3 KiB
Go
52 lines
2.3 KiB
Go
//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{
|
|
`},
|
|
}
|