38 lines
1.4 KiB
Python
38 lines
1.4 KiB
Python
from pathlib import Path
|
|
import sys
|
|
import tempfile
|
|
import unittest
|
|
|
|
sys.path.insert(0, str(Path(__file__).resolve().parents[1]))
|
|
import check_test_registration
|
|
|
|
|
|
class RegistrationTests(unittest.TestCase):
|
|
def registered(self, content):
|
|
with tempfile.TemporaryDirectory() as directory:
|
|
build = Path(directory)
|
|
(build / "CTestTestfile.cmake").write_text(content, encoding="utf-8")
|
|
return check_test_registration.registered(build)
|
|
|
|
def test_test_name_does_not_register_executable(self):
|
|
names = self.registered('add_test("missing_tests" "/usr/bin/python3" "unrelated.py")\n')
|
|
self.assertNotIn("missing_tests", names)
|
|
|
|
def test_direct_executable(self):
|
|
names = self.registered('add_test("bounds" "/build/tests/buffer_bounds_tests")\n')
|
|
self.assertIn("buffer_bounds_tests", names)
|
|
self.assertNotIn("bounds", names)
|
|
|
|
def test_wrapped_executable(self):
|
|
names = self.registered('add_test("bounds" "/usr/bin/python3" "runner.py" "/build/tests/buffer_bounds_tests")\n')
|
|
self.assertIn("buffer_bounds_tests", names)
|
|
|
|
def test_windows_executable_and_test_name(self):
|
|
names = self.registered('add_test("missing_tests.exe" "C:/Program Files/Python/python.exe" "runner.py" "C:/build/tests/buffer_bounds_tests.exe")\n')
|
|
self.assertIn("buffer_bounds_tests", names)
|
|
self.assertNotIn("missing_tests", names)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|