mirror of
				https://github.com/catchorg/Catch2.git
				synced 2025-10-31 12:17:11 +01:00 
			
		
		
		
	Extend checkLicense.py to also check tests
This commit is contained in:
		| @@ -1,3 +1,4 @@ | ||||
|  | ||||
| //              Copyright Catch2 Authors | ||||
| // Distributed under the Boost Software License, Version 1.0. | ||||
| //   (See accompanying file LICENSE_1_0.txt or copy at | ||||
|   | ||||
| @@ -1,32 +1,45 @@ | ||||
| #!/usr/bin/env python3 | ||||
| import os | ||||
|  | ||||
| import sys | ||||
| import glob | ||||
|  | ||||
| correct_licence = """\ | ||||
|  | ||||
| def get_license(): | ||||
|     with open("src/catch2/catch_all.hpp", "r") as f: | ||||
|         license = f.readlines()[0:7] | ||||
| //              Copyright Catch2 Authors | ||||
| // Distributed under the Boost Software License, Version 1.0. | ||||
| //   (See accompanying file LICENSE_1_0.txt or copy at | ||||
| //        https://www.boost.org/LICENSE_1_0.txt) | ||||
|  | ||||
|     return license | ||||
| // SPDX-License-Identifier: BSL-1.0 | ||||
| """ | ||||
|  | ||||
| def check_licence_in_file(filename: str) -> bool: | ||||
|     with open(filename, 'r') as f: | ||||
|         file_preamble = ''.join(f.readlines()[:7]) | ||||
|  | ||||
| def check_license(license): | ||||
|     if correct_licence != file_preamble: | ||||
|         print('File {} does not have proper licence'.format(filename)) | ||||
|         return False | ||||
|     return True | ||||
|  | ||||
| def check_licences_in_path(path: str) -> int: | ||||
|     failed = 0 | ||||
|     base_dir = "src/catch2/" | ||||
|  | ||||
|     # The _ represents the list of directories in base_dir | ||||
|     for root, _, files in os.walk(base_dir): | ||||
|         for file in files: | ||||
|             with open(root + "/" + file, "r") as f: | ||||
|                 file_license = f.readlines()[0:7] | ||||
|  | ||||
|             if file_license != license: | ||||
|                 print("File %s does not have license" % file) | ||||
|                 failed = 1 | ||||
|  | ||||
|     files_to_check = glob.glob(path + '/**/*.cpp', recursive=True) \ | ||||
|                    + glob.glob(path + '/**/*.hpp', recursive=True) | ||||
|     for file in files_to_check: | ||||
|         if not check_licence_in_file(file): | ||||
|             failed += 1 | ||||
|     return failed | ||||
|  | ||||
| def check_licences(): | ||||
|     failed = 0 | ||||
|     roots = ['src/catch2', 'tests'] | ||||
|     for root in roots: | ||||
|         failed += check_licences_in_path(root) | ||||
|      | ||||
|     if failed: | ||||
|         print('{} files are missing licence'.format(failed)) | ||||
|         sys.exit(1) | ||||
|  | ||||
| license = get_license() | ||||
| status = check_license(license) | ||||
| sys.exit(status) | ||||
| if __name__ == "__main__": | ||||
|     check_licences() | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Martin Hořeňovský
					Martin Hořeňovský