Resolve module paths consistently through symlinks

This commit is contained in:
2026-10-10 15:13:00 +00:00
parent 7216fb5f98
commit c0a3f55f12
4 changed files with 70 additions and 16 deletions

View File

@@ -221,6 +221,12 @@ func TestPrepareBuildDependenciesUsesSelectedModuleDirectory(t *testing.T) {
if err := os.MkdirAll(moduleDir, 0o700); err != nil {
t.Fatal(err)
}
if err := os.Mkdir(filepath.Join(moduleDir, "deep"), 0o700); err != nil {
t.Fatal(err)
}
if err := os.Symlink("integrations/ckconfig/deep", filepath.Join(repository, "linked")); err != nil {
t.Fatal(err)
}
toolDir := t.TempDir()
marker := filepath.Join(t.TempDir(), "go-directory")
tool := filepath.Join(toolDir, "go")
@@ -229,15 +235,17 @@ func TestPrepareBuildDependenciesUsesSelectedModuleDirectory(t *testing.T) {
}
t.Setenv("PATH", toolDir+string(os.PathListSeparator)+os.Getenv("PATH"))
t.Setenv("PREPARE_DIR_MARKER", marker)
if err := releasekit.PrepareBuildDependencies(context.Background(), releasekit.DependencyPreparationRequest{
RepositoryDir: repository,
ModuleDir: "integrations/ckconfig",
}); err != nil {
t.Fatal(err)
}
got, err := os.ReadFile(marker)
if err != nil || string(got) != moduleDir {
t.Fatalf("go mod download directory = %q, error=%v, want %q", got, err, moduleDir)
for _, selected := range []string{"integrations/ckconfig", "linked/.."} {
if err := releasekit.PrepareBuildDependencies(context.Background(), releasekit.DependencyPreparationRequest{
RepositoryDir: repository,
ModuleDir: selected,
}); err != nil {
t.Fatal(err)
}
got, err := os.ReadFile(marker)
if err != nil || string(got) != moduleDir {
t.Fatalf("go mod download directory for %q = %q, error=%v, want %q", selected, got, err, moduleDir)
}
}
}