Execute processes in sequence.
(self)
| 627 | return any_activity |
| 628 | |
| 629 | def _run_sequential(self) -> list[ProcessTiming]: |
| 630 | """Execute processes in sequence.""" |
| 631 | completed_timings: list[ProcessTiming] = [] |
| 632 | |
| 633 | # Enable status monitoring |
| 634 | self._status_monitoring_active = True |
| 635 | try: |
| 636 | for process in self.processes: |
| 637 | print(f"Running: {process.get_command_str()}", flush=True) |
| 638 | |
| 639 | # Track process start time |
| 640 | self._track_process_start(process) |
| 641 | |
| 642 | # Start the process if not already running |
| 643 | if process.proc is None: |
| 644 | process.start() |
| 645 | |
| 646 | try: |
| 647 | exit_code = cast(int, process.wait()) |
| 648 | |
| 649 | # Collect timing data |
| 650 | if process.duration is not None: |
| 651 | timing = ProcessTiming( |
| 652 | name=_get_friendly_test_name(process.command), |
| 653 | duration=process.duration, |
| 654 | command=str(process.command), |
| 655 | ) |
| 656 | completed_timings.append(timing) |
| 657 | |
| 658 | # Check for failure |
| 659 | if exit_code != 0: |
| 660 | error_snippet = extract_error_snippet( |
| 661 | _get_output_lines(process) |
| 662 | ) |
| 663 | failure = TestFailureInfo( |
| 664 | test_name=_extract_test_name(process.command), |
| 665 | command=str(process.command), |
| 666 | return_code=exit_code, |
| 667 | output=error_snippet, |
| 668 | error_type="exit_failure", |
| 669 | ) |
| 670 | raise TestExecutionFailedException( |
| 671 | f"Process failed with exit code {exit_code}", [failure] |
| 672 | ) |
| 673 | |
| 674 | except KeyboardInterrupt as ki: |
| 675 | handle_keyboard_interrupt(ki) |
| 676 | raise |
| 677 | except Exception as e: |
| 678 | print(f"Process failed: {process.get_command_str()} - {e}") |
| 679 | raise |
| 680 | finally: |
| 681 | self._status_monitoring_active = False |
| 682 | |
| 683 | return completed_timings |
| 684 | |
| 685 | def _run_with_dependencies(self) -> list[ProcessTiming]: |
| 686 | """Execute processes respecting dependency order.""" |
no test coverage detected