@@ -54,6 +54,53 @@ func TestRootExposesPackAndFilesystemCommands(t *testing.T) {
5454 }
5555}
5656
57+ func TestDoctorFoldStoreVerifiesPackOnlyManifests (t * testing.T ) {
58+ storeDir := t .TempDir ()
59+ source := filepath .Join (t .TempDir (), "rollout.jsonl" )
60+ data := bytes .Repeat ([]byte ("{\" pack_only\" :true}\n " ), 256 )
61+ if err := os .WriteFile (source , data , 0o600 ); err != nil {
62+ t .Fatal (err )
63+ }
64+ if _ , err := fold .Fold (context .Background (), fold.Session {ID : "session" , RolloutPath : source , Archived : true }, fold.FoldOptions {StoreDir : storeDir , Apply : true }); err != nil {
65+ t .Fatal (err )
66+ }
67+ if _ , err := pack .Build (context .Background (), storeDir , pack.BuildOptions {}); err != nil {
68+ t .Fatal (err )
69+ }
70+ if _ , err := pack .RetireLoose (context .Background (), storeDir , pack.RetireLooseOptions {Apply : true }); err != nil {
71+ t .Fatal (err )
72+ }
73+ report , err := doctorFoldStore (context .Background (), storeDir )
74+ if err != nil || report .IssueCount != 0 || report .VerifiedManifestCount != 1 {
75+ t .Fatalf ("pack-only fold doctor: report=%#v err=%v" , report , err )
76+ }
77+ }
78+
79+ func TestDoctorFoldStoreDoesNotMaskBrokenCurrentPackWithLooseObjects (t * testing.T ) {
80+ storeDir := t .TempDir ()
81+ source := filepath .Join (t .TempDir (), "rollout.jsonl" )
82+ if err := os .WriteFile (source , []byte ("{\" pack\" :\" must remain authoritative\" }\n " ), 0o600 ); err != nil {
83+ t .Fatal (err )
84+ }
85+ if _ , err := fold .Fold (context .Background (), fold.Session {ID : "session" , RolloutPath : source , Archived : true }, fold.FoldOptions {StoreDir : storeDir , Apply : true }); err != nil {
86+ t .Fatal (err )
87+ }
88+ result , err := pack .Build (context .Background (), storeDir , pack.BuildOptions {})
89+ if err != nil {
90+ t .Fatal (err )
91+ }
92+ packFiles , err := filepath .Glob (filepath .Join (storeDir , "packs" , result .Generation , "*.pack" ))
93+ if err != nil || len (packFiles ) == 0 {
94+ t .Fatalf ("locate current pack: files=%v err=%v" , packFiles , err )
95+ }
96+ if err := os .Remove (packFiles [0 ]); err != nil {
97+ t .Fatal (err )
98+ }
99+ if _ , err := doctorFoldStore (context .Background (), storeDir ); err == nil || ! strings .Contains (err .Error (), "open current pack" ) {
100+ t .Fatalf ("broken current pack error = %v" , err )
101+ }
102+ }
103+
57104func TestRetainCanonicalSnapshotBudgetRejectsBeforeCreatingSnapshot (t * testing.T ) {
58105 root := t .TempDir ()
59106 store := filepath .Join (root , "store" )
@@ -424,6 +471,25 @@ func TestFSServiceInstallRendersNativeFSKitDaemonAndSupervisor(t *testing.T) {
424471 }
425472}
426473
474+ func TestFSServiceInstallRejectsNativeFSKitResourceWithOverlongSocketPath (t * testing.T ) {
475+ if runtime .GOOS != "darwin" {
476+ t .Skip ("native FSKit services are macOS-only" )
477+ }
478+ home , storeDir , _ := fsFixture (t , true )
479+ resource := filepath .Join (string (filepath .Separator ), strings .Repeat ("a" , 110 ))
480+ root := NewRootCommand ()
481+ root .SetOut (& bytes.Buffer {})
482+ root .SetErr (& bytes.Buffer {})
483+ root .SetArgs ([]string {
484+ "fs" , "service" , "install" , "--frontend" , "native-fskit" ,
485+ "--codex-home" , home , "--store" , storeDir , "--fskit-resource" , resource ,
486+ })
487+ err := root .Execute ()
488+ if err == nil || ! strings .Contains (err .Error (), "Unix socket path exceeds the macOS limit" ) {
489+ t .Fatalf ("overlong native FSKit resource error = %v" , err )
490+ }
491+ }
492+
427493func TestFSServiceInstallCustomLabelUsesCustomDefinitionPath (t * testing.T ) {
428494 if runtime .GOOS != "darwin" {
429495 t .Skip ("custom LaunchAgent labels are macOS-only" )
0 commit comments