1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
#!/bin/bash
# autopkgtest check: Build a trivial project that uses the
# find_package(GSettings) macro.
# (C) 2017 Canonical Ltd.
set -euo pipefail
IFS=$'\n\t'
tempdir=$(mktemp --tmpdir="${AUTOPKGTEST_TMP:-/tmp}" -d)
trap "rm -rf $tempdir" 0 INT QUIT ABRT PIPE TERM
demodir="$(pwd)/examples/gsettings-demo"
srcdir="${tempdir}/source"
bindir="${tempdir}/build"
installdir="${tempdir}/install"
cp -r "${demodir}" "${srcdir}"
mkdir -p "${bindir}"
DEFAULT_UUID=$(uuidgen)
# Move into bindir temporarily
(
cd "${bindir}"
cmake "${srcdir}" -DCMAKE_INSTALL_PREFIX="${installdir}" -DGSETTINGS_LOCALINSTALL=1 -DGSETTINGS_COMPILE=1 -DDEFAULT_UUID_VALUE=${DEFAULT_UUID}
make
make ARGS+="--output-on-failure" test
make VERBOSE=1 install
)
### Test the schemas
check_schema() {
VALUE=$(gsettings get $1 $2)
EXPECTED=${3:-0}
echo -n "/schema/$1/$2: "
if [ "${VALUE}" == "${EXPECTED}" ]; then
echo "OK"
else
echo "FAILED"
echo "Generated schema is wrong."
echo "\tActual: ${VALUE}"
echo "\tExpected: ${EXPECTED}"
return 1
fi
}
# Verify the built schemas
export GSETTINGS_SCHEMA_DIR="${bindir}"
check_schema "com.canonical.cmake-extras.generated-test" "install-id" "'${DEFAULT_UUID}'"
check_schema "com.canonical.cmake-extras.static-test" "use-gsettings" "false"
# Verify the installed schemas
export GSETTINGS_SCHEMA_DIR="${installdir}/share/glib-2.0/schemas"
check_schema "com.canonical.cmake-extras.generated-test" "install-id" "'${DEFAULT_UUID}'"
check_schema "com.canonical.cmake-extras.static-test" "use-gsettings" "false"
|