//go:build linux package host import ( "os" "testing" ) func TestPlan9ProductionControllerBindsLiveProcess(t *testing.T) { reader := productionStopControllers{} first, err := reader.VerifiedController(t.Context(), os.Getpid()) if err != nil { t.Fatal(err) } second, err := reader.VerifiedController(t.Context(), os.Getpid()) if err != nil || first != second || len(first) != 64 { t.Fatalf("unstable process identity: %s %s %v", first, second, err) } if _, err = reader.VerifiedController(t.Context(), -1); err == nil { t.Fatal("accepted nonexistent controller") } if os.Geteuid() != 0 { if _, err := readClaimEvidenceKey("/etc/carlos/host-evidence.key"); err == nil { t.Fatal("nonroot read evidence key") } } }