(t *testing.T)
| 600 | } |
| 601 | |
| 602 | func 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 | }) |
nothing calls this directly
no test coverage detected