carlos / platform Public

Clone
git clone https://amadan.net/carlos/platform

Plain git — no account needed to clone.

Download

Download this file

1//go:build linux
2
3package host
4
5import (
6 "github.com/carlosframework/platform/internal/instancectl"
7 "os"
8 "path/filepath"
9 "testing"
10)
11
12func TestPlan11NoProcessChecksEveryIsolatedRole(t *testing.T) {
13 for _, role := range []string{"run", "seed", "sidecar"} {
14 t.Run(role, func(t *testing.T) {
15 f := newWritersKernelFixture(t)
16 f.dropAgentHolds(t)
17 group := filepath.Join(f.cgroupRoot, "carlos.slice", "carlos-instances.slice", instancectl.SliceName(f.target.Host))
18 if err := os.MkdirAll(filepath.Join(group, role+".service"), 0700); err != nil {
19 t.Fatal(err)
20 }
21 if err := os.WriteFile(filepath.Join(group, "cgroup.events"), []byte("populated 0\n"), 0600); err != nil {
22 t.Fatal(err)
23 }
24 if err := os.WriteFile(filepath.Join(group, role+".service", "cgroup.events"), []byte("populated 1\n"), 0600); err != nil {
25 t.Fatal(err)
26 }
27 if _, err := f.noProcess(t, false); err == nil {
28 t.Fatal("live isolated role passed the session-zero witness")
29 }
30 })
31 }
32}
33