From f54348ff834fb9b931779e915a57503eb04203f2 Mon Sep 17 00:00:00 2001 From: Angus Gratton Date: Thu, 25 Aug 2016 11:54:37 +0800 Subject: [PATCH] build_system_tests.sh: Replace use of second-precision-only [ a -ot b ] --- make/build_system_tests.sh | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/make/build_system_tests.sh b/make/build_system_tests.sh index 5824cf2b8e..b361e0b8ee 100755 --- a/make/build_system_tests.sh +++ b/make/build_system_tests.sh @@ -131,6 +131,18 @@ function assert_built() done } +# Test if a file has been rebuilt. +function file_was_rebuilt() +{ + # can't use [ a -ot b ] here as -ot only gives second resolution + # but stat -c %y seems to be microsecond at least for tmpfs, ext4.. + if [ "$(stat -c %y ${SNAPSHOT}/$1)" != "$(stat -c %y ${BUILD}/$1)" ]; then + return 0 + else + return 1 + fi +} + # verify all the arguments passed in were rebuilt relative to the snapshot function assert_rebuilt() { @@ -139,7 +151,7 @@ function assert_rebuilt() if [ ! -f "${SNAPSHOT}/$1" ]; then failure "File $1 should have been original build snapshot" fi - if [ ! "${SNAPSHOT}/$1" -ot "${BUILD}/$1" ]; then + if ! file_was_rebuilt "$1"; then failure "File $1 should have been rebuilt" fi shift @@ -155,7 +167,7 @@ function assert_not_rebuilt() if [ ! -f "${SNAPSHOT}/$1" ]; then failure "File $1 should be in snapshot build directory" fi - if [ "${SNAPSHOT}/$1" -ot "${BUILD}/$1" ]; then + if file_was_rebuilt "$1"; then failure "File $1 should not have been rebuilt" fi shift -- 2.40.0