tests: add test for duplicate headers

Signed-off-by: Mihai Tudor Panu <mihai.tudor.panu@intel.com>
This commit is contained in:
Mihai Tudor Panu 2017-02-03 21:26:42 -08:00
parent 2298846fef
commit 67e0ceb48d
2 changed files with 32 additions and 0 deletions

View File

@ -9,6 +9,11 @@ if (PYTHON_DEFAULT_AVAILABLE)
add_test (NAME check_file_encoding COMMAND ${PYTHON_DEFAULT_EXECUTABLE}
${CMAKE_CURRENT_SOURCE_DIR}/check_file_encoding.py
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src)
# Check for duplicate headers
add_test (NAME check_duplicate_headers COMMAND ${PYTHON_DEFAULT_EXECUTABLE}
${CMAKE_CURRENT_SOURCE_DIR}/check_duplicate_headers.py
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR})
endif (PYTHON_DEFAULT_AVAILABLE)
# Add some java tests

View File

@ -0,0 +1,27 @@
#!/usr/bin/python
import unittest
import os
class DuplicateHeadersTests(unittest.TestCase):
'''Checks for duplicate header names. Since all sensor headers get
installed as part of the API, duplicate headers can cause bad linking,
namespace class collisions and so on.'''
def test_duplicate_headers(self):
# Keep a list of all the header files in library
header_files = []
# Recusively search cwd for headers and add them to the list
for root, dirs, files in os.walk(os.curdir):
for file in files:
if file.endswith(('.h', '.hpp', '.hxx')):
header_files.append(file)
# Test for duplicates
duplicates = len(header_files) - len(set(header_files))
self.assertEqual(duplicates, 0,
"\nDuplicate headers: %d\n" % duplicates)
if __name__ == '__main__':
unittest.main()