[tor-commits] [tor/master] Fix practracker_tests.py and practracker line counting.

dgoulet at torproject.org dgoulet at torproject.org
Thu Aug 1 14:20:43 UTC 2019


commit 4c095329964c47c7a37c812fdaf58b9238cc9ff5
Author: Nick Mathewson <nickm at torproject.org>
Date:   Wed Jul 17 14:00:28 2019 +0200

    Fix practracker_tests.py and practracker line counting.
    
    The practracker_tests.py unit test file called a function by its old
    name.
    
    Also, practracker counted functions as starting one line after the
    function name, and ending with the closing brace.  Now they start
    with the open brace and end with the closing brace.
---
 scripts/maint/practracker/metrics.py           | 8 ++++++--
 scripts/maint/practracker/practracker_tests.py | 8 +++++---
 2 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/scripts/maint/practracker/metrics.py b/scripts/maint/practracker/metrics.py
index 5fa305a86..b35029b51 100644
--- a/scripts/maint/practracker/metrics.py
+++ b/scripts/maint/practracker/metrics.py
@@ -31,6 +31,7 @@ def get_function_lines(f):
                             "DISABLE_GCC_WARNING", "DISABLE_GCC_WARNINGS"}
 
     in_function = False
+    found_openbrace = False
     for lineno, line in enumerate(f):
         if not in_function:
             # find the start of a function
@@ -41,10 +42,13 @@ def get_function_lines(f):
                     continue
                 func_start = lineno
                 in_function = True
-
+        elif not found_openbrace and line.startswith("{"):
+            found_openbrace = True
+            func_start = lineno
         else:
             # Find the end of a function
             if line.startswith("}"):
-                n_lines = lineno - func_start
+                n_lines = lineno - func_start + 1
                 in_function = False
+                found_openbrace = False
                 yield (func_name, n_lines)
diff --git a/scripts/maint/practracker/practracker_tests.py b/scripts/maint/practracker/practracker_tests.py
index cdbab2908..f11c55a3b 100755
--- a/scripts/maint/practracker/practracker_tests.py
+++ b/scripts/maint/practracker/practracker_tests.py
@@ -1,3 +1,5 @@
+#!/usr/bin/python
+
 """Some simple tests for practracker metrics"""
 
 import unittest
@@ -38,13 +40,13 @@ class TestFunctionLength(unittest.TestCase):
     def test_function_length(self):
         funcs = StringIO.StringIO(function_file)
         # All functions should have length 2
-        for name, lines in metrics.function_lines(funcs):
+        for name, lines in metrics.get_function_lines(funcs):
             self.assertEqual(name, "fun")
 
         funcs.seek(0)
 
-        for name, lines in metrics.function_lines(funcs):
-            self.assertEqual(lines, 2)
+        for name, lines in metrics.get_function_lines(funcs):
+            self.assertEqual(lines, 4)
 
 if __name__ == '__main__':
     unittest.main()





More information about the tor-commits mailing list