File: pfftools

package info (click to toggle)
libpff 20180714-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye
  • size: 17,824 kB
  • sloc: ansic: 282,833; sh: 6,080; makefile: 1,832; python: 410; java: 78; sed: 16
file content (69 lines) | stat: -rwxr-xr-x 1,694 bytes parent folder | download | duplicates (3)
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