mirror of
https://github.com/ostreedev/ostree.git
synced 2024-12-31 21:18:22 +03:00
ebd0370976
I want to be able to easily test the C API on actual data in an OSTree repo. The shell `libtest.sh` has code to generate it. Bridge the two worlds by introducing a little `libostreetest` library which has a C API which spawns a shell that runs things in `libtest.sh`. Yes, this is about as beautiful as it sounds, which is to say, it's not. But it works! Note while we were here, I realized we were actually now creating *two* tmpdirs per test in `make check` because the tap driver was already doing that. Unify it so we know the C code can rely on it.
24 lines
589 B
Bash
Executable File
24 lines
589 B
Bash
Executable File
#! /bin/bash
|
|
#
|
|
# Run a test in tap mode, ensuring we have a temporary directory. We
|
|
# always use /var/tmp becuase we might want to use user xattrs, which
|
|
# aren't available on tmpfs.
|
|
#
|
|
# The test binary is passed as $1
|
|
|
|
srcd=$(cd $(dirname $1) && pwd)
|
|
bn=$(basename $1)
|
|
tempdir=$(mktemp -d /var/tmp/tap-test.XXXXXX)
|
|
touch ${tempdir}/.testtmp
|
|
function cleanup () {
|
|
if test -n "${TEST_SKIP_CLEANUP:-}"; then
|
|
echo "Skipping cleanup of ${test_tmpdir}"
|
|
else if test -f ${tempdir}/.test; then
|
|
rm "${tempdir}" -rf
|
|
fi
|
|
fi
|
|
}
|
|
trap cleanup EXIT
|
|
cd ${tempdir}
|
|
${srcd}/${bn} -k --tap
|