44 lines
980 B
Bash
44 lines
980 B
Bash
|
#!/bin/bash -eu
|
||
|
|
||
|
set -o pipefail
|
||
|
|
||
|
# Tests that symlink forest will replant if soong_build has changed
|
||
|
# Any change to the build system should trigger a rerun
|
||
|
|
||
|
source "$(dirname "$0")/lib.sh"
|
||
|
|
||
|
function test_symlink_forest_reruns {
|
||
|
setup
|
||
|
|
||
|
mkdir -p a
|
||
|
touch a/g.txt
|
||
|
cat > a/Android.bp <<'EOF'
|
||
|
filegroup {
|
||
|
name: "g",
|
||
|
srcs: ["g.txt"],
|
||
|
}
|
||
|
EOF
|
||
|
|
||
|
run_soong g
|
||
|
|
||
|
mtime=`cat out/soong/workspace/soong_build_mtime`
|
||
|
# rerun with no changes - ensure that it hasn't changed
|
||
|
run_soong g
|
||
|
newmtime=`cat out/soong/workspace/soong_build_mtime`
|
||
|
if [[ ! "$mtime" == "$mtime" ]]; then
|
||
|
fail "symlink forest reran when it shouldn't have"
|
||
|
fi
|
||
|
|
||
|
# change exit codes to force a soong_build rebuild.
|
||
|
sed -i 's/os.Exit(1)/os.Exit(2)/g' build/soong/bp2build/symlink_forest.go
|
||
|
|
||
|
run_soong g
|
||
|
newmtime=`cat out/soong/workspace/soong_build_mtime`
|
||
|
if [[ "$mtime" == "$newmtime" ]]; then
|
||
|
fail "symlink forest did not rerun when it should have"
|
||
|
fi
|
||
|
|
||
|
}
|
||
|
|
||
|
scan_and_run_tests
|