Publish Tentacle fixture markers atomically and patch the release package
This commit is contained in:
1 parent
9538776fe3
commit
9680b583fa
5 files changed
+64
-6
No files matched your search
@@ -1,7 +1,7 @@
|
||||
pkgbase = cthulhu
|
||||
pkgdesc = Desktop-agnostic screen reader with speech, Braille, and Tentacle support
|
||||
pkgver = 2026.10.31
|
||||
pkgrel = 2
|
||||
pkgrel = 3
|
||||
url = https://git.stormux.org/storm/cthulhu
|
||||
arch = x86_64
|
||||
arch = aarch64
|
||||
@@ -36,8 +36,10 @@ pkgbase = cthulhu
|
||||
options = !lto
|
||||
source = cthulhu::git+https://git.stormux.org/storm/cthulhu.git#tag=2026.10.31
|
||||
source = helper-environment-test.patch
|
||||
source = tentacle-marker-tests.patch
|
||||
sha512sums = SKIP
|
||||
sha512sums = 219debca6195ff9cc79f464beed67baa7847bb84075ee3796401f2be9cfb34fac437ac3065e16fdaa30d2456f6d04da93a84f24e4dd27338463e166e445ec4a1
|
||||
sha512sums = 6391976a7cf27a61218f49cff3f7c02064a70287cb5d4f1b62457721caf146385a5e8b0555ac73729a03bf4fe9ee74989a5c05aecdbd8f07ee07bd2549720699
|
||||
optdepends_x86_64 = wine-access: Wine, Proton, NVDA Controller, and Tolk integration
|
||||
|
||||
pkgname = cthulhu
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
pkgname=cthulhu
|
||||
pkgver=2026.10.31
|
||||
pkgrel=2
|
||||
pkgrel=3
|
||||
pkgdesc="Desktop-agnostic screen reader with speech, Braille, and Tentacle support"
|
||||
url="https://git.stormux.org/storm/cthulhu"
|
||||
arch=(x86_64 aarch64 armv7h)
|
||||
@@ -54,13 +54,16 @@ makedepends=(
|
||||
options=(!debug !lto)
|
||||
# The release tag must exist upstream before makepkg can fetch this source.
|
||||
source=("${pkgname}::git+https://git.stormux.org/storm/${pkgname}.git#tag=${pkgver}"
|
||||
"helper-environment-test.patch")
|
||||
"helper-environment-test.patch"
|
||||
"tentacle-marker-tests.patch")
|
||||
sha512sums=('SKIP'
|
||||
'219debca6195ff9cc79f464beed67baa7847bb84075ee3796401f2be9cfb34fac437ac3065e16fdaa30d2456f6d04da93a84f24e4dd27338463e166e445ec4a1')
|
||||
'219debca6195ff9cc79f464beed67baa7847bb84075ee3796401f2be9cfb34fac437ac3065e16fdaa30d2456f6d04da93a84f24e4dd27338463e166e445ec4a1'
|
||||
'6391976a7cf27a61218f49cff3f7c02064a70287cb5d4f1b62457721caf146385a5e8b0555ac73729a03bf4fe9ee74989a5c05aecdbd8f07ee07bd2549720699')
|
||||
|
||||
prepare() {
|
||||
cd "${pkgname}"
|
||||
patch -Np1 -i "${srcdir}/helper-environment-test.patch"
|
||||
patch -Np1 -i "${srcdir}/tentacle-marker-tests.patch"
|
||||
}
|
||||
|
||||
build() {
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
diff --git a/internal/app/tentacle_interaction_test.go b/internal/app/tentacle_interaction_test.go
|
||||
index db03ab2..52307f0 100644
|
||||
--- a/internal/app/tentacle_interaction_test.go
|
||||
+++ b/internal/app/tentacle_interaction_test.go
|
||||
@@ -32,7 +32,9 @@ func TestTentacleInteractionPeer(t *testing.T) {
|
||||
return sdk.Interaction{Form: &sdk.Form{Title: "Wormhole menu", Elements: []sdk.Element{{ID: "code", Label: "Wormhole code", Kind: sdk.Entry, Required: true, MaxLength: 256}}}, Next: next}, nil
|
||||
}
|
||||
submit := func(_ context.Context, raw json.RawMessage) (any, error) {
|
||||
- os.WriteFile(marker, raw, 0600)
|
||||
+ if err := write_tentacle_fixture_marker(marker, raw); err != nil {
|
||||
+ return nil, err
|
||||
+ }
|
||||
return sdk.Interaction{Presentation: sdk.Presentation{Speech: "Submitted", Braille: "Submitted"}}, nil
|
||||
}
|
||||
commands := []sdk.Command{
|
||||
diff --git a/internal/app/tentacles_test.go b/internal/app/tentacles_test.go
|
||||
index 8b862fd..36ee001 100644
|
||||
--- a/internal/app/tentacles_test.go
|
||||
+++ b/internal/app/tentacles_test.go
|
||||
@@ -19,6 +19,14 @@ import (
|
||||
sdk "git.stormux.org/storm/cthulhu/sdk/go/tentacle"
|
||||
)
|
||||
|
||||
+// Publish complete fixture data before readers can observe the marker.
|
||||
+func write_tentacle_fixture_marker(markerPath string, data []byte) error {
|
||||
+ if err := os.WriteFile(markerPath+".tmp", data, 0600); err != nil {
|
||||
+ return err
|
||||
+ }
|
||||
+ return os.Rename(markerPath+".tmp", markerPath)
|
||||
+}
|
||||
+
|
||||
// Subprocess fixture: no reader backend, network, or desktop access.
|
||||
func TestTentacleReaderPeer(t *testing.T) {
|
||||
if len(os.Args) < 3 || os.Args[len(os.Args)-2] != "reader-peer" {
|
||||
@@ -41,7 +49,7 @@ func TestTentacleReaderPeer(t *testing.T) {
|
||||
os.Exit(3)
|
||||
}
|
||||
group, _ := os.ReadFile("/proc/self/cgroup")
|
||||
- if err := os.WriteFile(marker, group, 0600); err != nil {
|
||||
+ if err := write_tentacle_fixture_marker(marker, group); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if filepath.Base(marker) == "present-delay" {
|
||||
@@ -32,7 +32,9 @@ func TestTentacleInteractionPeer(t *testing.T) {
|
||||
return sdk.Interaction{Form: &sdk.Form{Title: "Wormhole menu", Elements: []sdk.Element{{ID: "code", Label: "Wormhole code", Kind: sdk.Entry, Required: true, MaxLength: 256}}}, Next: next}, nil
|
||||
}
|
||||
submit := func(_ context.Context, raw json.RawMessage) (any, error) {
|
||||
os.WriteFile(marker, raw, 0600)
|
||||
if err := write_tentacle_fixture_marker(marker, raw); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return sdk.Interaction{Presentation: sdk.Presentation{Speech: "Submitted", Braille: "Submitted"}}, nil
|
||||
}
|
||||
commands := []sdk.Command{
|
||||
|
||||
@@ -19,6 +19,14 @@ import (
|
||||
sdk "git.stormux.org/storm/cthulhu/sdk/go/tentacle"
|
||||
)
|
||||
|
||||
// Publish complete fixture data before readers can observe the marker.
|
||||
func write_tentacle_fixture_marker(markerPath string, data []byte) error {
|
||||
if err := os.WriteFile(markerPath+".tmp", data, 0600); err != nil {
|
||||
return err
|
||||
}
|
||||
return os.Rename(markerPath+".tmp", markerPath)
|
||||
}
|
||||
|
||||
// Subprocess fixture: no reader backend, network, or desktop access.
|
||||
func TestTentacleReaderPeer(t *testing.T) {
|
||||
if len(os.Args) < 3 || os.Args[len(os.Args)-2] != "reader-peer" {
|
||||
@@ -41,7 +49,7 @@ func TestTentacleReaderPeer(t *testing.T) {
|
||||
os.Exit(3)
|
||||
}
|
||||
group, _ := os.ReadFile("/proc/self/cgroup")
|
||||
if err := os.WriteFile(marker, group, 0600); err != nil {
|
||||
if err := write_tentacle_fixture_marker(marker, group); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if filepath.Base(marker) == "present-delay" {
|
||||
|
||||
Reference in new issue
Block a user