commit 796a9b37ea346f413f6684505ca31879ddf3f0f1
parent 6846d14868b561e51e5f6afc27a1f1e8a0da94ce
Author: David Goulet <dgoulet@torproject.org>
Date: Mon, 9 Sep 2019 14:53:12 -0400
Merge branch 'tor-github/pr/1264'
Diffstat:
10 files changed, 39 insertions(+), 3 deletions(-)
diff --git a/Makefile.am b/Makefile.am
@@ -176,6 +176,7 @@ EXTRA_DIST+= \
scripts/maint/practracker/practracker.py \
scripts/maint/practracker/practracker_tests.py \
scripts/maint/practracker/problem.py \
+ scripts/maint/practracker/testdata/.may_include \
scripts/maint/practracker/testdata/a.c \
scripts/maint/practracker/testdata/b.c \
scripts/maint/practracker/testdata/ex0-expected.txt \
@@ -183,6 +184,7 @@ EXTRA_DIST+= \
scripts/maint/practracker/testdata/ex1-expected.txt \
scripts/maint/practracker/testdata/ex1.txt \
scripts/maint/practracker/testdata/ex.txt \
+ scripts/maint/practracker/testdata/header.h \
scripts/maint/practracker/testdata/not_c_file \
scripts/maint/practracker/test_practracker.sh \
scripts/maint/practracker/util.py
diff --git a/changes/ticket31477 b/changes/ticket31477
@@ -0,0 +1,3 @@
+ o Minor features (tests):
+ - Add integration tests to make sure that practracker gives the outputs
+ we expect. Closes ticket 31477.
diff --git a/scripts/maint/practracker/exceptions.txt b/scripts/maint/practracker/exceptions.txt
@@ -325,3 +325,12 @@ problem function-size /src/tools/tor-gencert.c:parse_commandline() 111
problem function-size /src/tools/tor-resolve.c:build_socks5_resolve_request() 102
problem function-size /src/tools/tor-resolve.c:do_resolve() 171
problem function-size /src/tools/tor-resolve.c:main() 112
+
+problem dependency-violation /scripts/maint/practracker/testdata/a.c 3
+problem dependency-violation /scripts/maint/practracker/testdata/header.h 3
+problem dependency-violation /src/core/crypto/hs_ntor.h 1
+problem dependency-violation /src/core/or/cell_queue_st.h 1
+problem dependency-violation /src/core/or/channel.h 1
+problem dependency-violation /src/core/or/circuitlist.h 1
+problem dependency-violation /src/core/or/connection_edge.h 1
+problem dependency-violation /src/core/or/or.h 1
diff --git a/scripts/maint/practracker/practracker.py b/scripts/maint/practracker/practracker.py
@@ -218,7 +218,8 @@ def main(argv):
filt.addThreshold(problem.FileSizeItem("*.h", int(args.max_h_file_size)))
filt.addThreshold(problem.IncludeCountItem("*.h", int(args.max_h_include_count)))
filt.addThreshold(problem.FunctionSizeItem("*.c", int(args.max_function_size)))
- filt.addThreshold(problem.DependencyViolationItem("*", int(args.max_dependency_violations)))
+ filt.addThreshold(problem.DependencyViolationItem("*.c", int(args.max_dependency_violations)))
+ filt.addThreshold(problem.DependencyViolationItem("*.h", int(args.max_dependency_violations)))
# 1) Get all the .c files we care about
files_list = util.get_tor_c_files(TOR_TOPDIR)
diff --git a/scripts/maint/practracker/test_practracker.sh b/scripts/maint/practracker/test_practracker.sh
@@ -25,7 +25,9 @@ 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 \
+ --max-include-count=0 --max-file-size=0 \
+ --max-h-include-count=0 --max-h-file-size=0 \
+ --max-function-size=0 --terse \
"${DATA}/" "$@";
}
compare() {
diff --git a/scripts/maint/practracker/testdata/.may_include b/scripts/maint/practracker/testdata/.may_include
@@ -0,0 +1,3 @@
+!advisory
+
+permitted.h
diff --git a/scripts/maint/practracker/testdata/a.c b/scripts/maint/practracker/testdata/a.c
@@ -3,7 +3,7 @@
#include "two.h"
#incldue "three.h"
-# include "four.h"
+# include "permitted.h"
int
i_am_a_function(void)
diff --git a/scripts/maint/practracker/testdata/ex0-expected.txt b/scripts/maint/practracker/testdata/ex0-expected.txt
@@ -2,6 +2,10 @@ 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 dependency-violation a.c 3
problem file-size b.c 15
problem function-size b.c:foo() 4
problem function-size b.c:bar() 5
+problem file-size header.h 8
+problem include-count header.h 4
+problem dependency-violation header.h 3
diff --git a/scripts/maint/practracker/testdata/ex1.txt b/scripts/maint/practracker/testdata/ex1.txt
@@ -9,3 +9,7 @@ problem file-size b.c 15
# This is removed, and so will produce an error.
# problem function-size b.c:foo() 4
problem function-size b.c:bar() 5
+problem dependency-violation a.c 3
+problem dependency-violation header.h 3
+problem file-size header.h 8
+problem include-count header.h 4
diff --git a/scripts/maint/practracker/testdata/header.h b/scripts/maint/practracker/testdata/header.h
@@ -0,0 +1,8 @@
+
+// some forbidden includes
+#include "foo.h"
+#include "quux.h"
+#include "quup.h"
+
+// a permitted include
+#include "permitted.h"