}
if (util::starts_with(arg, "-fsanitize-blacklist=")) {
- args_info.sanitize_blacklists.emplace_back(args[i].substr(21));
- state.add_common_arg(args[i]);
+ auto path = std::string_view(args[i]).substr(21);
+ args_info.sanitize_blacklists.emplace_back(path);
+ auto relpath = core::make_relative_path(ctx, path);
+ state.add_common_arg(FMT("-fsanitize-blacklist={}", relpath));
return Statistic::none;
}
echo "fun:foo" >blacklist.txt
echo "fun_1:foo" >blacklist2.txt
+ mkdir -p dir1/ dir2/
+ cp blacklist.txt dir1/blacklist.txt
+ cp blacklist.txt dir2/blacklist.txt
+
unset CCACHE_NODIRECT
}
expect_stat cache_miss 2
expect_stat files_in_cache 4
+ # -------------------------------------------------------------------------
+ TEST "base_dir OK"
+
+ basedir1="$(pwd)/dir1"
+ basedir2="$(pwd)/dir2"
+
+ basedir=$basedir1
+ cd $basedir
+
+ $COMPILER -c -fsanitize-blacklist=blacklist.txt ../test1.c
+
+ CCACHE_BASEDIR="${basedir}" $CCACHE_COMPILE -c -fsanitize-blacklist=$basedir/blacklist.txt ../test1.c
+ expect_stat direct_cache_hit 0
+ expect_stat cache_miss 1
+ expect_stat files_in_cache 2
+
+ CCACHE_BASEDIR="${basedir}" $CCACHE_COMPILE -c -fsanitize-blacklist=$basedir/blacklist.txt ../test1.c
+ expect_stat direct_cache_hit 1
+ expect_stat cache_miss 1
+ expect_stat files_in_cache 2
+
+ basedir=$basedir2
+ cd $basedir
+
+ CCACHE_DEBUG=1 CCACHE_BASEDIR="${basedir}" $CCACHE_COMPILE -c -fsanitize-blacklist=$basedir/blacklist.txt ../test1.c
+ expect_stat direct_cache_hit 2
+ expect_stat cache_miss 1
+ expect_stat files_in_cache 2
+
# -------------------------------------------------------------------------
TEST "Unsuccessful compilation"