MCPcopy Index your code
hub / github.com/coder/agentapi / TestPIDFileOperations

Function TestPIDFileOperations

cmd/server/server_test.go:602–706  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

600}
601
602func TestPIDFileOperations(t *testing.T) {
603 discardLogger := slog.New(slog.NewTextHandler(io.Discard, nil))
604
605 t.Run("writePIDFile creates file with process ID", func(t *testing.T) {
606 tmpDir := t.TempDir()
607 pidFile := tmpDir + "/test.pid"
608
609 err := writePIDFile(pidFile, discardLogger)
610 require.NoError(t, err)
611
612 // Verify file exists
613 _, err = os.Stat(pidFile)
614 require.NoError(t, err)
615
616 // Verify content contains current PID
617 data, err := os.ReadFile(pidFile)
618 require.NoError(t, err)
619
620 expectedPID := fmt.Sprintf("%d\n", os.Getpid())
621 assert.Equal(t, expectedPID, string(data))
622 })
623
624 t.Run("writePIDFile creates directory if not exists", func(t *testing.T) {
625 tmpDir := t.TempDir()
626 pidFile := tmpDir + "/nested/deep/test.pid"
627
628 err := writePIDFile(pidFile, discardLogger)
629 require.NoError(t, err)
630
631 // Verify file exists
632 _, err = os.Stat(pidFile)
633 require.NoError(t, err)
634
635 // Verify directory was created
636 _, err = os.Stat(tmpDir + "/nested/deep")
637 require.NoError(t, err)
638 })
639
640 t.Run("writePIDFile overwrites existing file", func(t *testing.T) {
641 tmpDir := t.TempDir()
642 pidFile := tmpDir + "/test.pid"
643
644 // Write a non-numeric PID so strconv.Atoi fails and the liveness
645 // check is skipped, avoiding flakes when a real PID matches.
646 err := os.WriteFile(pidFile, []byte("not-a-pid\n"), 0o644)
647 require.NoError(t, err)
648
649 // Overwrite with current PID
650 err = writePIDFile(pidFile, discardLogger)
651 require.NoError(t, err)
652
653 // Verify content is updated
654 data, err := os.ReadFile(pidFile)
655 require.NoError(t, err)
656
657 expectedPID := fmt.Sprintf("%d\n", os.Getpid())
658 assert.Equal(t, expectedPID, string(data))
659 })

Callers

nothing calls this directly

Calls 2

writePIDFileFunction · 0.85
cleanupPIDFileFunction · 0.85

Tested by

no test coverage detected