| #!/bin/bash -e |
| |
| ### Test wrapper script. |
| # Many of the integration tests runs the `pub` command, this is slow if every |
| # invocation requires the dart compiler to load all the sources. This script |
| # will create a `pub.XXX.dart.snapshot.dart2` which the tests can utilize. |
| # After creating the snapshot this script will forward arguments to |
| # `pub run test`, and ensure that the snapshot is deleted after tests have been |
| # run. |
| |
| # Find folder containing this script. |
| DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" |
| ROOT="$DIR/.." |
| |
| # PATH to a snapshot file. |
| PUB_SNAPSHOT_FILE=`mktemp -t pub.XXXXXXX.dart.snapshot.dart2` |
| |
| # Always remove the snapshot |
| function cleanup { |
| rm -f "$PUB_SNAPSHOT_FILE"; |
| } |
| trap cleanup EXIT; |
| |
| # Build a snapshot for faster testing |
| echo 'Building snapshot' |
| ( |
| cd "$ROOT/"; |
| rm -f "$PUB_SNAPSHOT_FILE" |
| dart --snapshot="$PUB_SNAPSHOT_FILE" bin/pub.dart |
| ) |
| |
| # Run tests |
| echo 'Running tests' |
| export _PUB_TEST_SNAPSHOT="$PUB_SNAPSHOT_FILE" |
| pub run test "$@" |