1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
|
SUITE_masquerading_PROBE() {
local compiler_binary
if $HOST_OS_WINDOWS || $HOST_OS_CYGWIN; then
echo "symlinks not supported on $(uname -s)"
return
fi
if [ "$(dirname $COMPILER_BIN)" != . ]; then
echo "compiler ($COMPILER_BIN) not taken from PATH"
return
fi
}
SUITE_masquerading_SETUP() {
generate_code 1 test1.c
}
SUITE_masquerading() {
if ! $HOST_OS_WINDOWS && ! $HOST_OS_CYGWIN; then
# -------------------------------------------------------------------------
TEST "Masquerading via symlink, relative path"
ln -s "$CCACHE" $COMPILER_BIN
$COMPILER -c -o reference_test1.o test1.c
PATH="${PWD}:${PATH}" ./$COMPILER_BIN $COMPILER_ARGS -c test1.c
expect_stat preprocessed_cache_hit 0
expect_stat cache_miss 1
expect_stat files_in_cache 1
expect_equal_object_files reference_test1.o test1.o
PATH="${PWD}:${PATH}" ./$COMPILER_BIN $COMPILER_ARGS -c test1.c
expect_stat preprocessed_cache_hit 1
expect_stat cache_miss 1
expect_stat files_in_cache 1
expect_equal_object_files reference_test1.o test1.o
# -------------------------------------------------------------------------
TEST "Masquerading via symlink, absolute path"
ln -s "$CCACHE" $COMPILER_BIN
$COMPILER -c -o reference_test1.o test1.c
PATH="${PWD}:${PATH}" $PWD/$COMPILER_BIN $COMPILER_ARGS -c test1.c
expect_stat preprocessed_cache_hit 0
expect_stat cache_miss 1
expect_stat files_in_cache 1
expect_equal_object_files reference_test1.o test1.o
PATH="${PWD}:${PATH}" $PWD/$COMPILER_BIN $COMPILER_ARGS -c test1.c
expect_stat preprocessed_cache_hit 1
expect_stat cache_miss 1
expect_stat files_in_cache 1
expect_equal_object_files reference_test1.o test1.o
fi
# -------------------------------------------------------------------------
TEST "Masquerading via copy or hard link"
cp "$CCACHE" $COMPILER_BIN
$COMPILER -c -o reference_test1.o test1.c
PATH="${PWD}:${PATH}" ./$COMPILER_BIN $COMPILER_ARGS -c test1.c
expect_stat preprocessed_cache_hit 0
expect_stat cache_miss 1
expect_stat files_in_cache 1
expect_equal_object_files reference_test1.o test1.o
PATH="${PWD}:${PATH}" ./$COMPILER_BIN $COMPILER_ARGS -c test1.c
expect_stat preprocessed_cache_hit 1
expect_stat cache_miss 1
expect_stat files_in_cache 1
expect_equal_object_files reference_test1.o test1.o
}
|