Chris@1596: #!/bin/bash Chris@1596: Chris@1596: # The big problem with this test script is that it needs the cron Chris@1596: # scripts that generate some of this stuff to have been run at least Chris@1596: # once Chris@1596: Chris@1596: usage() { Chris@1596: echo 1>&2 Chris@1596: echo "Usage: $0 " 1>&2 Chris@1596: echo 1>&2 Chris@1596: echo " e.g. $0 https://code.soundsoftware.ac.uk" 1>&2 Chris@1596: echo " or $0 http://localhost:8080" 1>&2 Chris@1596: echo 1>&2 Chris@1596: exit 2 Chris@1596: } Chris@1596: Chris@1596: uribase="$1" Chris@1596: if [ -z "$uribase" ]; then Chris@1596: usage Chris@1596: fi Chris@1596: Chris@1596: set -eu Chris@1596: Chris@1597: # A project known to exist, be public, and have a repository Chris@1597: project_with_repo=vamp-plugin-sdk Chris@1597: Chris@1597: # A project known to exist, be public, and have embedded documentation Chris@1597: project_with_docs=vamp-plugin-sdk Chris@1597: Chris@1597: # A project known to exist, be public, and have a bibliography Chris@1597: project_with_biblio=sonic-visualiser Chris@1596: Chris@1612: # A project known not to exist Chris@1612: nonexistent_project=nonexistent-project Chris@1612: Chris@1613: # A file for download known to exist Chris@1613: file_for_download=/attachments/download/2210/vamp-plugin-sdk-2.7.1-binaries-osx.tar.gz Chris@1613: Chris@1596: tried=0 Chris@1596: succeeded=0 Chris@1596: Chris@1596: mydir=$(dirname "$0") Chris@1596: Chris@1596: try() { Chris@1596: mkdir -p "$mydir/output" Chris@1596: origin=$(pwd) Chris@1596: cd "$mydir/output" Chris@1596: path="$1" Chris@1596: description="$2" Chris@1612: expected="$3" Chris@1596: url="$uribase$path" Chris@1596: echo Chris@1596: echo "Trying \"$description\" [$url]..." Chris@1596: echo Chris@1596: if wget "$url" ; then Chris@1596: echo "+++ Succeeded" Chris@1596: succeeded=$(($succeeded + 1)) Chris@1596: else Chris@1612: returned="$?" Chris@1612: if [ "$returned" = "$expected" ]; then Chris@1612: echo "+++ Succeeded [returned expected code $expected]" Chris@1612: succeeded=$(($succeeded + 1)) Chris@1612: else Chris@1612: echo "--- FAILED with return code $returned" Chris@1612: fi Chris@1596: fi Chris@1597: tried=$(($tried + 1)) Chris@1597: cd "$origin" Chris@1596: } Chris@1596: Chris@1612: assert() { Chris@1612: try "$1" "$2" 0 Chris@1612: } Chris@1612: Chris@1612: fail() { Chris@1612: try "$1" "$2" "$3" Chris@1612: } Chris@1612: Chris@1612: assert "/" "Front page" Chris@1612: assert "/projects/$project_with_repo" "Project page" Chris@1612: assert "/projects/$project_with_biblio" "Project page with bibliography" Chris@1612: assert "/projects/$project_with_repo/repository" "Repository page" Chris@1612: assert "/hg/$project_with_repo" "Mercurial repo" Chris@1612: assert "/projects/$project_with_docs/embedded" "Project documentation page (from docgen cron script)" Chris@1612: assert "/git/$project_with_repo/info/refs" "Git repo mirror" Chris@1613: assert "$file_for_download" "File for download" Chris@1612: Chris@1612: # we expect this to return an http auth requirement, not a 404 - the Chris@1612: # value 6 is wget's return code for auth failure Chris@1612: fail "/hg/$nonexistent_project" "Mercurial repo" 6 Chris@1596: Chris@1596: echo Chris@1596: echo "Passed $succeeded of $tried" Chris@1596: echo Chris@1596: