#!/bin/sh
#
# Run the automated tests for the project.

set -eu

hideok=chronic
if [ "$#" -gt 0 ]
then
    case "$1" in
	verbose | -v | --verbose)
	    hideok=
	    shift
	    ;;
    esac
fi

got_cargo_cmd()
{
    cargo --list | grep " $1 " > /dev/null
}

$hideok cargo build --all-targets
got_cargo_cmd clippy && $hideok cargo clippy
got_cargo_cmd fmt && $hideok cargo fmt -- --check
$hideok cargo test

sp-docgen obnam.md -o obnam.html
sp-docgen obnam.md -o obnam.pdf

sp-codegen obnam.md -o test.py
rm -f test.log
if [ "$(id -un)" = root ]
then
    echo Not running tests as root.
else
    $hideok python3 test.py --log test.log "$@"
fi

echo "Everything seems to be in order."
