| #!/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 `bin/pub.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. |
| # |
| # Notice that it is critical that this file is deleted before running tests |
| # again, as tests otherwise won't load the pub sources. |
| |
| # Find folder containing this script. |
| DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" |
| ROOT="$DIR/.." |
| |
| # Always remove the snapshot |
| function cleanup { |
| rm -f "$ROOT/bin/pub.dart.snapshot.dart2" |
| } |
| trap cleanup EXIT; |
| |
| # Build a snapshot for faster testing |
| echo 'Building snapshot' |
| ( |
| cd "$ROOT/"; |
| rm -f "$ROOT/bin/pub.dart.snapshot.dart2" |
| dart --snapshot=bin/pub.dart.snapshot.dart2 bin/pub.dart |
| ) |
| |
| # Run tests |
| echo 'Running tests' |
| pub run test -r expanded "$@" |