]> git.arvados.org - arvados.git/blob - build/package-testing/test-package-arvados-api-server.sh
22321: Add Marshal and RoundTrip tests for BlockSegment.
[arvados.git] / build / package-testing / test-package-arvados-api-server.sh
1 #!/bin/sh
2 # Copyright (C) The Arvados Authors. All rights reserved.
3 #
4 # SPDX-License-Identifier: AGPL-3.0
5
6 set -e
7
8 PACKAGE_NAME=arvados-api-server
9 API_GEMS_LS="$(mktemp --tmpdir api-gems-XXXXXX.list)"
10 trap 'rm -f "$API_GEMS_LS"' EXIT INT TERM QUIT
11
12 cd "/var/www/${PACKAGE_NAME%-server}"
13
14 cat_dropins() {
15     cat /lib/systemd/system/arvados-railsapi.service.d/*.conf
16 }
17
18 check_gem_dirs() {
19     local when="$1"; shift
20     env -C shared/vendor_bundle/ruby ls -1 >"$API_GEMS_LS"
21     local ls_count="$(wc -l <"$API_GEMS_LS")"
22     if [ "$ls_count" = 1 ]; then
23         return 0
24     fi
25     echo "Package $PACKAGE_NAME FAILED: $ls_count gem directories created after $when:" >&2
26     case "${ARVADOS_DEBUG:-0}" in
27         0) cat "$API_GEMS_LS" >&2 ;;
28         *) env -C shared/vendor_bundle/ruby find -maxdepth 3 -type d -ls >&2 ;;
29     esac
30     return 11
31 }
32
33 expect_grep() {
34     local expect_exit="$1"; shift
35     local actual_exit=0
36     grep "$@" >/dev/null || actual_exit=$?
37     if [ "$actual_exit" -eq "$expect_exit" ]; then
38         return 0
39     fi
40     echo "Package $PACKAGE_NAME FAILED: \`grep" "$@" "\` returned exit code $actual_exit" >&2
41     case "$actual_exit" in
42         0) return 1 ;;
43         *) return "$actual_exit" ;;
44     esac
45 }
46
47 env -C current bundle list >"$ARV_PACKAGES_DIR/$PACKAGE_NAME.gems"
48 check_gem_dirs "initial install"
49
50 case "$TARGET" in
51     debian*|ubuntu*)
52         cat_dropins | expect_grep 0 -x SupplementaryGroups=www-data
53         ;;
54     rocky*)
55         cat_dropins | expect_grep 1 "^SupplementaryGroups="
56         microdnf --assumeyes install nginx
57         microdnf --assumeyes reinstall "$PACKAGE_NAME" || test $? -eq 1
58         check_gem_dirs "package reinstall"
59         cat_dropins | expect_grep 0 -x SupplementaryGroups=nginx
60         ;;
61     *)
62         echo "$0: WARNING: Unknown target '$TARGET'." >&2
63         ;;
64 esac