Commit 8d3f3e5d authored by Nick Mathewson's avatar Nick Mathewson 🦀
Browse files

Practracker: add an integration test.

This test runs practracker with a set of 0 thresholds, to make sure
that it enumerates all its values right.  It tries running with an
empty exceptions file, and with an exceptions file that covers
_some_ of the data, and it makes sure that the outputs are as expected.
parent a79e2c29
Loading
Loading
Loading
Loading
+50 −0
Original line number Diff line number Diff line
#!/bin/sh

umask 077

TMPDIR=""
clean () {
  if [ -n "$TMPDIR" ] && [ -d "$TMPDIR" ]; then
    rm -rf "$TMPDIR"
  fi
}
trap clean EXIT HUP INT TERM

if test "${PRACTRACKER_DIR}" = "" ||
        test ! -e "${PRACTRACKER_DIR}/practracker.py" ; then
    PRACTRACKER_DIR=$(dirname "$0")
fi

TMPDIR="$(mktemp -d -t pracktracker.test.XXXXXX)"
if test -z "${TMPDIR}" || test ! -d "${TMPDIR}" ; then
    echo >&2 "mktemp failed."
    exit 1;
fi

DATA="${PRACTRACKER_DIR}/testdata"

run_practracker() {
    "${PYTHON:-python}" "${PRACTRACKER_DIR}/practracker.py" \
        --max-include-count=0 --max-file-size=0 --max-function-size=0 --terse \
        "${DATA}/" "$@";
}

echo "ex0:"

run_practracker --exceptions "${DATA}/ex0.txt" > "${TMPDIR}/ex0-received.txt"

if cmp "${TMPDIR}/ex0-received.txt" "${DATA}/ex0-expected.txt" ; then
    echo "  OK"
else
    exit 1
fi

echo "ex1:"

run_practracker --exceptions "${DATA}/ex1.txt" > "${TMPDIR}/ex1-received.txt"

if cmp "${TMPDIR}/ex1-received.txt" "${DATA}/ex1-expected.txt" ;then
    echo "  OK"
else
    exit 1
fi
+38 −0
Original line number Diff line number Diff line

#include "one.h"
#include "two.h"
#incldue "three.h"

# include "four.h"

int
i_am_a_function(void)
{
  call();
  call();
  /* comment

     another */

  return 3;
}

#	include  "five.h"

long
another_function(long x,
                 long y)
{
  int abcd;

  abcd = x+y;
  abcd *= abcd;

  /* comment here */

  return abcd +
    abcd +
    abcd;
}

/* And a comment to grow! */
+15 −0
Original line number Diff line number Diff line

MOCK_IMPL(int,
foo,(void))
{
  // blah1
  return 0;
}

MOCK_IMPL(int,
bar,( long z))
{
  // blah2

  return (int)(z+2);
}
+0 −0

Empty file added.

+7 −0
Original line number Diff line number Diff line
problem file-size a.c 38
problem include-count a.c 4
problem function-size a.c:i_am_a_function() 9
problem function-size a.c:another_function() 12
problem file-size b.c 15
problem function-size b.c:foo() 4
problem function-size b.c:bar() 5
Loading