From d6ff3de39c5b43726604a447f9839a9b2b49ff66 Mon Sep 17 00:00:00 2001 From: David Tolnay Date: Sun, 17 Feb 2019 11:12:26 -0800 Subject: [PATCH] Simplify running update-references.sh --- tests/README.md | 12 +++++++++++ tests/compiletest.rs | 1 + tests/ui/update-references.sh | 38 ++++++++++++----------------------- 3 files changed, 26 insertions(+), 25 deletions(-) create mode 100644 tests/README.md diff --git a/tests/README.md b/tests/README.md new file mode 100644 index 0000000..39ecf3c --- /dev/null +++ b/tests/README.md @@ -0,0 +1,12 @@ +#### To run tests + +```sh +(cd deps && cargo clean && cargo update && cargo build) +cargo test +``` + +#### To update goldens after running ui tests + +```sh +ui/update-references.sh +``` diff --git a/tests/compiletest.rs b/tests/compiletest.rs index 2a481ad..20f1b19 100644 --- a/tests/compiletest.rs +++ b/tests/compiletest.rs @@ -13,6 +13,7 @@ fn ui() { --extern serde_json \ ", )), + build_base: std::path::PathBuf::from("target/ui"), ..Default::default() }); } diff --git a/tests/ui/update-references.sh b/tests/ui/update-references.sh index aa99d35..ee500b6 100755 --- a/tests/ui/update-references.sh +++ b/tests/ui/update-references.sh @@ -19,32 +19,20 @@ # If you find yourself manually editing a foo.stderr file, you're # doing it wrong. -if [[ "$1" == "--help" || "$1" == "-h" || "$1" == "" || "$2" == "" ]]; then - echo "usage: $0 " - echo "" - echo "For example:" - echo " $0 ../../../build/x86_64-apple-darwin/test/ui *.rs */*.rs" -fi +cd "$(dirname "${BASH_SOURCE[0]}")" +BUILD_DIR="../../target/ui" -MYDIR=$(dirname $0) - -BUILD_DIR="$1" -shift - -while [[ "$1" != "" ]]; do - STDERR_NAME="${1/%.rs/.stderr}" - STDOUT_NAME="${1/%.rs/.stdout}" - shift - if [ -f $BUILD_DIR/$STDOUT_NAME ] && \ - ! (diff $BUILD_DIR/$STDOUT_NAME $MYDIR/$STDOUT_NAME >& /dev/null); then - echo updating $MYDIR/$STDOUT_NAME - cp $BUILD_DIR/$STDOUT_NAME $MYDIR/$STDOUT_NAME +for testcase in *.rs; do + STDERR_NAME="${testcase/%.rs/.stderr}" + STDOUT_NAME="${testcase/%.rs/.stdout}" + if [ -f "$BUILD_DIR/$STDOUT_NAME" ] && \ + ! (diff "$BUILD_DIR/$STDOUT_NAME" "$STDOUT_NAME" >& /dev/null); then + echo "updating $STDOUT_NAME" + cp "$BUILD_DIR/$STDOUT_NAME" "$STDOUT_NAME" fi - if [ -f $BUILD_DIR/$STDERR_NAME ] && \ - ! (diff $BUILD_DIR/$STDERR_NAME $MYDIR/$STDERR_NAME >& /dev/null); then - echo updating $MYDIR/$STDERR_NAME - cp $BUILD_DIR/$STDERR_NAME $MYDIR/$STDERR_NAME + if [ -f "$BUILD_DIR/$STDERR_NAME" ] && \ + ! (diff "$BUILD_DIR/$STDERR_NAME" "$STDERR_NAME" >& /dev/null); then + echo "updating $STDERR_NAME" + cp "$BUILD_DIR/$STDERR_NAME" "$STDERR_NAME" fi done - -