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 59 60 61 62 63 64 65 66 67 68 69
|
#!/bin/bash
TESTS="test_pffexport.sh test_pffinfo.sh"
SAMPLE_FILE="outlook.pst"
SAMPLE_URL="https://github.com/libyal/testdata/blob/main/pst/${SAMPLE_FILE}?raw=true"
SCRIPT_DIR="$(dirname "$0")"
SRC_DIR="$(cd "$SCRIPT_DIR/../../tests" && pwd)"
TESTS_DIR=$AUTOPKGTEST_TMP/tests
TOTAL_LOG=$AUTOPKGTEST_ARTIFACTS/total.log
SAMPLE_PATH=$TESTS_DIR/input/public/$SAMPLE_FILE
dload_sample()
{
url="$1"
dst="$2"
mkdir -p "$(dirname "$TESTS_DIR/$dst")"
if test -f "$SRC_DIR/$dst"; then
cp "$SRC_DIR/$dst" "$TESTS_DIR/$dst"
else
echo "Downloading $dst"
curl -L -k --silent --show-error -o "$TESTS_DIR/$dst" "$url" 2>&1
fi
}
prepare_test_dir()
{
dload_sample "$SAMPLE_URL" "input/public/$SAMPLE_FILE"
mkdir -p "$AUTOPKGTEST_TMP/pfftools" "$TESTS_DIR"
ln -s /usr/bin/pffexport "$AUTOPKGTEST_TMP/pfftools/pffexport"
ln -s /usr/bin/pffinfo "$AUTOPKGTEST_TMP/pfftools/pffinfo"
cd "$SRC_DIR" && cp $TESTS test_runner.sh "$TESTS_DIR/"
}
run_test()
{
script="$1"
name=$(basename $1)
logfile="$AUTOPKGTEST_ARTIFACTS/$(basename "$script.log")"
$script > $logfile 2>&1
exitstatus=$?
case $exitstatus in
0) text=PASS; success=1;;
77) text=SKIP; success=1;;
99) text=ERROR; success=0;;
*) text=FAIL; success=0;;
esac
echo $text: $name
if test $success -ne 1; then
echo "Logfile: $logfile" >> $TOTAL_LOG
cat $logfile >> $TOTAL_LOG
echo >> $TOTAL_LOG
fi
}
if prepare_test_dir && test -f $SAMPLE_PATH; then
RES=0
cd $TESTS_DIR
for TEST in $TESTS; do
run_test $TESTS_DIR/$TEST
done
cd $SRC_DIR
test -f $TOTAL_LOG && cat $TOTAL_LOG && RES=1
exit $RES
else
echo "Sample file not found: $SAMPLE_PATH"
exit 2
fi
|