test_absolute_adb_path_is_executed_but_not_serialized (test_adb_validator.AdbValidatorTests.test_absolute_adb_path_is_executed_but_not_serialized) ... ok
test_adb_must_be_available_on_path (test_adb_validator.AdbValidatorTests.test_adb_must_be_available_on_path) ... ok
test_common_resumed_activity_fields_are_parsed (test_adb_validator.AdbValidatorTests.test_common_resumed_activity_fields_are_parsed) ... ok
test_failed_launch_command_is_not_validated (test_adb_validator.AdbValidatorTests.test_failed_launch_command_is_not_validated) ... ok
test_launch_success_with_mismatched_resumed_activity_is_not_validated (test_adb_validator.AdbValidatorTests.test_launch_success_with_mismatched_resumed_activity_is_not_validated) ... ok
test_multiple_devices_without_serial_is_an_error (test_adb_validator.AdbValidatorTests.test_multiple_devices_without_serial_is_an_error) ... ok
test_no_connected_devices_is_an_error (test_adb_validator.AdbValidatorTests.test_no_connected_devices_is_an_error) ... ok
test_offline_and_unauthorized_devices_are_ignored (test_adb_validator.AdbValidatorTests.test_offline_and_unauthorized_devices_are_ignored) ... ok
test_package_must_already_be_installed (test_adb_validator.AdbValidatorTests.test_package_must_already_be_installed) ... ok
test_parsing_one_connected_usable_device (test_adb_validator.AdbValidatorTests.test_parsing_one_connected_usable_device) ... ok
test_requested_finding_id_does_not_exist (test_adb_validator.AdbValidatorTests.test_requested_finding_id_does_not_exist) ... ok
test_requested_serial_must_be_usable (test_adb_validator.AdbValidatorTests.test_requested_serial_must_be_usable) ... ok
test_screenshot_execution_error_is_also_only_a_warning (test_adb_validator.AdbValidatorTests.test_screenshot_execution_error_is_also_only_a_warning) ... ok
test_screenshot_failure_warns_without_overriding_validation (test_adb_validator.AdbValidatorTests.test_screenshot_failure_warns_without_overriding_validation) ... ok
test_selected_finding_must_be_an_exported_speculative_activity (test_adb_validator.AdbValidatorTests.test_selected_finding_must_be_an_exported_speculative_activity) ... ok
test_successful_launch_and_matching_resumed_activity (test_adb_validator.AdbValidatorTests.test_successful_launch_and_matching_resumed_activity) ... ok
test_completed_not_validated_run_is_a_successful_cli_run (test_agent_cli.AgentCliTests.test_completed_not_validated_run_is_a_successful_cli_run) ... ok
test_completed_validated_run_returns_zero_and_prints_summary (test_agent_cli.AgentCliTests.test_completed_validated_run_returns_zero_and_prints_summary) ... ok
test_custom_limits_are_forwarded (test_agent_cli.AgentCliTests.test_custom_limits_are_forwarded) ... ok
test_default_limits_are_forwarded (test_agent_cli.AgentCliTests.test_default_limits_are_forwarded) ... ok
test_help_lists_separate_outputs_and_optional_budgets (test_agent_cli.AgentCliTests.test_help_lists_separate_outputs_and_optional_budgets) ... ok
test_precondition_abort_returns_nonzero_with_clear_error (test_agent_cli.AgentCliTests.test_precondition_abort_returns_nonzero_with_clear_error) ... ok
test_setup_error_returns_nonzero (test_agent_cli.AgentCliTests.test_setup_error_returns_nonzero) ... ok
test_agent_package_imports_only_standard_library_and_local_packages (test_agent_compatibility.AgentCompatibilityTests.test_agent_package_imports_only_standard_library_and_local_packages) ... ok
test_existing_validator_cli_arguments_remain_available (test_agent_compatibility.AgentCompatibilityTests.test_existing_validator_cli_arguments_remain_available) ... ok
test_not_exported_control_still_has_no_agent_input_finding (test_agent_compatibility.AgentCompatibilityTests.test_not_exported_control_still_has_no_agent_input_finding) ... ok
test_permission_protected_control_still_has_no_agent_input_finding (test_agent_compatibility.AgentCompatibilityTests.test_permission_protected_control_still_has_no_agent_input_finding) ... ok
test_action_model_has_no_channel_for_arbitrary_commands (test_agent_executor.AgentExecutorTests.test_action_model_has_no_channel_for_arbitrary_commands) ... ok
test_approved_actions_get_deterministic_ids_and_empty_arguments (test_agent_executor.AgentExecutorTests.test_approved_actions_get_deterministic_ids_and_empty_arguments) ... ok
test_backend_cannot_replace_host_call_identity (test_agent_executor.AgentExecutorTests.test_backend_cannot_replace_host_call_identity) ... ok
test_complete_trace_order_matches_action_order (test_agent_executor.AgentExecutorTests.test_complete_trace_order_matches_action_order) ... ok
test_execution_uses_only_trusted_context_values (test_agent_executor.AgentExecutorTests.test_execution_uses_only_trusted_context_values) ... ok
test_planner_observation_is_immutable_and_cannot_override_context (test_agent_executor.AgentExecutorTests.test_planner_observation_is_immutable_and_cannot_override_context) ... ok
test_planner_projection_contains_structured_timeout (test_agent_executor.AgentExecutorTests.test_planner_projection_contains_structured_timeout) ... ok
test_planner_projection_distinguishes_successful_and_failed_launches (test_agent_executor.AgentExecutorTests.test_planner_projection_distinguishes_successful_and_failed_launches) ... ok
test_planner_projection_exposes_independently_resumed_activity (test_agent_executor.AgentExecutorTests.test_planner_projection_exposes_independently_resumed_activity) ... ok
test_planner_projection_sanitises_execution_errors_and_host_paths (test_agent_executor.AgentExecutorTests.test_planner_projection_sanitises_execution_errors_and_host_paths) ... ok
test_rejected_or_mismatched_approval_never_reaches_runner (test_agent_executor.AgentExecutorTests.test_rejected_or_mismatched_approval_never_reaches_runner) ... ok
test_timeout_is_represented_structurally (test_agent_executor.AgentExecutorTests.test_timeout_is_represented_structurally) ... ok
test_tool_failure_is_represented_structurally (test_agent_executor.AgentExecutorTests.test_tool_failure_is_represented_structurally) ... ok
test_agent_run_serialization_has_no_absolute_host_paths (test_agent_orchestrator.AgentOrchestratorTests.test_agent_run_serialization_has_no_absolute_host_paths) ... ok
test_executor_exception_terminates_safely (test_agent_orchestrator.AgentOrchestratorTests.test_executor_exception_terminates_safely) ... ok
test_force_stop_failure_aborts_before_launch (test_agent_orchestrator.AgentOrchestratorTests.test_force_stop_failure_aborts_before_launch) ... ok
test_guarded_validation_semantics_match_direct_stage_c (test_agent_orchestrator.AgentOrchestratorTests.test_guarded_validation_semantics_match_direct_stage_c) ... ok
test_high_level_run_writes_compatible_artifacts_and_reporter_accepts_them (test_agent_orchestrator.AgentOrchestratorTests.test_high_level_run_writes_compatible_artifacts_and_reporter_accepts_them) ... ok
test_inspection_failure_is_recorded_and_screenshot_still_runs (test_agent_orchestrator.AgentOrchestratorTests.test_inspection_failure_is_recorded_and_screenshot_still_runs) ... ok
test_invalid_png_is_warning_only (test_agent_orchestrator.AgentOrchestratorTests.test_invalid_png_is_warning_only) ... ok
test_launch_failure_still_inspects_and_captures_screenshot (test_agent_orchestrator.AgentOrchestratorTests.test_launch_failure_still_inspects_and_captures_screenshot) ... ok
test_launch_timeout_still_produces_a_deterministic_negative (test_agent_orchestrator.AgentOrchestratorTests.test_launch_timeout_still_produces_a_deterministic_negative) ... ok
test_malformed_planner_action_is_rejected_and_serializable (test_agent_orchestrator.AgentOrchestratorTests.test_malformed_planner_action_is_rejected_and_serializable) ... ok
test_missing_required_launch_evidence_terminates_safely (test_agent_orchestrator.AgentOrchestratorTests.test_missing_required_launch_evidence_terminates_safely) ... ok
test_missing_resumed_activity_fails_o2 (test_agent_orchestrator.AgentOrchestratorTests.test_missing_resumed_activity_fails_o2) ... ok
test_oracles_use_authoritative_tool_results_not_planner_copies (test_agent_orchestrator.AgentOrchestratorTests.test_oracles_use_authoritative_tool_results_not_planner_copies) ... ok
test_package_check_execution_error_aborts_safely (test_agent_orchestrator.AgentOrchestratorTests.test_package_check_execution_error_aborts_safely) ... ok
test_package_not_installed_aborts_before_force_stop (test_agent_orchestrator.AgentOrchestratorTests.test_package_not_installed_aborts_before_force_stop) ... ok
test_planner_exception_is_counted_and_terminates_safely (test_agent_orchestrator.AgentOrchestratorTests.test_planner_exception_is_counted_and_terminates_safely) ... ok
test_planner_rationale_cannot_change_commands_or_oracles (test_agent_orchestrator.AgentOrchestratorTests.test_planner_rationale_cannot_change_commands_or_oracles) ... ok
test_planner_state_contains_structured_launch_failure (test_agent_orchestrator.AgentOrchestratorTests.test_planner_state_contains_structured_launch_failure) ... ok
test_planner_state_contains_structured_launch_timeout (test_agent_orchestrator.AgentOrchestratorTests.test_planner_state_contains_structured_launch_timeout) ... ok
test_planner_state_contains_useful_successful_observations (test_agent_orchestrator.AgentOrchestratorTests.test_planner_state_contains_useful_successful_observations) ... ok
test_planner_turn_budget_terminates_before_finish (test_agent_orchestrator.AgentOrchestratorTests.test_planner_turn_budget_terminates_before_finish) ... ok
test_positive_fixture_passes_both_oracles_and_is_validated (test_agent_orchestrator.AgentOrchestratorTests.test_positive_fixture_passes_both_oracles_and_is_validated) ... ok
test_positive_validation_semantics_match_direct_stage_c (test_agent_orchestrator.AgentOrchestratorTests.test_positive_validation_semantics_match_direct_stage_c) ... ok
test_resumed_activity_mismatch_fails_only_o2 (test_agent_orchestrator.AgentOrchestratorTests.test_resumed_activity_mismatch_fails_only_o2) ... ok
test_runtime_guarded_fixture_passes_o1_fails_o2_and_completes (test_agent_orchestrator.AgentOrchestratorTests.test_runtime_guarded_fixture_passes_o1_fails_o2_and_completes) ... ok
test_screenshot_failure_is_warning_only_and_does_not_override_validated (test_agent_orchestrator.AgentOrchestratorTests.test_screenshot_failure_is_warning_only_and_does_not_override_validated) ... ok
test_stage_g_validation_schema_is_unchanged (test_agent_orchestrator.AgentOrchestratorTests.test_stage_g_validation_schema_is_unchanged) ... ok
test_tool_call_budget_rejects_fifth_tool_without_executing_it (test_agent_orchestrator.AgentOrchestratorTests.test_tool_call_budget_rejects_fifth_tool_without_executing_it) ... ok
test_trace_and_steps_record_five_tools_then_finish (test_agent_orchestrator.AgentOrchestratorTests.test_trace_and_steps_record_five_tools_then_finish) ... ok
test_canonical_scripted_sequence_is_accepted (test_agent_policy.AgentPolicyTests.test_canonical_scripted_sequence_is_accepted) ... ok
test_consecutive_action_budget_is_enforced (test_agent_policy.AgentPolicyTests.test_consecutive_action_budget_is_enforced) ... ok
test_duplicate_tool_is_rejected (test_agent_policy.AgentPolicyTests.test_duplicate_tool_is_rejected) ... ok
test_finish_requires_launch_and_inspection_observations (test_agent_policy.AgentPolicyTests.test_finish_requires_launch_and_inspection_observations) ... ok
test_force_stop_requires_successful_installed_observation (test_agent_policy.AgentPolicyTests.test_force_stop_requires_successful_installed_observation) ... ok
test_incorrect_first_action_is_rejected (test_agent_policy.AgentPolicyTests.test_incorrect_first_action_is_rejected) ... ok
test_inspection_requires_a_launch_attempt (test_agent_policy.AgentPolicyTests.test_inspection_requires_a_launch_attempt) ... ok
test_launch_requires_successful_force_stop (test_agent_policy.AgentPolicyTests.test_launch_requires_successful_force_stop) ... ok
test_malformed_action_is_rejected (test_agent_policy.AgentPolicyTests.test_malformed_action_is_rejected) ... ok
test_no_action_is_accepted_after_finish (test_agent_policy.AgentPolicyTests.test_no_action_is_accepted_after_finish) ... ok
test_planner_turn_budget_exhaustion_is_explicit (test_agent_policy.AgentPolicyTests.test_planner_turn_budget_exhaustion_is_explicit) ... ok
test_policy_rejection_causes_no_runner_invocation (test_agent_policy.AgentPolicyTests.test_policy_rejection_causes_no_runner_invocation) ... ok
test_screenshot_requires_an_inspection_attempt (test_agent_policy.AgentPolicyTests.test_screenshot_requires_an_inspection_attempt) ... ok
test_tool_action_cannot_accept_context_overrides (test_agent_policy.AgentPolicyTests.test_tool_action_cannot_accept_context_overrides) ... ok
test_tool_call_budget_exhaustion_is_explicit (test_agent_policy.AgentPolicyTests.test_tool_call_budget_exhaustion_is_explicit) ... ok
test_unknown_tool_is_rejected (test_agent_policy.AgentPolicyTests.test_unknown_tool_is_rejected) ... ok
test_duplicate_case_ids_are_rejected (test_evaluation_benchmark_loader.BenchmarkLoaderTests.test_duplicate_case_ids_are_rejected) ... ok
test_dynamic_cases_require_all_dynamic_expectations (test_evaluation_benchmark_loader.BenchmarkLoaderTests.test_dynamic_cases_require_all_dynamic_expectations) ... ok
test_invalid_expected_static_fields_are_rejected (test_evaluation_benchmark_loader.BenchmarkLoaderTests.test_invalid_expected_static_fields_are_rejected) ... ok
test_missing_app_and_manifest_paths_are_rejected (test_evaluation_benchmark_loader.BenchmarkLoaderTests.test_missing_app_and_manifest_paths_are_rejected) ... ok
test_paths_must_be_portable_and_traversal_free (test_evaluation_benchmark_loader.BenchmarkLoaderTests.test_paths_must_be_portable_and_traversal_free) ... ok
test_static_negative_rejects_dynamic_expectations (test_evaluation_benchmark_loader.BenchmarkLoaderTests.test_static_negative_rejects_dynamic_expectations) ... ok
test_unsupported_schema_is_rejected (test_evaluation_benchmark_loader.BenchmarkLoaderTests.test_unsupported_schema_is_rejected) ... ok
test_valid_stage_h_suite_loads (test_evaluation_benchmark_loader.BenchmarkLoaderTests.test_valid_stage_h_suite_loads) ... ok
test_all_correct_replay_returns_zero_and_identifies_replayed_evidence (test_evaluation_cli.EvaluationCliTests.test_all_correct_replay_returns_zero_and_identifies_replayed_evidence) ... ok
test_existing_output_is_not_overwritten (test_evaluation_cli.EvaluationCliTests.test_existing_output_is_not_overwritten) ... ok
test_help_lists_all_stage_h_options (test_evaluation_cli.EvaluationCliTests.test_help_lists_all_stage_h_options) ... ok
test_incorrect_case_returns_one (test_evaluation_cli.EvaluationCliTests.test_incorrect_case_returns_one) ... ok
test_live_requires_serial_and_artifacts_directory (test_evaluation_cli.EvaluationCliTests.test_live_requires_serial_and_artifacts_directory) ... ok
test_replay_creates_no_case_artifact_directories (test_evaluation_cli.EvaluationCliTests.test_replay_creates_no_case_artifact_directories) ... ok
test_replay_rejects_live_only_options (test_evaluation_cli.EvaluationCliTests.test_replay_rejects_live_only_options) ... ok
test_existing_agent_cli_arguments_remain_unchanged (test_evaluation_compatibility.EvaluationCompatibilityTests.test_existing_agent_cli_arguments_remain_unchanged) ... ok
test_host_persistence_policies_are_fixed_by_evidence_source (test_evaluation_compatibility.EvaluationCompatibilityTests.test_host_persistence_policies_are_fixed_by_evidence_source) ... ok
test_live_agent_and_evaluation_results_have_live_provenance (test_evaluation_compatibility.EvaluationCompatibilityTests.test_live_agent_and_evaluation_results_have_live_provenance) ... ok
test_live_persistence_policy_writes_only_allowed_artifacts (test_evaluation_compatibility.EvaluationCompatibilityTests.test_live_persistence_policy_writes_only_allowed_artifacts) ... ok
test_live_portable_replays_round_trip_through_strict_loader (test_evaluation_compatibility.EvaluationCompatibilityTests.test_live_portable_replays_round_trip_through_strict_loader) ... ok
test_production_python_imports_are_standard_library_or_local (test_evaluation_compatibility.EvaluationCompatibilityTests.test_production_python_imports_are_standard_library_or_local) ... ok
test_validation_schema_is_unchanged_and_reporter_accepts_both_live_outputs (test_evaluation_compatibility.EvaluationCompatibilityTests.test_validation_schema_is_unchanged_and_reporter_accepts_both_live_outputs) ... ok
test_correct_not_validated_is_a_correct_case (test_evaluation_metrics.EvaluationMetricsTests.test_correct_not_validated_is_a_correct_case) ... ok
test_duplicate_and_policy_rejection_counts_are_zero_for_baseline (test_evaluation_metrics.EvaluationMetricsTests.test_duplicate_and_policy_rejection_counts_are_zero_for_baseline) ... ok
test_json_field_order_is_stable (test_evaluation_metrics.EvaluationMetricsTests.test_json_field_order_is_stable) ... ok
test_metrics_contain_no_host_paths_or_fabricated_artifacts (test_evaluation_metrics.EvaluationMetricsTests.test_metrics_contain_no_host_paths_or_fabricated_artifacts) ... ok
test_metrics_have_explicit_replay_provenance (test_evaluation_metrics.EvaluationMetricsTests.test_metrics_have_explicit_replay_provenance) ... ok
test_suite_totals_equal_case_totals (test_evaluation_metrics.EvaluationMetricsTests.test_suite_totals_equal_case_totals) ... ok
test_tool_call_and_status_counts_are_correct (test_evaluation_metrics.EvaluationMetricsTests.test_tool_call_and_status_counts_are_correct) ... ok
test_mock_invalid_action_remains_subject_to_policy (test_evaluation_planner.EvaluationPlannerBoundaryTests.test_mock_invalid_action_remains_subject_to_policy) ... ok
test_mock_planner_provider_works_through_same_runner_interface (test_evaluation_planner.EvaluationPlannerBoundaryTests.test_mock_planner_provider_works_through_same_runner_interface) ... ok
test_runner_does_not_require_planner_implementation_attributes (test_evaluation_planner.EvaluationPlannerBoundaryTests.test_runner_does_not_require_planner_implementation_attributes) ... ok
test_scripted_planner_works_through_runner (test_evaluation_planner.EvaluationPlannerBoundaryTests.test_scripted_planner_works_through_runner) ... ok
test_completed_live_result_converts_to_replay_bundle (test_evaluation_recording.ReplayRecordingTests.test_completed_live_result_converts_to_replay_bundle) ... ok
test_recording_json_is_stable (test_evaluation_recording.ReplayRecordingTests.test_recording_json_is_stable) ... ok
test_recording_preserves_oracle_inputs (test_evaluation_recording.ReplayRecordingTests.test_recording_preserves_oracle_inputs) ... ok
test_recording_preserves_structured_failure (test_evaluation_recording.ReplayRecordingTests.test_recording_preserves_structured_failure) ... ok
test_recording_preserves_structured_timeout (test_evaluation_recording.ReplayRecordingTests.test_recording_preserves_structured_timeout) ... ok
test_recording_round_trips_through_loader (test_evaluation_recording.ReplayRecordingTests.test_recording_round_trips_through_loader) ... ok
test_recording_strips_execution_and_conclusion_fields (test_evaluation_recording.ReplayRecordingTests.test_recording_strips_execution_and_conclusion_fields) ... ok
test_replayed_agent_result_cannot_be_recorded_as_live (test_evaluation_recording.ReplayRecordingTests.test_replayed_agent_result_cannot_be_recorded_as_live) ... ok
test_action_policy_remains_active_in_replay (test_evaluation_replay.ReplayBackendTests.test_action_policy_remains_active_in_replay) ... ok
test_case_and_finding_mismatch_are_rejected (test_evaluation_replay.ReplayBackendTests.test_case_and_finding_mismatch_are_rejected) ... ok
test_duplicate_observation_is_rejected (test_evaluation_replay.ReplayBackendTests.test_duplicate_observation_is_rejected) ... ok
test_host_generated_call_ids_are_used (test_evaluation_replay.ReplayBackendTests.test_host_generated_call_ids_are_used) ... ok
test_missing_requested_observation_fails_safely (test_evaluation_replay.ReplayBackendTests.test_missing_requested_observation_fails_safely) ... ok
test_package_and_component_integrity_mismatch_are_rejected (test_evaluation_replay.ReplayBackendTests.test_package_and_component_integrity_mismatch_are_rejected) ... ok
test_replay_cannot_override_trusted_arguments (test_evaluation_replay.ReplayBackendTests.test_replay_cannot_override_trusted_arguments) ... ok
test_replay_files_contain_no_forbidden_execution_fields_or_paths (test_evaluation_replay.ReplayBackendTests.test_replay_files_contain_no_forbidden_execution_fields_or_paths) ... ok
test_replay_fixture_cannot_supply_call_ids_or_arguments (test_evaluation_replay.ReplayBackendTests.test_replay_fixture_cannot_supply_call_ids_or_arguments) ... ok
test_replay_performs_no_adb_or_subprocess_execution (test_evaluation_replay.ReplayBackendTests.test_replay_performs_no_adb_or_subprocess_execution) ... ok
test_unsupported_replay_schema_is_rejected (test_evaluation_replay.ReplayBackendTests.test_unsupported_replay_schema_is_rejected) ... ok
test_unused_records_are_detected (test_evaluation_replay.ReplayBackendTests.test_unused_records_are_detected) ... ok
test_valid_vulnerable_and_guarded_replays_load (test_evaluation_replay.ReplayBackendTests.test_valid_vulnerable_and_guarded_replays_load) ... ok
test_wrong_observation_type_is_rejected (test_evaluation_replay.ReplayBackendTests.test_wrong_observation_type_is_rejected) ... ok
test_both_replays_terminate_with_planner_finished (test_evaluation_replay_outcomes.ReplayOutcomeTests.test_both_replays_terminate_with_planner_finished) ... ok
test_both_replays_use_five_successful_tools (test_evaluation_replay_outcomes.ReplayOutcomeTests.test_both_replays_use_five_successful_tools) ... ok
test_fixture_tool_order_is_canonical (test_evaluation_replay_outcomes.ReplayOutcomeTests.test_fixture_tool_order_is_canonical) ... ok
test_guarded_replay_has_six_turns_and_five_calls (test_evaluation_replay_outcomes.ReplayOutcomeTests.test_guarded_replay_has_six_turns_and_five_calls) ... ok
test_guarded_replay_produces_expected_oracles_and_status (test_evaluation_replay_outcomes.ReplayOutcomeTests.test_guarded_replay_produces_expected_oracles_and_status) ... ok
test_repeated_replay_is_equivalent_after_runtime_normalisation (test_evaluation_replay_outcomes.ReplayOutcomeTests.test_repeated_replay_is_equivalent_after_runtime_normalisation) ... ok
test_replay_suite_matches_known_stage_g_outcomes (test_evaluation_replay_outcomes.ReplayOutcomeTests.test_replay_suite_matches_known_stage_g_outcomes) ... ok
test_static_controls_have_null_dynamic_fields (test_evaluation_replay_outcomes.ReplayOutcomeTests.test_static_controls_have_null_dynamic_fields) ... ok
test_vulnerable_replay_has_six_turns_and_five_calls (test_evaluation_replay_outcomes.ReplayOutcomeTests.test_vulnerable_replay_has_six_turns_and_five_calls) ... ok
test_vulnerable_replay_produces_expected_oracles_and_status (test_evaluation_replay_outcomes.ReplayOutcomeTests.test_vulnerable_replay_produces_expected_oracles_and_status) ... ok
test_guarded_scanner_result_matches_metadata (test_evaluation_static.StaticEvaluationTests.test_guarded_scanner_result_matches_metadata) ... ok
test_not_exported_remains_zero_findings (test_evaluation_static.StaticEvaluationTests.test_not_exported_remains_zero_findings) ... ok
test_permission_protected_remains_zero_findings (test_evaluation_static.StaticEvaluationTests.test_permission_protected_remains_zero_findings) ... ok
test_static_mismatch_prevents_dynamic_execution (test_evaluation_static.StaticEvaluationTests.test_static_mismatch_prevents_dynamic_execution) ... ok
test_static_negative_cases_never_invoke_the_agent (test_evaluation_static.StaticEvaluationTests.test_static_negative_cases_never_invoke_the_agent) ... ok
test_vulnerable_scanner_result_matches_metadata (test_evaluation_static.StaticEvaluationTests.test_vulnerable_scanner_result_matches_metadata) ... ok
test_admin_activity_references_the_declared_signature_permission (test_exported_activity_controls.ExportedActivityControlTests.test_admin_activity_references_the_declared_signature_permission) ... ok
test_all_application_ids_are_distinct (test_exported_activity_controls.ExportedActivityControlTests.test_all_application_ids_are_distinct) ... ok
test_benchmark_metadata_has_exactly_the_four_expected_cases (test_exported_activity_controls.ExportedActivityControlTests.test_benchmark_metadata_has_exactly_the_four_expected_cases) ... ok
test_benchmark_metadata_is_valid_schema_version_two_json (test_exported_activity_controls.ExportedActivityControlTests.test_benchmark_metadata_is_valid_schema_version_two_json) ... ok
test_dynamic_cases_have_explicit_selection_and_termination_labels (test_exported_activity_controls.ExportedActivityControlTests.test_dynamic_cases_have_explicit_selection_and_termination_labels) ... ok
test_dynamic_cases_have_the_expected_final_outcomes (test_exported_activity_controls.ExportedActivityControlTests.test_dynamic_cases_have_the_expected_final_outcomes) ... ok
test_dynamic_cases_have_the_expected_oracle_combinations (test_exported_activity_controls.ExportedActivityControlTests.test_dynamic_cases_have_the_expected_oracle_combinations) ... ok
test_dynamic_validation_is_limited_to_the_two_speculative_cases (test_exported_activity_controls.ExportedActivityControlTests.test_dynamic_validation_is_limited_to_the_two_speculative_cases) ... ok
test_every_metadata_app_and_manifest_path_exists (test_exported_activity_controls.ExportedActivityControlTests.test_every_metadata_app_and_manifest_path_exists) ... ok
test_metadata_packages_match_actual_application_ids (test_exported_activity_controls.ExportedActivityControlTests.test_metadata_packages_match_actual_application_ids) ... ok
test_metadata_static_counts_and_statuses_match_scanner_results (test_exported_activity_controls.ExportedActivityControlTests.test_metadata_static_counts_and_statuses_match_scanner_results) ... ok
test_not_exported_manifest_produces_no_findings (test_exported_activity_controls.ExportedActivityControlTests.test_not_exported_manifest_produces_no_findings) ... ok
test_permission_protected_manifest_produces_no_findings (test_exported_activity_controls.ExportedActivityControlTests.test_permission_protected_manifest_produces_no_findings) ... ok
test_runtime_guarded_manifest_produces_speculative_admin_finding (test_exported_activity_controls.ExportedActivityControlTests.test_runtime_guarded_manifest_produces_speculative_admin_finding) ... ok
test_signature_permission_is_declared_with_signature_protection (test_exported_activity_controls.ExportedActivityControlTests.test_signature_permission_is_declared_with_signature_protection) ... ok
test_vulnerable_manifest_still_produces_speculative_admin_finding (test_exported_activity_controls.ExportedActivityControlTests.test_vulnerable_manifest_still_produces_speculative_admin_finding) ... ok
test_explicitly_exported_activity_without_permission_is_flagged (test_manifest_analyzer.ManifestAnalyzerTests.test_explicitly_exported_activity_without_permission_is_flagged) ... ok
test_exported_activity_with_permission_is_not_flagged (test_manifest_analyzer.ManifestAnalyzerTests.test_exported_activity_with_permission_is_not_flagged) ... ok
test_exported_false_component_is_not_flagged (test_manifest_analyzer.ManifestAnalyzerTests.test_exported_false_component_is_not_flagged) ... ok
test_invalid_xml_raises_clear_error (test_manifest_analyzer.ManifestAnalyzerTests.test_invalid_xml_raises_clear_error) ... ok
test_missing_manifest_file_raises_clear_error (test_manifest_analyzer.ManifestAnalyzerTests.test_missing_manifest_file_raises_clear_error) ... ok
test_multiple_component_types_are_collected_and_filtered (test_manifest_analyzer.ManifestAnalyzerTests.test_multiple_component_types_are_collected_and_filtered) ... ok
test_cli_creates_output_parent_directory (test_markdown_report.MarkdownReportTests.test_cli_creates_output_parent_directory) ... ok
test_cli_input_error_returns_two_without_traceback_or_output (test_markdown_report.MarkdownReportTests.test_cli_input_error_returns_two_without_traceback_or_output) ... ok
test_host_specific_adb_command_is_rejected (test_markdown_report.MarkdownReportTests.test_host_specific_adb_command_is_rejected) ... ok
test_limitations_are_deduplicated (test_markdown_report.MarkdownReportTests.test_limitations_are_deduplicated) ... ok
test_mismatched_component_names_are_rejected (test_markdown_report.MarkdownReportTests.test_mismatched_component_names_are_rejected) ... ok
test_mismatched_finding_ids_are_rejected (test_markdown_report.MarkdownReportTests.test_mismatched_finding_ids_are_rejected) ... ok
test_missing_and_malformed_json_raise_clear_errors (test_markdown_report.MarkdownReportTests.test_missing_and_malformed_json_raise_clear_errors) ... ok
test_missing_required_oracle_is_rejected (test_markdown_report.MarkdownReportTests.test_missing_required_oracle_is_rejected) ... ok
test_nonzero_launch_return_code_is_rejected_for_validated_evidence (test_markdown_report.MarkdownReportTests.test_nonzero_launch_return_code_is_rejected_for_validated_evidence) ... ok
test_not_validated_evidence_produces_not_validated_report (test_markdown_report.MarkdownReportTests.test_not_validated_evidence_produces_not_validated_report) ... ok
test_report_contains_no_absolute_host_path (test_markdown_report.MarkdownReportTests.test_report_contains_no_absolute_host_path) ... ok
test_report_includes_portable_command_and_relative_links (test_markdown_report.MarkdownReportTests.test_report_includes_portable_command_and_relative_links) ... ok
test_resumed_component_mismatch_is_rejected_for_validated_evidence (test_markdown_report.MarkdownReportTests.test_resumed_component_mismatch_is_rejected_for_validated_evidence) ... ok
test_untrusted_evidence_cannot_break_markdown_structure (test_markdown_report.MarkdownReportTests.test_untrusted_evidence_cannot_break_markdown_structure) ... ok
test_valid_evidence_produces_validated_report (test_markdown_report.MarkdownReportTests.test_valid_evidence_produces_validated_report) ... ok
test_validated_evidence_with_failed_o1_is_rejected (test_markdown_report.MarkdownReportTests.test_validated_evidence_with_failed_o1_is_rejected) ... ok
test_validated_evidence_with_failed_o2_is_rejected (test_markdown_report.MarkdownReportTests.test_validated_evidence_with_failed_o2_is_rejected) ... ok
test_dry_run_rejects_output_and_api_call_gate (test_openai_cli.OpenAICliTests.test_dry_run_rejects_output_and_api_call_gate) ... ok
test_explicit_gate_can_run_only_an_injected_fake_transport (test_openai_cli.OpenAICliTests.test_explicit_gate_can_run_only_an_injected_fake_transport) ... ok
test_help_and_invalid_arguments_never_reach_credential_boundary (test_openai_cli.OpenAICliTests.test_help_and_invalid_arguments_never_reach_credential_boundary) ... ok
test_help_exposes_gated_openai_options (test_openai_cli.OpenAICliTests.test_help_exposes_gated_openai_options) ... ok
test_keyless_dry_run_reports_conservative_limits (test_openai_cli.OpenAICliTests.test_keyless_dry_run_reports_conservative_limits) ... ok
test_openai_run_is_blocked_before_credential_access_without_gate (test_openai_cli.OpenAICliTests.test_openai_run_is_blocked_before_credential_access_without_gate) ... ok
test_parser_rejects_max_reasoning_effort (test_openai_cli.OpenAICliTests.test_parser_rejects_max_reasoning_effort) ... ok
test_repeatability_dry_run_reuses_prior_trial_and_counts_only_new_calls (test_openai_cli.OpenAICliTests.test_repeatability_dry_run_reuses_prior_trial_and_counts_only_new_calls) ... ok
test_scripted_planner_rejects_explicit_openai_only_options (test_openai_cli.OpenAICliTests.test_scripted_planner_rejects_explicit_openai_only_options) ... ok
test_static_only_openai_selection_never_reaches_credential_boundary (test_openai_cli.OpenAICliTests.test_static_only_openai_selection_never_reaches_credential_boundary) ... ok
test_agent_run_and_validation_result_public_fields_are_unchanged (test_openai_compatibility.OpenAICompatibilityTests.test_agent_run_and_validation_result_public_fields_are_unchanged) ... ok
test_openai_sdk_import_is_confined_to_dedicated_client_module (test_openai_compatibility.OpenAICompatibilityTests.test_openai_sdk_import_is_confined_to_dedicated_client_module) ... ok
test_production_sdk_factory_sets_timeout_and_zero_retries (test_openai_compatibility.OpenAICompatibilityTests.test_production_sdk_factory_sets_timeout_and_zero_retries) ... ok
test_suite_result_loader_accepts_stage_h_schema_one (test_openai_compatibility.OpenAICompatibilityTests.test_suite_result_loader_accepts_stage_h_schema_one) ... ok
test_suite_schema_advances_to_two_without_changing_agent_schema (test_openai_compatibility.OpenAICompatibilityTests.test_suite_schema_advances_to_two_without_changing_agent_schema) ... ok
test_budget_overrides_can_only_reduce_approved_ceilings (test_openai_costs.OpenAICostAndBudgetTests.test_budget_overrides_can_only_reduce_approved_ceilings) ... ok
test_cost_budget_is_checked_before_sending_the_next_request (test_openai_costs.OpenAICostAndBudgetTests.test_cost_budget_is_checked_before_sending_the_next_request) ... ok
test_fixed_pricing_and_conservative_request_ceiling (test_openai_costs.OpenAICostAndBudgetTests.test_fixed_pricing_and_conservative_request_ceiling) ... ok
test_input_allowance_is_per_request (test_openai_costs.OpenAICostAndBudgetTests.test_input_allowance_is_per_request) ... ok
test_output_allowance_is_per_request_and_per_case (test_openai_costs.OpenAICostAndBudgetTests.test_output_allowance_is_per_request_and_per_case) ... ok
test_six_requests_are_allowed_but_seventh_is_rejected (test_openai_costs.OpenAICostAndBudgetTests.test_six_requests_are_allowed_but_seventh_is_rejected) ... ok
test_suite_ledger_caps_twelve_requests_across_case_planners (test_openai_costs.OpenAICostAndBudgetTests.test_suite_ledger_caps_twelve_requests_across_case_planners) ... ok
test_unpriced_cache_write_halts_cost_accounting (test_openai_costs.OpenAICostAndBudgetTests.test_unpriced_cache_write_halts_cost_accounting) ... ok
test_case_filter_runs_only_selected_dynamic_case (test_openai_evaluation.OpenAIEvaluationTests.test_case_filter_runs_only_selected_dynamic_case) ... ok
test_fake_openai_replay_preserves_all_labelled_outcomes (test_openai_evaluation.OpenAIEvaluationTests.test_fake_openai_replay_preserves_all_labelled_outcomes) ... ok
test_policy_rejects_invalid_model_order_without_tool_execution (test_openai_evaluation.OpenAIEvaluationTests.test_policy_rejects_invalid_model_order_without_tool_execution) ... ok
test_refusal_is_planner_error_and_executes_no_tool (test_openai_evaluation.OpenAIEvaluationTests.test_refusal_is_planner_error_and_executes_no_tool) ... ok
test_repeated_experiment_aggregates_request_and_cost_telemetry (test_openai_evaluation.OpenAIEvaluationTests.test_repeated_experiment_aggregates_request_and_cost_telemetry) ... ok
test_static_negative_controls_make_no_requests_and_have_null_telemetry (test_openai_evaluation.OpenAIEvaluationTests.test_static_negative_controls_make_no_requests_and_have_null_telemetry) ... ok
test_api_error_is_sanitized_and_zero_retry (test_openai_planner.OpenAIPlannerTests.test_api_error_is_sanitized_and_zero_retry) ... ok
test_empty_output_is_a_distinct_failure (test_openai_planner.OpenAIPlannerTests.test_empty_output_is_a_distinct_failure) ... ok
test_exact_responses_request_contract_is_serialized (test_openai_planner.OpenAIPlannerTests.test_exact_responses_request_contract_is_serialized) ... ok
test_finish_response_is_converted_without_oracle_claim (test_openai_planner.OpenAIPlannerTests.test_finish_response_is_converted_without_oracle_claim) ... ok
test_invalid_response_shape_is_sanitized (test_openai_planner.OpenAIPlannerTests.test_invalid_response_shape_is_sanitized) ... ok
test_malformed_output_is_not_repaired (test_openai_planner.OpenAIPlannerTests.test_malformed_output_is_not_repaired) ... ok
test_model_latency_is_measured_separately_with_injected_clock (test_openai_planner.OpenAIPlannerTests.test_model_latency_is_measured_separately_with_injected_clock) ... ok
test_model_mismatch_incomplete_refusal_and_bad_status_are_distinct (test_openai_planner.OpenAIPlannerTests.test_model_mismatch_incomplete_refusal_and_bad_status_are_distinct) ... ok
test_provider_exception_types_map_to_safe_portable_categories (test_openai_planner.OpenAIPlannerTests.test_provider_exception_types_map_to_safe_portable_categories) ... ok
test_snapshot_specific_reasoning_efforts_are_the_only_supported_values (test_openai_planner.OpenAIPlannerTests.test_snapshot_specific_reasoning_efforts_are_the_only_supported_values) ... ok
test_prompt_excludes_trusted_execution_values (test_openai_prompt_builder.OpenAIPromptBuilderTests.test_prompt_excludes_trusted_execution_values) ... ok
test_prompt_exposes_only_five_argument_free_tools (test_openai_prompt_builder.OpenAIPromptBuilderTests.test_prompt_exposes_only_five_argument_free_tools) ... ok
test_prompt_is_canonical_and_hashes_are_stable (test_openai_prompt_builder.OpenAIPromptBuilderTests.test_prompt_is_canonical_and_hashes_are_stable) ... ok
test_untrusted_text_cannot_change_static_instructions (test_openai_prompt_builder.OpenAIPromptBuilderTests.test_untrusted_text_cannot_change_static_instructions) ... ok
test_action_tool_pairing_is_semantically_validated (test_openai_response_schema.OpenAIResponseSchemaTests.test_action_tool_pairing_is_semantically_validated) ... ok
test_duplicate_keys_and_trailing_content_are_rejected_without_repair (test_openai_response_schema.OpenAIResponseSchemaTests.test_duplicate_keys_and_trailing_content_are_rejected_without_repair) ... ok
test_extra_missing_and_wrong_typed_fields_are_rejected (test_openai_response_schema.OpenAIResponseSchemaTests.test_extra_missing_and_wrong_typed_fields_are_rejected) ... ok
test_rationale_is_single_line_trimmed_control_free_and_bounded (test_openai_response_schema.OpenAIResponseSchemaTests.test_rationale_is_single_line_trimmed_control_free_and_bounded) ... ok
test_schema_is_strict_and_enumerates_only_registered_tools (test_openai_response_schema.OpenAIResponseSchemaTests.test_schema_is_strict_and_enumerates_only_registered_tools) ... ok
test_valid_tool_and_finish_actions_are_converted (test_openai_response_schema.OpenAIResponseSchemaTests.test_valid_tool_and_finish_actions_are_converted) ... ok
test_authoritative_policy_executor_and_oracle_have_no_openai_dependency (test_openai_security.OpenAISecurityTests.test_authoritative_policy_executor_and_oracle_have_no_openai_dependency) ... ok
test_credential_environment_name_is_isolated_to_client_boundary (test_openai_security.OpenAISecurityTests.test_credential_environment_name_is_isolated_to_client_boundary) ... ok
test_fake_transport_works_with_socket_connections_denied (test_openai_security.OpenAISecurityTests.test_fake_transport_works_with_socket_connections_denied) ... ok
test_secret_and_provider_dump_paths_are_ignored (test_openai_security.OpenAISecurityTests.test_secret_and_provider_dump_paths_are_ignored) ... ok
test_telemetry_is_json_safe_and_contains_no_headers_or_raw_payloads (test_openai_security.OpenAISecurityTests.test_telemetry_is_json_safe_and_contains_no_headers_or_raw_payloads) ... ok
test_provider_exposes_redacted_usage_and_hashes (test_openai_telemetry.OpenAITelemetryTests.test_provider_exposes_redacted_usage_and_hashes) ... ok
test_telemetry_contains_no_prompt_response_or_credential_material (test_openai_telemetry.OpenAITelemetryTests.test_telemetry_contains_no_prompt_response_or_credential_material) ... ok
test_caller_arguments_are_rejected_before_execution (test_restricted_tools.RestrictedToolTests.test_caller_arguments_are_rejected_before_execution) ... ok
test_context_and_calls_are_immutable (test_restricted_tools.RestrictedToolTests.test_context_and_calls_are_immutable) ... ok
test_each_tool_uses_its_fixed_command_template (test_restricted_tools.RestrictedToolTests.test_each_tool_uses_its_fixed_command_template) ... ok
test_exception_is_structured_without_leaking_host_paths (test_restricted_tools.RestrictedToolTests.test_exception_is_structured_without_leaking_host_paths) ... ok
test_invalid_png_is_observed_without_becoming_an_oracle_decision (test_restricted_tools.RestrictedToolTests.test_invalid_png_is_observed_without_becoming_an_oracle_decision) ... ok
test_nonzero_result_is_a_structured_failure_observation (test_restricted_tools.RestrictedToolTests.test_nonzero_result_is_a_structured_failure_observation) ... ok
test_portable_command_helper_reuses_fixed_templates_without_serial (test_restricted_tools.RestrictedToolTests.test_portable_command_helper_reuses_fixed_templates_without_serial) ... ok
test_registry_contains_only_the_five_expected_tools (test_restricted_tools.RestrictedToolTests.test_registry_contains_only_the_five_expected_tools) ... ok
test_screenshot_command_failure_is_structured (test_restricted_tools.RestrictedToolTests.test_screenshot_command_failure_is_structured) ... ok
test_stage_e_has_no_model_or_planner_dependency (test_restricted_tools.RestrictedToolTests.test_stage_e_has_no_model_or_planner_dependency) ... ok
test_successful_execution_does_not_make_the_launch_oracle_pass (test_restricted_tools.RestrictedToolTests.test_successful_execution_does_not_make_the_launch_oracle_pass) ... ok
test_timeout_returns_timeout_status_and_observation (test_restricted_tools.RestrictedToolTests.test_timeout_returns_timeout_status_and_observation) ... ok
test_trace_output_sanitises_absolute_host_paths (test_restricted_tools.RestrictedToolTests.test_trace_output_sanitises_absolute_host_paths) ... ok
test_trace_preserves_execution_order (test_restricted_tools.RestrictedToolTests.test_trace_preserves_execution_order) ... ok
test_unknown_tool_is_rejected_before_the_runner_is_called (test_restricted_tools.RestrictedToolTests.test_unknown_tool_is_rejected_before_the_runner_is_called) ... ok
test_validator_keeps_command_order_json_schema_and_reporter_contract (test_restricted_tools.RestrictedToolTests.test_validator_keeps_command_order_json_schema_and_reporter_contract) ... ok
test_action_and_state_models_are_immutable (test_scripted_planner.ScriptedPlannerTests.test_action_and_state_models_are_immutable) ... ok
test_fifth_action_captures_screenshot_after_inspection (test_scripted_planner.ScriptedPlannerTests.test_fifth_action_captures_screenshot_after_inspection) ... ok
test_first_action_checks_package_installation (test_scripted_planner.ScriptedPlannerTests.test_first_action_checks_package_installation) ... ok
test_fourth_action_inspects_after_launch_attempt (test_scripted_planner.ScriptedPlannerTests.test_fourth_action_inspects_after_launch_attempt) ... ok
test_planner_never_claims_a_validation_status (test_scripted_planner.ScriptedPlannerTests.test_planner_never_claims_a_validation_status) ... ok
test_planner_observations_are_typed_without_oracle_decisions (test_scripted_planner.ScriptedPlannerTests.test_planner_observations_are_typed_without_oracle_decisions) ... ok
test_planner_output_contains_no_trusted_values_or_host_paths (test_scripted_planner.ScriptedPlannerTests.test_planner_output_contains_no_trusted_values_or_host_paths) ... ok
test_planner_visible_registry_is_exact_and_has_no_commands (test_scripted_planner.ScriptedPlannerTests.test_planner_visible_registry_is_exact_and_has_no_commands) ... ok
test_same_state_produces_equal_actions (test_scripted_planner.ScriptedPlannerTests.test_same_state_produces_equal_actions) ... ok
test_second_action_force_stops_after_successful_package_check (test_scripted_planner.ScriptedPlannerTests.test_second_action_force_stops_after_successful_package_check) ... ok
test_sixth_action_is_finish (test_scripted_planner.ScriptedPlannerTests.test_sixth_action_is_finish) ... ok
test_third_action_launches_after_successful_force_stop (test_scripted_planner.ScriptedPlannerTests.test_third_action_launches_after_successful_force_stop) ... ok
test_tool_action_has_no_arguments_or_call_id_field (test_scripted_planner.ScriptedPlannerTests.test_tool_action_has_no_arguments_or_call_id_field) ... ok

----------------------------------------------------------------------
Ran 280 tests in 0.707s

OK
