diff --git a/.gitignore b/.gitignore index df9a01dd2..599cd506c 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,5 @@ python/MANIFEST python/build python/dist python/jsbeautifier.egg-info + +target diff --git a/js/test/shell-smoke-test.sh b/js/test/shell-smoke-test.sh index e3c5b1d47..a1cf42d5d 100755 --- a/js/test/shell-smoke-test.sh +++ b/js/test/shell-smoke-test.sh @@ -3,6 +3,7 @@ REL_SCRIPT_DIR="`dirname \"$0\"`" SCRIPT_DIR="`( cd \"$REL_SCRIPT_DIR\" && pwd )`" + test_cli_common() { echo ---------------------------------------- @@ -57,6 +58,20 @@ test_cli_common() } +setup_temp() +{ + mkdir -p target + TEST_TEMP=$PWD/`mktemp -d target/test_temp_XXXX` + echo Created $TEST_TEMP... +} + +cleanup() +{ + rm -rf $TEST_TEMP && echo Removed $TEST_TEMP... + test -z $1 || exit $1 +} + + test_cli_js_beautify() { echo ---------------------------------------- @@ -88,99 +103,100 @@ test_cli_js_beautify() exit 1 } - rm -rf /tmp/js-beautify-mkdir - $CLI_SCRIPT -o /tmp/js-beautify-mkdir/js-beautify.js $SCRIPT_DIR/../bin/js-beautify.js && diff $SCRIPT_DIR/../bin/js-beautify.js /tmp/js-beautify-mkdir/js-beautify.js || { - echo "js-beautify output for $SCRIPT_DIR/../bin/js-beautify.js should have been created in /tmp/js-beautify-mkdir/js-beautify.js." - exit 1 + setup_temp + $CLI_SCRIPT -o $TEST_TEMP/js-beautify.js $SCRIPT_DIR/../bin/js-beautify.js && diff $SCRIPT_DIR/../bin/js-beautify.js $TEST_TEMP/js-beautify.js || { + echo "js-beautify output for $SCRIPT_DIR/../bin/js-beautify.js should have been created in $TEST_TEMP/js-beautify.js." + cleanup 1 } # ensure new line settings work - $CLI_SCRIPT -o /tmp/js-beautify-mkdir/js-beautify-n.js --eol '\n' $SCRIPT_DIR/../bin/js-beautify.js - $CLI_SCRIPT -o /tmp/js-beautify-mkdir/js-beautify-rn.js --eol '\r\n' /tmp/js-beautify-mkdir/js-beautify-n.js + $CLI_SCRIPT -o $TEST_TEMP/js-beautify-n.js --eol '\n' $SCRIPT_DIR/../bin/js-beautify.js + $CLI_SCRIPT -o $TEST_TEMP/js-beautify-rn.js --eol '\r\n' $TEST_TEMP/js-beautify-n.js - diff -q /tmp/js-beautify-mkdir/js-beautify-n.js /tmp/js-beautify-mkdir/js-beautify-rn.js && { - diff /tmp/js-beautify-mkdir/js-beautify-n.js /tmp/js-beautify-mkdir/js-beautify-rn.js | cat -t -e - echo "js-beautify output for /tmp/js-beautify-mkdir/js-beautify-n.js and /tmp/js-beautify-mkdir/js-beautify-rn.js was expected to be different." - exit 1 + diff -q $TEST_TEMP/js-beautify-n.js $TEST_TEMP/js-beautify-rn.js && { + diff $TEST_TEMP/js-beautify-n.js $TEST_TEMP/js-beautify-rn.js | cat -t -e + echo "js-beautify output for $TEST_TEMP/js-beautify-n.js and $TEST_TEMP/js-beautify-rn.js was expected to be different." + cleanup 1 } - $CLI_SCRIPT /tmp/js-beautify-mkdir/js-beautify-n.js | diff -q /tmp/js-beautify-mkdir/js-beautify-n.js - || { - echo "js-beautify output for /tmp/js-beautify-mkdir/js-beautify-n.js was expected to be unchanged." - exit 1 + $CLI_SCRIPT $TEST_TEMP/js-beautify-n.js | diff -q $TEST_TEMP/js-beautify-n.js - || { + echo "js-beautify output for $TEST_TEMP/js-beautify-n.js was expected to be unchanged." + cleanup 1 } - $CLI_SCRIPT --eol 'auto' /tmp/js-beautify-mkdir/js-beautify-rn.js | diff -q /tmp/js-beautify-mkdir/js-beautify-rn.js - || { - echo "js-beautify output for /tmp/js-beautify-mkdir/js-beautify-rn.js was expected to be unchanged." - exit 1 + $CLI_SCRIPT --eol 'auto' $TEST_TEMP/js-beautify-rn.js | diff -q $TEST_TEMP/js-beautify-rn.js - || { + echo "js-beautify output for $TEST_TEMP/js-beautify-rn.js was expected to be unchanged." + cleanup 1 } # ensure unchanged files are not overwritten - $CLI_SCRIPT -o /tmp/js-beautify-mkdir/js-beautify.js $SCRIPT_DIR/../bin/js-beautify.js - cp -p /tmp/js-beautify-mkdir/js-beautify.js /tmp/js-beautify-mkdir/js-beautify-old.js - touch /tmp/js-beautify-mkdir/js-beautify.js + $CLI_SCRIPT -o $TEST_TEMP/js-beautify.js $SCRIPT_DIR/../bin/js-beautify.js + cp -p $TEST_TEMP/js-beautify.js $TEST_TEMP/js-beautify-old.js + touch $TEST_TEMP/js-beautify.js sleep 2 - touch /tmp/js-beautify-mkdir/js-beautify-old.js - $CLI_SCRIPT -r /tmp/js-beautify-mkdir/js-beautify.js && test /tmp/js-beautify-mkdir/js-beautify.js -nt /tmp/js-beautify-mkdir/js-beautify-old.js && { - echo "js-beautify should not replace unchanged file /tmp/js-beautify-mkdir/js-beautify.js when using -r" - exit 1 + touch $TEST_TEMP/js-beautify-old.js + $CLI_SCRIPT -r $TEST_TEMP/js-beautify.js && test $TEST_TEMP/js-beautify.js -nt $TEST_TEMP/js-beautify-old.js && { + echo "js-beautify should not replace unchanged file $TEST_TEMP/js-beautify.js when using -r" + cleanup 1 } - $CLI_SCRIPT -o /tmp/js-beautify-mkdir/js-beautify.js /tmp/js-beautify-mkdir/js-beautify.js && test /tmp/js-beautify-mkdir/js-beautify.js -nt /tmp/js-beautify-mkdir/js-beautify-old.js && { - echo "js-beautify should not replace unchanged file /tmp/js-beautify-mkdir/js-beautify.js when using -o and same file name" - exit 1 + $CLI_SCRIPT -o $TEST_TEMP/js-beautify.js $TEST_TEMP/js-beautify.js && test $TEST_TEMP/js-beautify.js -nt $TEST_TEMP/js-beautify-old.js && { + echo "js-beautify should not replace unchanged file $TEST_TEMP/js-beautify.js when using -o and same file name" + cleanup 1 } - $CLI_SCRIPT -o /tmp/js-beautify-mkdir/js-beautify.js /tmp/js-beautify-mkdir/js-beautify-old.js && test /tmp/js-beautify-mkdir/js-beautify.js -nt /tmp/js-beautify-mkdir/js-beautify-old.js && { - echo "js-beautify should not replace unchanged file /tmp/js-beautify-mkdir/js-beautify.js when using -o and different file name" - exit 1 + $CLI_SCRIPT -o $TEST_TEMP/js-beautify.js $TEST_TEMP/js-beautify-old.js && test $TEST_TEMP/js-beautify.js -nt $TEST_TEMP/js-beautify-old.js && { + echo "js-beautify should not replace unchanged file $TEST_TEMP/js-beautify.js when using -o and different file name" + cleanup 1 } $CLI_SCRIPT $SCRIPT_DIR/../bin/css-beautify.js | diff -q $SCRIPT_DIR/../bin/css-beautify.js - && { echo "js-beautify output for $SCRIPT_DIR/../bin/css-beautify.js was expected to be different." - exit 1 + cleanup 1 } export HOME= export USERPROFILE= - $CLI_SCRIPT -o /tmp/js-beautify-mkdir/example1-default.js $SCRIPT_DIR/resources/example1.js + $CLI_SCRIPT -o $TEST_TEMP/example1-default.js $SCRIPT_DIR/resources/example1.js - $CLI_SCRIPT /tmp/js-beautify-mkdir/example1-default.js | diff -q /tmp/js-beautify-mkdir/example1-default.js - || { - echo "js-beautify output for /tmp/js-beautify-mkdir/example1-default.js was expected to be identical after no change in settings." - exit 1 + $CLI_SCRIPT $TEST_TEMP/example1-default.js | diff -q $TEST_TEMP/example1-default.js - || { + echo "js-beautify output for $TEST_TEMP/example1-default.js was expected to be identical after no change in settings." + cleanup 1 } cd $SCRIPT_DIR/resources/indent11chars - $CLI_SCRIPT /tmp/js-beautify-mkdir/example1-default.js | diff -q /tmp/js-beautify-mkdir/example1-default.js - && { - echo "js-beautify output for /tmp/js-beautify-mkdir/example1-default.js was expected to be different based on CWD settings." - exit 1 + $CLI_SCRIPT $TEST_TEMP/example1-default.js | diff -q $TEST_TEMP/example1-default.js - && { + echo "js-beautify output for $TEST_TEMP/example1-default.js was expected to be different based on CWD settings." + cleanup 1 } cd $SCRIPT_DIR/resources/indent11chars/subDir1/subDir2 - $CLI_SCRIPT /tmp/js-beautify-mkdir/example1-default.js | diff -q /tmp/js-beautify-mkdir/example1-default.js - && { - echo "js-beautify output for /tmp/js-beautify-mkdir/example1-default.js was expected to be different based on CWD parent folder settings." - exit 1 + $CLI_SCRIPT $TEST_TEMP/example1-default.js | diff -q $TEST_TEMP/example1-default.js - && { + echo "js-beautify output for $TEST_TEMP/example1-default.js was expected to be different based on CWD parent folder settings." + cleanup 1 } cd $SCRIPT_DIR export HOME=$SCRIPT_DIR/resources/indent11chars - $CLI_SCRIPT /tmp/js-beautify-mkdir/example1-default.js | diff -q /tmp/js-beautify-mkdir/example1-default.js - && { - echo "js-beautify output for /tmp/js-beautify-mkdir/example1-default.js was expected to be different based on HOME settings." - exit 1 + $CLI_SCRIPT $TEST_TEMP/example1-default.js | diff -q $TEST_TEMP/example1-default.js - && { + echo "js-beautify output for $TEST_TEMP/example1-default.js was expected to be different based on HOME settings." + cleanup 1 } - $CLI_SCRIPT -o /tmp/js-beautify-mkdir/example1-indent11chars.js /tmp/js-beautify-mkdir/example1-default.js + $CLI_SCRIPT -o $TEST_TEMP/example1-indent11chars.js $TEST_TEMP/example1-default.js export HOME= export USERPROFILE=$SCRIPT_DIR/resources/indent11chars - $CLI_SCRIPT /tmp/js-beautify-mkdir/example1-default.js | diff -q /tmp/js-beautify-mkdir/example1-indent11chars.js - || { - echo "js-beautify output for /tmp/js-beautify-mkdir/example1-default.js was expected to be identical for same HOME and USERPROFILE settings." - exit 1 + $CLI_SCRIPT $TEST_TEMP/example1-default.js | diff -q $TEST_TEMP/example1-indent11chars.js - || { + echo "js-beautify output for $TEST_TEMP/example1-default.js was expected to be identical for same HOME and USERPROFILE settings." + cleanup 1 } - $CLI_SCRIPT /tmp/js-beautify-mkdir/example1-default.js | diff -q /tmp/js-beautify-mkdir/example1-default.js - && { - echo "js-beautify output for /tmp/js-beautify-mkdir/example1-default.js was expected to be different based on USERPROFILE settings." - exit 1 + $CLI_SCRIPT $TEST_TEMP/example1-default.js | diff -q $TEST_TEMP/example1-default.js - && { + echo "js-beautify output for $TEST_TEMP/example1-default.js was expected to be different based on USERPROFILE settings." + cleanup 1 } + cleanup } test_smoke_js_beautify() diff --git a/python/jsbeautifier/tests/shell-smoke-test.sh b/python/jsbeautifier/tests/shell-smoke-test.sh index 0508fee81..649990794 100755 --- a/python/jsbeautifier/tests/shell-smoke-test.sh +++ b/python/jsbeautifier/tests/shell-smoke-test.sh @@ -56,6 +56,19 @@ test_cli_common() fi } +setup_temp() +{ + mkdir -p target + TEST_TEMP=$PWD/`mktemp -d target/test_temp_XXXX` + echo Created $TEST_TEMP... +} + +cleanup() +{ + rm -rf $TEST_TEMP && echo Removed $TEST_TEMP... + test -z $1 || exit $1 +} + test_cli_js_beautify() { echo ---------------------------------------- @@ -90,58 +103,60 @@ test_cli_js_beautify() exit 1 } - rm -rf /tmp/js-beautify-mkdir - $CLI_SCRIPT -o /tmp/js-beautify-mkdir/js-beautify.js $SCRIPT_DIR/../../../js/bin/js-beautify.js && diff $SCRIPT_DIR/../../../js/bin/js-beautify.js /tmp/js-beautify-mkdir/js-beautify.js || { - $CLI_SCRIPT -o /tmp/js-beautify-mkdir/js-beautify.js $SCRIPT_DIR/../../../js/bin/js-beautify.js && diff $SCRIPT_DIR/../../../js/bin/js-beautify.js /tmp/js-beautify-mkdir/js-beautify.js | cat -t -e - echo "js-beautify output for $SCRIPT_DIR/../../../js/bin/js-beautify.js should have been created in /tmp/js-beautify-mkdir/js-beautify.js." - exit 1 + setup_temp + $CLI_SCRIPT -o $TEST_TEMP/js-beautify.js $SCRIPT_DIR/../../../js/bin/js-beautify.js && diff $SCRIPT_DIR/../../../js/bin/js-beautify.js $TEST_TEMP/js-beautify.js || { + $CLI_SCRIPT -o $TEST_TEMP/js-beautify.js $SCRIPT_DIR/../../../js/bin/js-beautify.js && diff $SCRIPT_DIR/../../../js/bin/js-beautify.js $TEST_TEMP/js-beautify.js | cat -t -e + echo "js-beautify output for $SCRIPT_DIR/../../../js/bin/js-beautify.js should have been created in $TEST_TEMP/js-beautify.js." + cleanup 1 } # ensure new line settings work - $CLI_SCRIPT -o /tmp/js-beautify-mkdir/js-beautify-n.js -e '\n' $SCRIPT_DIR/../../../js/bin/js-beautify.js - $CLI_SCRIPT -o /tmp/js-beautify-mkdir/js-beautify-rn.js -e '\r\n' /tmp/js-beautify-mkdir/js-beautify-n.js + $CLI_SCRIPT -o $TEST_TEMP/js-beautify-n.js -e '\n' $SCRIPT_DIR/../../../js/bin/js-beautify.js + $CLI_SCRIPT -o $TEST_TEMP/js-beautify-rn.js -e '\r\n' $TEST_TEMP/js-beautify-n.js - diff -q /tmp/js-beautify-mkdir/js-beautify-n.js /tmp/js-beautify-mkdir/js-beautify-rn.js && { - diff /tmp/js-beautify-mkdir/js-beautify-n.js /tmp/js-beautify-mkdir/js-beautify-rn.js | cat -t -e - echo "js-beautify output for /tmp/js-beautify-mkdir/js-beautify-n.js and /tmp/js-beautify-mkdir/js-beautify-rn.js was expected to be different." - exit 1 + diff -q $TEST_TEMP/js-beautify-n.js $TEST_TEMP/js-beautify-rn.js && { + diff $TEST_TEMP/js-beautify-n.js $TEST_TEMP/js-beautify-rn.js | cat -t -e + echo "js-beautify output for $TEST_TEMP/js-beautify-n.js and $TEST_TEMP/js-beautify-rn.js was expected to be different." + cleanup 1 } - $CLI_SCRIPT /tmp/js-beautify-mkdir/js-beautify-n.js | diff -q /tmp/js-beautify-mkdir/js-beautify-n.js - || { - echo "js-beautify output for /tmp/js-beautify-mkdir/js-beautify-n.js was expected to be unchanged." - exit 1 + $CLI_SCRIPT $TEST_TEMP/js-beautify-n.js | diff -q $TEST_TEMP/js-beautify-n.js - || { + echo "js-beautify output for $TEST_TEMP/js-beautify-n.js was expected to be unchanged." + cleanup 1 } - $CLI_SCRIPT --eol 'auto' /tmp/js-beautify-mkdir/js-beautify-rn.js | diff -q /tmp/js-beautify-mkdir/js-beautify-rn.js - || { - echo "js-beautify output for /tmp/js-beautify-mkdir/js-beautify-rn.js was expected to be unchanged." - exit 1 + $CLI_SCRIPT --eol 'auto' $TEST_TEMP/js-beautify-rn.js | diff -q $TEST_TEMP/js-beautify-rn.js - || { + echo "js-beautify output for $TEST_TEMP/js-beautify-rn.js was expected to be unchanged." + cleanup 1 } # ensure unchanged files are not overwritten - $CLI_SCRIPT -o /tmp/js-beautify-mkdir/js-beautify.js $SCRIPT_DIR/../../../js/bin/js-beautify.js - cp -p /tmp/js-beautify-mkdir/js-beautify.js /tmp/js-beautify-mkdir/js-beautify-old.js - touch /tmp/js-beautify-mkdir/js-beautify.js + $CLI_SCRIPT -o $TEST_TEMP/js-beautify.js $SCRIPT_DIR/../../../js/bin/js-beautify.js + cp -p $TEST_TEMP/js-beautify.js $TEST_TEMP/js-beautify-old.js + touch $TEST_TEMP/js-beautify.js sleep 2 - touch /tmp/js-beautify-mkdir/js-beautify-old.js - $CLI_SCRIPT -r /tmp/js-beautify-mkdir/js-beautify.js && test /tmp/js-beautify-mkdir/js-beautify.js -nt /tmp/js-beautify-mkdir/js-beautify-old.js && { - echo "js-beautify should not replace unchanged file /tmp/js-beautify-mkdir/js-beautify.js when using -r" - exit 1 + touch $TEST_TEMP/js-beautify-old.js + $CLI_SCRIPT -r $TEST_TEMP/js-beautify.js && test $TEST_TEMP/js-beautify.js -nt $TEST_TEMP/js-beautify-old.js && { + echo "js-beautify should not replace unchanged file $TEST_TEMP/js-beautify.js when using -r" + cleanup 1 } - $CLI_SCRIPT -o /tmp/js-beautify-mkdir/js-beautify.js /tmp/js-beautify-mkdir/js-beautify.js && test /tmp/js-beautify-mkdir/js-beautify.js -nt /tmp/js-beautify-mkdir/js-beautify-old.js && { - echo "js-beautify should not replace unchanged file /tmp/js-beautify-mkdir/js-beautify.js when using -o and same file name" - exit 1 + $CLI_SCRIPT -o $TEST_TEMP/js-beautify.js $TEST_TEMP/js-beautify.js && test $TEST_TEMP/js-beautify.js -nt $TEST_TEMP/js-beautify-old.js && { + echo "js-beautify should not replace unchanged file $TEST_TEMP/js-beautify.js when using -o and same file name" + cleanup 1 } - $CLI_SCRIPT -o /tmp/js-beautify-mkdir/js-beautify.js /tmp/js-beautify-mkdir/js-beautify-old.js && test /tmp/js-beautify-mkdir/js-beautify.js -nt /tmp/js-beautify-mkdir/js-beautify-old.js && { - echo "js-beautify should not replace unchanged file /tmp/js-beautify-mkdir/js-beautify.js when using -o and different file name" - exit 1 + $CLI_SCRIPT -o $TEST_TEMP/js-beautify.js $TEST_TEMP/js-beautify-old.js && test $TEST_TEMP/js-beautify.js -nt $TEST_TEMP/js-beautify-old.js && { + echo "js-beautify should not replace unchanged file $TEST_TEMP/js-beautify.js when using -o and different file name" + cleanup 1 } $CLI_SCRIPT $SCRIPT_DIR/../../../js/bin/css-beautify.js | diff -q $SCRIPT_DIR/../../../js/bin/css-beautify.js - && { echo "js-beautify output for $SCRIPT_DIR/../../../js/bin/css-beautify.js was expected to be different." - exit 1 + cleanup 1 } + + cleanup } test_smoke_js_beautify()