Daniel Thornburgh cd935224c0 [Debuginfod] Prune cache after fetch.
Previously, the size of the debuginfod cache would grow without bound.
This change prunes the cache after a successful debuginfod lookup, as is
done in libdebuginfod.

The cache pruning behavior is configured by a new
DEBUGINFOD_CACHE_POLICY environment variable. The semantics of this are
the same as --thinlto_cache_policy.

Reviewed By: gulfem

Differential Revision: https://reviews.llvm.org/D145618
2023-03-10 12:12:44 -08:00

39 lines
1.6 KiB
Plaintext

REQUIRES: curl
UNSUPPORTED: system-windows
RUN: rm -rf %t/*
RUN: mkdir -p %t/buildid/012345678901234{5,6}
RUN: echo 'f' > %t/buildid/0123456789012345/debuginfo
RUN: cp %t/buildid/012345678901234{5,6}/debuginfo
RUN: mkdir %t/cache
RUN: env DEBUGINFOD_CACHE_PATH=%t/cache DEBUGINFOD_URLS=file://%t \
RUN: llvm-debuginfod-find --debuginfo 0123456789012345 > /dev/null
RUN: ls %t/cache | FileCheck --check-prefix=FIRST --match-full-lines --implicit-check-not {{.}} %s
# Set policy to discard all but one file.
RUN: env DEBUGINFOD_CACHE_POLICY=prune_interval=0s:cache_size_files=1 \
RUN: DEBUGINFOD_CACHE_PATH=%t/cache DEBUGINFOD_URLS=file://%t \
RUN: llvm-debuginfod-find --debuginfo 0123456789012346 > /dev/null
RUN: ls %t/cache | FileCheck --check-prefix=SECOND --match-full-lines --implicit-check-not {{.}} %s
# Add the first file back to the cache.
RUN: env DEBUGINFOD_CACHE_PATH=%t/cache DEBUGINFOD_URLS=file://%t \
RUN: llvm-debuginfod-find --debuginfo 0123456789012345 > /dev/null
RUN: ls %t/cache | FileCheck --check-prefix=BOTH --match-full-lines --implicit-check-not {{.}} %s
# An invalid cache policy has no effect.
RUN: env DEBUGINFOD_CACHE_POLICY=invalid:prune_interval=0s:cache_size_files=1 \
RUN: DEBUGINFOD_CACHE_PATH=%t/cache DEBUGINFOD_URLS=file://%t \
RUN: llvm-debuginfod-find --debuginfo 0123456789012346 > /dev/null
RUN: ls %t/cache | FileCheck --check-prefix=BOTH --match-full-lines --implicit-check-not {{.}} %s
FIRST: llvmcache-6663022027345102449
FIRST: llvmcache.timestamp
SECOND: llvmcache-6762748755046480574
SECOND: llvmcache.timestamp
BOTH: llvmcache-6663022027345102449
BOTH: llvmcache-6762748755046480574
BOTH: llvmcache.timestamp