blob: 8a9f5c93636f7d939f9bb2e1b000cd954af3799d [file] [log] [blame]
Adam Sadovsky5d72ffc2014-08-07 16:54:26 -07001#!/bin/bash
2
Adam Sadovsky7a932b72014-08-07 18:04:29 -07003# Tests this example.
Adam Sadovsky5d72ffc2014-08-07 16:54:26 -07004#
5# Builds binaries, starts up services, waits a few seconds, then checks that the
6# store browser responds with valid data.
7
Jiri Simsaa942b752014-08-08 17:55:12 -07008source "${VEYRON_ROOT}/environment/scripts/lib/shell_test.sh"
Adam Sadovsky5d72ffc2014-08-07 16:54:26 -07009
10main() {
Jiri Simsac53de362014-08-11 09:31:35 -070011 cd "${REPO_ROOT}/go/src/veyron/examples/mdb"
Adam Sadovsky7e1ed832014-08-13 13:53:54 -070012 make build &>/dev/null || shell_test::fail "line ${LINENO}: failed to build"
Jiri Simsaa942b752014-08-08 17:55:12 -070013 local -r VIEWER_PORT_FILE="${TMPDIR}/viewer_port.txt"
14 ./run.sh "${VIEWER_PORT_FILE}" &>/dev/null &
Adam Sadovsky5d72ffc2014-08-07 16:54:26 -070015
16 sleep 5 # Wait for services to warm up.
17
Adam Sadovskybb73dda2014-08-08 12:11:33 -070018 if [ ! -f "${VIEWER_PORT_FILE}" ]; then
Jiri Simsaa942b752014-08-08 17:55:12 -070019 shell_test::fail "line ${LINENO}: failed to get viewer url"
Adam Sadovskybb73dda2014-08-08 12:11:33 -070020 fi
Adam Sadovsky7e1ed832014-08-13 13:53:54 -070021 local -r VIEWER_PORT=$(cat "${VIEWER_PORT_FILE}")
Adam Sadovsky5d72ffc2014-08-07 16:54:26 -070022
Jiri Simsaa942b752014-08-08 17:55:12 -070023 local -r HTML_FILE="${TMPDIR}/index.html"
Adam Sadovsky7e1ed832014-08-13 13:53:54 -070024 local -r URL="http://127.0.0.1:${VIEWER_PORT}"
25 curl 2>/dev/null "${URL}" -o "${HTML_FILE}" || shell_test::fail "line ${LINENO}: failed to fetch ${URL}"
Adam Sadovsky5d72ffc2014-08-07 16:54:26 -070026
Adam Sadovskybb73dda2014-08-08 12:11:33 -070027 if grep -q "moviesbox" "${HTML_FILE}"; then
Jiri Simsaa942b752014-08-08 17:55:12 -070028 shell_test::pass
Adam Sadovsky5d72ffc2014-08-07 16:54:26 -070029 else
Adam Sadovskybb73dda2014-08-08 12:11:33 -070030 cat "${HTML_FILE}"
Jiri Simsaa942b752014-08-08 17:55:12 -070031 shell_test::fail "line ${LINENO}: fetched page does not meet expectations"
Adam Sadovsky5d72ffc2014-08-07 16:54:26 -070032 fi
33}
34
35main "$@"