Path: blob/main/tools/maint/find_unused_test_files.py
4150 views
#!/usr/bin/env python31"""Search the test directory for un-referenced files.23This might be slow because it runs a `git grep` for every4file in the test directory.5"""67import os8import sys9import subprocess1011script_dir = os.path.dirname(os.path.abspath(__file__))12root_dir = os.path.dirname(os.path.dirname(script_dir))1314ignore_files = {'runner.bat'}151617def clear_line():18if sys.stdout.isatty():19sys.stdout.write('\x1b[2K\r')202122def main():23all_files = subprocess.check_output(['git', 'ls-files', 'test'], encoding='utf-8', cwd=root_dir).split('\n')24for i, filename in enumerate(all_files):25if sys.stdout.isatty():26clear_line()27sys.stdout.write(f'checking [{i}/{len(all_files)}] ({filename})')28sys.stdout.flush()29dirname, basename = os.path.split(filename)30if basename in ignore_files:31continue32ext = os.path.splitext(filename)[1]33if basename.startswith('test_') and ext == '.py':34continue35lookfor = basename36if ext == '.out':37lookfor = os.path.splitext(basename)[1]38rtn = subprocess.call(['git', 'grep', '--quiet', lookfor, 'test'], cwd=root_dir)39if rtn != 0:40if sys.stdout.isatty():41clear_line()42print(f'Not found: {basename}')434445if __name__ == '__main__':46sys.exit(main())474849