5849898283
Unit tests functional and coverage back to 100% Add more routes to dictionary, add more credentials, add default port 5554, rename cameradar logs ENV variable, improve unit test readability, remove tmp file
89 lines
2.5 KiB
Bash
Executable File
89 lines
2.5 KiB
Bash
Executable File
#!/bin/bash
|
|
# fail out of the script if anything here fails
|
|
set -e
|
|
set -o pipefail
|
|
|
|
# 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
|
|
}
|
|
|
|
# Remove potential previous runs
|
|
rm -rf src test_program_bin toml-test
|
|
|
|
go get github.com/pelletier/go-buffruneio
|
|
go get github.com/davecgh/go-spew/spew
|
|
go get gopkg.in/yaml.v2
|
|
go get github.com/BurntSushi/toml
|
|
|
|
# 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
|
|
mkdir -p src/github.com/pelletier/go-toml/query
|
|
cp *.go *.toml src/github.com/pelletier/go-toml
|
|
cp -R cmd/* src/github.com/pelletier/go-toml/cmd
|
|
cp -R query/* src/github.com/pelletier/go-toml/query
|
|
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 -covermode=count -coverprofile=coverage.out
|
|
go test github.com/pelletier/go-toml/cmd/tomljson
|
|
go test github.com/pelletier/go-toml/query
|
|
|
|
# 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
|