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-10846399329613630737
FIRST: llvmcache.timestamp
SECOND: llvmcache-10192351353398627645
SECOND: llvmcache.timestamp
BOTH: llvmcache-10192351353398627645
BOTH: llvmcache-10846399329613630737
BOTH: llvmcache.timestamp