Adam Sadovsky | 5d72ffc | 2014-08-07 16:54:26 -0700 | [diff] [blame] | 1 | #!/bin/bash |
| 2 | |
Adam Sadovsky | 7a932b7 | 2014-08-07 18:04:29 -0700 | [diff] [blame] | 3 | # Tests this example. |
Adam Sadovsky | 5d72ffc | 2014-08-07 16:54:26 -0700 | [diff] [blame] | 4 | # |
| 5 | # Builds binaries, starts up services, waits a few seconds, then checks that the |
| 6 | # store browser responds with valid data. |
| 7 | |
Jiri Simsa | a942b75 | 2014-08-08 17:55:12 -0700 | [diff] [blame] | 8 | source "${VEYRON_ROOT}/environment/scripts/lib/shell_test.sh" |
Adam Sadovsky | 5d72ffc | 2014-08-07 16:54:26 -0700 | [diff] [blame] | 9 | |
| 10 | main() { |
Jiri Simsa | c53de36 | 2014-08-11 09:31:35 -0700 | [diff] [blame] | 11 | cd "${REPO_ROOT}/go/src/veyron/examples/mdb" |
Adam Sadovsky | 7e1ed83 | 2014-08-13 13:53:54 -0700 | [diff] [blame] | 12 | make build &>/dev/null || shell_test::fail "line ${LINENO}: failed to build" |
Jiri Simsa | a942b75 | 2014-08-08 17:55:12 -0700 | [diff] [blame] | 13 | local -r VIEWER_PORT_FILE="${TMPDIR}/viewer_port.txt" |
| 14 | ./run.sh "${VIEWER_PORT_FILE}" &>/dev/null & |
Adam Sadovsky | 5d72ffc | 2014-08-07 16:54:26 -0700 | [diff] [blame] | 15 | |
| 16 | sleep 5 # Wait for services to warm up. |
| 17 | |
Adam Sadovsky | bb73dda | 2014-08-08 12:11:33 -0700 | [diff] [blame] | 18 | if [ ! -f "${VIEWER_PORT_FILE}" ]; then |
Jiri Simsa | a942b75 | 2014-08-08 17:55:12 -0700 | [diff] [blame] | 19 | shell_test::fail "line ${LINENO}: failed to get viewer url" |
Adam Sadovsky | bb73dda | 2014-08-08 12:11:33 -0700 | [diff] [blame] | 20 | fi |
Adam Sadovsky | 7e1ed83 | 2014-08-13 13:53:54 -0700 | [diff] [blame] | 21 | local -r VIEWER_PORT=$(cat "${VIEWER_PORT_FILE}") |
Adam Sadovsky | 5d72ffc | 2014-08-07 16:54:26 -0700 | [diff] [blame] | 22 | |
Jiri Simsa | a942b75 | 2014-08-08 17:55:12 -0700 | [diff] [blame] | 23 | local -r HTML_FILE="${TMPDIR}/index.html" |
Adam Sadovsky | 7e1ed83 | 2014-08-13 13:53:54 -0700 | [diff] [blame] | 24 | 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 Sadovsky | 5d72ffc | 2014-08-07 16:54:26 -0700 | [diff] [blame] | 26 | |
Adam Sadovsky | bb73dda | 2014-08-08 12:11:33 -0700 | [diff] [blame] | 27 | if grep -q "moviesbox" "${HTML_FILE}"; then |
Jiri Simsa | a942b75 | 2014-08-08 17:55:12 -0700 | [diff] [blame] | 28 | shell_test::pass |
Adam Sadovsky | 5d72ffc | 2014-08-07 16:54:26 -0700 | [diff] [blame] | 29 | else |
Adam Sadovsky | bb73dda | 2014-08-08 12:11:33 -0700 | [diff] [blame] | 30 | cat "${HTML_FILE}" |
Jiri Simsa | a942b75 | 2014-08-08 17:55:12 -0700 | [diff] [blame] | 31 | shell_test::fail "line ${LINENO}: fetched page does not meet expectations" |
Adam Sadovsky | 5d72ffc | 2014-08-07 16:54:26 -0700 | [diff] [blame] | 32 | fi |
| 33 | } |
| 34 | |
| 35 | main "$@" |