diff --git a/scripts/unit-test.py b/scripts/unit-test.py
index 0c3e4d0..d48b03e 100755
--- a/scripts/unit-test.py
+++ b/scripts/unit-test.py
@@ -562,7 +562,7 @@
     """
     return re.match('ppc64', platform.machine()) is None
 
-def maybe_run_valgrind():
+def maybe_make_valgrind():
     """
     Potentially runs the unit tests through valgrind for the package
     via `make check-valgrind`. If the package does not have valgrind testing
@@ -588,7 +588,7 @@
                 check_call_cmd('cat', os.path.join(root, f))
         raise Exception('Valgrind tests failed')
 
-def maybe_run_coverage():
+def maybe_make_coverage():
     """
     Potentially runs the unit tests through code coverage for the package
     via `make check-code-coverage`. If the package does not have code coverage
@@ -773,8 +773,8 @@
         else:
             run_unit_tests()
             if not TEST_ONLY:
-                maybe_run_valgrind()
-                maybe_run_coverage()
+                maybe_make_valgrind()
+                maybe_make_coverage()
         if not TEST_ONLY:
             run_cppcheck()
 
@@ -789,8 +789,8 @@
         if make_target_exists('test'):
             check_call_cmd('ctest', '.')
         if not TEST_ONLY:
-            maybe_run_valgrind()
-            maybe_run_coverage()
+            maybe_make_valgrind()
+            maybe_make_coverage()
             run_cppcheck()
             if os.path.isfile('.clang-tidy'):
                 check_call_cmd('run-clang-tidy-6.0.py', '-p', '.')
