MCPcopy Create free account
hub / github.com/celer-pkg/celer / TestRestore_ArchivePreservesIncludeDir

Function TestRestore_ArchivePreservesIncludeDir

pkgcache/cache_repo_test.go:351–388  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

349}
350
351func TestRestore_ArchivePreservesIncludeDir(t *testing.T) {
352 tmpDir, pkgCacheDir, _ := setupTestEnv(t)
353 rc := newRepoConfig(pkgCacheDir, true)
354
355 // Archive with a single directory named "include" — should NOT be flattened.
356 srcDir := filepath.Join(tmpDir, "archive-src", "include")
357 if err := os.MkdirAll(srcDir, os.ModePerm); err != nil {
358 t.Fatal(err)
359 }
360 if err := os.WriteFile(filepath.Join(srcDir, "header.h"), []byte("#pragma once"), os.ModePerm); err != nil {
361 t.Fatal(err)
362 }
363
364 archivePath := filepath.Join(tmpDir, "include-archive.tar.gz")
365 if err := fileio.Targz(archivePath, filepath.Join(tmpDir, "archive-src"), true); err != nil {
366 t.Fatal(err)
367 }
368 checksum, err := fileio.ComputeSHA256(archivePath)
369 if err != nil {
370 t.Fatal(err)
371 }
372
373 repoDir := filepath.Join(tmpDir, "buildtrees", "x264@stable", "src")
374 repoURL := "https://example.com/include-lib.tar.gz"
375
376 if _, err := rc.Store("x264@stable", repoURL, repoDir, archivePath); err != nil {
377 t.Fatal(err)
378 }
379
380 if _, err := rc.Restore("x264@stable", repoURL, repoDir, checksum); err != nil {
381 t.Fatal(err)
382 }
383
384 // "include" directory should still exist as a subdirectory (not flattened).
385 if !fileio.PathExists(filepath.Join(repoDir, "include", "header.h")) {
386 t.Fatal("expected include/header.h to be preserved (not flattened)")
387 }
388}
389
390func TestRestore_CacheNotExists(t *testing.T) {
391 _, pkgCacheDir, _ := setupTestEnv(t)

Callers

nothing calls this directly

Calls 9

TargzFunction · 0.92
ComputeSHA256Function · 0.92
PathExistsFunction · 0.92
setupTestEnvFunction · 0.85
newRepoConfigFunction · 0.85
MkdirAllMethod · 0.80
WriteFileMethod · 0.80
StoreMethod · 0.65
RestoreMethod · 0.65

Tested by

no test coverage detected