Sha256: 756f7477b3dffe3b9fc281462a4e28040c6d2706fa760d7222a582426193e774

Contents?: true

Size: 1.69 KB

Versions: 51

Compression:

Stored size: 1.69 KB

Contents

#!/bin/bash

# In DENYWARNINGS mode, do not set -e so that we run all tests.
# This allows us to see all warnings.
if [ -z "$DENYWARNINGS" ]; then
    set -e
fi

tmp=${TMPDIR:-/tmp/}
mkdir "${tmp}exercises"

exitcode=0

# An exercise worth testing is defined here as any top level directory with
# a 'tests' directory
for exercise in exercises/*/tests; do
    # This assumes that exercises are only one directory deep
    # and that the primary module is named the same as the directory
    directory=$(dirname "${exercise}");

    workdir=$(mktemp -d "${tmp}${directory}.XXXXXXXXXX")

    cp -R -T $directory $workdir

    # Run in subshell to change workdir without affecting current workdir.
    (
        cd $workdir
        [ -d src ] || mkdir src
        cp example.rs src/lib.rs

        # Overwrite empty Cargo.toml if an example specific file exists
        if [ -f Cargo-example.toml ]; then
            cp Cargo-example.toml Cargo.toml
        fi

        # Forcibly strip all "ignore" statements from the testing files
        for test in tests/*.rs; do
            sed -i '/\[ignore\]/d' $test
        done

        if [ -n "$DENYWARNINGS" ]; then
            sed -i -e '1i #![deny(warnings)]' src/lib.rs

            # No-run mode so we see no test output.
            # Quiet mode so we see no compile output
            # (such as "Compiling"/"Downloading").
            # Compiler errors will still be shown though.
            # Both flags are necessary to keep things quiet.
            cargo test --quiet --no-run
        else
            # Run the test and get the status
            cargo test
        fi
    )

    status=$?

    if [ $status -ne 0 ]
    then
        exitcode=1
    fi
done

exit $exitcode

Version data entries

51 entries across 51 versions & 1 rubygems

Version Path
trackler-2.0.6.11 tracks/rust/_test/check-exercises.sh
trackler-2.0.6.10 tracks/rust/_test/check-exercises.sh
trackler-2.0.6.9 tracks/rust/_test/check-exercises.sh
trackler-2.0.6.8 tracks/rust/_test/check-exercises.sh
trackler-2.0.6.7 tracks/rust/_test/check-exercises.sh
trackler-2.0.6.6 tracks/rust/_test/check-exercises.sh
trackler-2.0.6.5 tracks/rust/_test/check-exercises.sh
trackler-2.0.6.4 tracks/rust/_test/check-exercises.sh
trackler-2.0.6.3 tracks/rust/_test/check-exercises.sh
trackler-2.0.6.2 tracks/rust/_test/check-exercises.sh
trackler-2.0.6.1 tracks/rust/_test/check-exercises.sh
trackler-2.0.6.0 tracks/rust/_test/check-exercises.sh
trackler-2.0.5.18 tracks/rust/_test/check-exercises.sh
trackler-2.0.5.17 tracks/rust/_test/check-exercises.sh
trackler-2.0.5.16 tracks/rust/_test/check-exercises.sh
trackler-2.0.5.15 tracks/rust/_test/check-exercises.sh
trackler-2.0.5.14 tracks/rust/_test/check-exercises.sh
trackler-2.0.5.13 tracks/rust/_test/check-exercises.sh
trackler-2.0.5.12 tracks/rust/_test/check-exercises.sh
trackler-2.0.5.11 tracks/rust/_test/check-exercises.sh