#!/bin/bash # fail out of the script if anything here fails set -e # set the path to the present working directory export GOPATH=`pwd` function git_clone() { path=$1 branch=$2 version=$3 if [ ! -d "src/$path" ]; then mkdir -p src/$path git clone https://$path.git src/$path fi pushd src/$path git checkout "$branch" git reset --hard "$version" popd } go get github.com/pelletier/go-buffruneio go get github.com/davecgh/go-spew/spew # get code for BurntSushi TOML validation # pinning all to 'HEAD' for version 0.3.x work (TODO: pin to commit hash when tests stabilize) git_clone github.com/BurntSushi/toml master HEAD git_clone github.com/BurntSushi/toml-test master HEAD #was: 0.2.0 HEAD # build the BurntSushi test application go build -o toml-test github.com/BurntSushi/toml-test # vendorize the current lib for testing # NOTE: this basically mocks an install without having to go back out to github for code mkdir -p src/github.com/pelletier/go-toml/cmd cp *.go *.toml src/github.com/pelletier/go-toml cp -R cmd/* src/github.com/pelletier/go-toml/cmd go build -o test_program_bin src/github.com/pelletier/go-toml/cmd/test_program.go # Run basic unit tests go test github.com/pelletier/go-toml \ github.com/pelletier/go-toml/cmd/tomljson # run the entire BurntSushi test suite if [[ $# -eq 0 ]] ; then echo "Running all BurntSushi tests" ./toml-test ./test_program_bin | tee test_out else # run a specific test test=$1 test_path='src/github.com/BurntSushi/toml-test/tests' valid_test="$test_path/valid/$test" invalid_test="$test_path/invalid/$test" if [ -e "$valid_test.toml" ]; then echo "Valid Test TOML for $test:" echo "====" cat "$valid_test.toml" echo "Valid Test JSON for $test:" echo "====" cat "$valid_test.json" echo "Go-TOML Output for $test:" echo "====" cat "$valid_test.toml" | ./test_program_bin fi if [ -e "$invalid_test.toml" ]; then echo "Invalid Test TOML for $test:" echo "====" cat "$invalid_test.toml" echo "Go-TOML Output for $test:" echo "====" echo "go-toml Output:" cat "$invalid_test.toml" | ./test_program_bin fi fi