Skip to content

Commit 14f6e46

Browse files
chronos: remove auto-test generation
Signed-off-by: David Korczynski <david@adalogics.com>
1 parent bce0797 commit 14f6e46

File tree

1 file changed

+0
-134
lines changed

1 file changed

+0
-134
lines changed

infra/experimental/chronos/manager.py

Lines changed: 0 additions & 134 deletions
Original file line numberDiff line numberDiff line change
@@ -413,109 +413,6 @@ def _get_project_language(project):
413413
return ''
414414

415415

416-
def _autogenerate_run_tests_script(project, container_output):
417-
"""Autogenerate `run_tests.sh` for a project."""
418-
project_path = os.path.join('projects', project)
419-
run_tests_script = os.path.join(project_path, 'run_tests.sh')
420-
421-
for run_test_script in RUN_TESTS_TO_TRY:
422-
with open(run_tests_script, 'w', encoding='utf-8') as f:
423-
f.write('#!/bin/bash\n')
424-
f.write('set -eux\n')
425-
f.write(run_test_script + '\n')
426-
f.write(f'echo "Running tests for project: {project}"\n')
427-
# Add more commands as needed to run tests
428-
os.chmod(run_tests_script, 0o755)
429-
logger.info('Created run_tests.sh for %s', project)
430-
431-
# Adjust the Dockerfile to copy it in
432-
dockerfile_path = os.path.join(project_path, 'Dockerfile')
433-
434-
add_run_tests = False
435-
with open(dockerfile_path, 'r', encoding='utf-8') as f:
436-
if 'COPY run_tests.sh' not in f.read():
437-
add_run_tests = True
438-
if add_run_tests:
439-
with open(dockerfile_path, 'a', encoding='utf-8') as f:
440-
f.write('\n# Copy the autogenerated run_tests.sh script\n')
441-
f.write('COPY run_tests.sh $SRC/run_tests.sh\n')
442-
f.write('RUN chmod +x $SRC/run_tests.sh\n')
443-
444-
succeeded = check_test(project, container_output=container_output)
445-
446-
# If it succeeded initially, then make sure that it actually succeeds
447-
# to generate a coverage report. if it does not, then it means the
448-
# generation actually failed.
449-
coverage_success = extract_test_coverage(project)
450-
if not coverage_success:
451-
logger.error('Coverage generation failed for %s', project)
452-
succeeded = False
453-
454-
success_file = os.path.join(project_path, 'run_tests.succeeded')
455-
with open(success_file, 'a', encoding='utf-8') as f:
456-
f.write(f'Auto-generation succeeded: {succeeded}\n')
457-
if succeeded:
458-
logger.info('Autogenerated run_tests.sh for %s successfully.', project)
459-
break
460-
461-
462-
def autogen_projects(apply_filtering=False,
463-
max_projects_to_try=1,
464-
container_output='stdout',
465-
projects_to_target=[]):
466-
"""Autogenerate `run_tests.sh` for all projects."""
467-
if projects_to_target:
468-
projects = projects_to_target
469-
else:
470-
projects = os.listdir('projects')
471-
projects_tries = 0
472-
for project in projects:
473-
if projects_tries >= max_projects_to_try:
474-
logger.info('Reached maximum number of projects to try: %d',
475-
max_projects_to_try)
476-
break
477-
478-
project_path = os.path.join('projects', project)
479-
if not os.path.isdir(project_path):
480-
continue
481-
482-
# Ensure the project language is C or C++
483-
if _get_project_language(project).lower() not in ['c', 'c++']:
484-
continue
485-
486-
run_tests_script = os.path.join(project_path, 'run_tests.sh')
487-
if os.path.exists(run_tests_script):
488-
logger.info('Skipping %s, run_tests.sh already exists.', project)
489-
continue
490-
491-
if apply_filtering:
492-
# Apply filtering logic to increase performance
493-
build_script = os.path.join(project_path, 'build.sh')
494-
if not os.path.exists(build_script):
495-
logger.warning('Skipping %s, build.sh does not exist.', project)
496-
continue
497-
with open(build_script, 'r', encoding='utf-8') as f:
498-
lines = f.readlines()
499-
# Filter out lines that are not relevant for the test script
500-
filtered_lines = [line for line in lines if 'make' in line]
501-
if not filtered_lines:
502-
logger.warning('Skipping %s, no relevant lines found in build.sh.',
503-
project)
504-
continue
505-
506-
# It only makes sense to autogenerate if the project actually builds, so
507-
# query OSS-Fuzz to make sure the most recent build was successful.
508-
509-
if not _get_oss_fuzz_build_status(project):
510-
logger.warning('Skipping %s, most recent build was not successful.',
511-
project)
512-
continue
513-
514-
projects_tries += 1
515-
logger.info('Autogenerating run_tests.sh for %s', project)
516-
_autogenerate_run_tests_script(project, container_output)
517-
518-
519416
def extract_test_coverage(project):
520417
"""Extract code coverage report from run_tests.sh script."""
521418
build_project_image(project)
@@ -569,11 +466,6 @@ def _cmd_dispatcher_build_cached_image(args):
569466
build_cached_project(args.project, sanitizer=args.sanitizer)
570467

571468

572-
def _cmd_dispatcher_autogen_tests(args):
573-
autogen_projects(args.apply_filtering, args.max_projects_to_try,
574-
args.projects)
575-
576-
577469
def _cmd_dispatcher_extract_coverage(args):
578470
extract_test_coverage(args.project)
579471

@@ -670,31 +562,6 @@ def parse_args():
670562
default='stdout',
671563
help='How to handle output from the container. ')
672564

673-
autogen_tests_parser = subparsers.add_parser(
674-
'autogen-tests',
675-
help='Tries to autogenerate `run_tests.sh` for projects.')
676-
autogen_tests_parser.add_argument(
677-
'--apply-filtering',
678-
action='store_true',
679-
help=('If set, applies filtering to increase performance but '
680-
'tests on fewer projects that are more likely to succeed.'))
681-
autogen_tests_parser.add_argument(
682-
'--max-projects-to-try',
683-
type=int,
684-
default=1,
685-
help='Maximum number of projects to try (default: 1).')
686-
autogen_tests_parser.add_argument(
687-
'--container-output',
688-
choices=['silent', 'file', 'stdout'],
689-
default='stdout',
690-
help='How to handle output from the container. ')
691-
autogen_tests_parser.add_argument(
692-
'--projects',
693-
default='',
694-
nargs='+',
695-
help=('The name of the projects to autogenerate tests for. '
696-
'If not specified, all projects will be considered.'))
697-
698565
extract_coverage_parser = subparsers.add_parser(
699566
'extract-test-coverage',
700567
help='Extract code coverage reports from run_tests.sh script')
@@ -714,7 +581,6 @@ def main():
714581
'check-test': _cmd_dispatcher_check_test,
715582
'check-replay': _cmd_dispatcher_check_replay,
716583
'build-cached-image': _cmd_dispatcher_build_cached_image,
717-
'autogen-tests': _cmd_dispatcher_autogen_tests,
718584
'extract-test-coverage': _cmd_dispatcher_extract_coverage,
719585
'check-run-tests-script': _cmd_check_run_tests_script
720586
}

0 commit comments

Comments
 (0)