| #!/bin/bash |
| |
| set -e |
| |
| # always change the working directory to the project's root directory |
| cd $(dirname $0)/.. |
| |
| # pass a $NODE environment variable from something like Makefile |
| # it should point to either ./node or ./node.exe, depending on the platform |
| if [ -z $NODE ]; then |
| echo "No node executable provided. Bailing." >&2 |
| exit 0 |
| fi |
| |
| rm -rf test-npm |
| |
| # make a copy of deps/npm to run the tests on |
| cp -r deps/npm test-npm |
| |
| cd test-npm |
| |
| # do a rm first just in case deps/npm contained these |
| rm -rf npm-cache npm-tmp npm-prefix |
| mkdir npm-cache npm-tmp npm-prefix |
| |
| # set some npm env variables to point to our new temporary folders |
| export npm_config_cache="$(pwd)/npm-cache" |
| export npm_config_prefix="$(pwd)/npm-prefix" |
| export npm_config_tmp="$(pwd)/npm-tmp" |
| |
| # ensure npm always uses the local node |
| export PATH="$(../$NODE -p 'require("path").resolve("..")'):$PATH" |
| unset NODE |
| |
| # make sure the binaries from the non-dev-deps are available |
| node cli.js rebuild |
| # install npm devDependencies and run npm's tests |
| node cli.js install --ignore-scripts |
| # run the tests |
| node cli.js run-script test-node |
| |
| # clean up everything one single shot |
| cd .. && rm -rf test-npm |