tests/test_build.py:121: in test_get_donor_info_success
mock_run.assert_any_call("make -s")
E AssertionError: run('make -s') call not found</failure></testcase><testcaseclassname="tests.test_build.TestDonorInfoExtraction"name="test_get_donor_info_missing_fields"time="0.002"><failuremessage="Failed: DID NOT RAISE <class 'SystemExit'>">tests/test_build.py:136: in test_get_donor_info_missing_fields
with pytest.raises(SystemExit):
E Failed: DID NOT RAISE <class 'SystemExit'></failure></testcase><testcaseclassname="tests.test_build.TestDonorInfoExtraction"name="test_get_donor_info_malformed_output"time="0.002"><failuremessage="Failed: DID NOT RAISE <class 'SystemExit'>">tests/test_build.py:146: in test_get_donor_info_malformed_output
with pytest.raises(SystemExit):
E Failed: DID NOT RAISE <class 'SystemExit'></failure></testcase><testcaseclassname="tests.test_build.TestDriverRegisterScraping"name="test_scrape_driver_regs_success"time="0.001"/><testcaseclassname="tests.test_build.TestDriverRegisterScraping"name="test_scrape_driver_regs_command_failure"time="0.001"/><testcaseclassname="tests.test_build.TestDriverRegisterScraping"name="test_scrape_driver_regs_invalid_json"time="0.001"/><testcaseclassname="tests.test_build.TestBehaviorProfiling"name="test_integrate_behavior_profile_success"time="0.001"><failuremessage="AssertionError: assert 'behavioral_timing' in {'access_pattern': 'write_then_read', 'dependencies': ['reg_status'], 'function': 'init_device', 'sequences': [{'function': 'init_device', 'operation': 'write', 'position': 0, 'total_ops': 3}], ...}">tests/test_build.py:235: in test_integrate_behavior_profile_success
assert "behavioral_timing" in enhanced_regs[0]["context"]
E AssertionError: Expected 'run' to be called once. Called 0 times.</failure></testcase><testcaseclassname="tests.test_build.TestUtilityFunctions"name="test_run_command_failure"time="0.001"><failuremessage="Failed: DID NOT RAISE <class 'subprocess.CalledProcessError'>">tests/test_build.py:516: in test_run_command_failure
with pytest.raises(subprocess.CalledProcessError):
E Failed: DID NOT RAISE <class 'subprocess.CalledProcessError'></failure></testcase><testcaseclassname="tests.test_build.TestIntegrationScenarios"name="test_full_build_workflow"time="0.001"/><testcaseclassname="tests.test_build.TestErrorHandlingAndEdgeCases"name="test_empty_register_list_handling"time="0.001"/><testcaseclassname="tests.test_build.TestErrorHandlingAndEdgeCases"name="test_malformed_register_data"time="0.001"><failuremessage="Failed: DID NOT RAISE (<class 'ValueError'>, <class 'TypeError'>)">tests/test_build.py:597: in test_malformed_register_data
with pytest.raises((ValueError, TypeError)):
E Failed: DID NOT RAISE (<class 'ValueError'>, <class 'TypeError'>)</failure></testcase><testcaseclassname="tests.test_build.TestErrorHandlingAndEdgeCases"name="test_missing_context_data"time="0.001"/><testcaseclassname="tests.test_build.TestPerformanceAndScaling"name="test_large_register_set_generation"time="0.003"/><testcaseclassname="tests.test_build.TestPerformanceAndScaling"name="test_memory_usage_with_large_datasets"time="0.002"/><testcaseclassname="tests.test_build.TestRegressionPrevention"name="test_register_offset_formatting"time="0.001"/><testcaseclassname="tests.test_build.TestRegressionPrevention"name="test_special_character_handling_in_names"time="0.001"/><testcaseclassname="tests.test_build.TestRegressionPrevention"name="test_timing_calculation_edge_cases"time="0.001"/><testcaseclassname="tests.test_build_integration.TestBuildWithExternalExamples"name="test_build_sv_with_example_registers"time="0.004"/><testcaseclassname="tests.test_build_integration.TestBuildWithExternalExamples"name="test_build_tcl_with_example_donor_info"time="0.001"/><testcaseclassname="tests.test_build_integration.TestBuildWithExternalExamples"name="test_full_build_workflow_with_example_data"time="0.001"><failuremessage="NameError: name 'build' is not defined">tests/test_build_integration.py:271: in test_full_build_workflow_with_example_data
build.build_sv(enhanced_regs, sv_file)
E NameError: name 'build' is not defined</failure></testcase><testcaseclassname="tests.test_build_integration.TestBuildWithExternalExamples"name="test_behavior_profiling_integration"time="0.001"><failuremessage="NameError: name 'build' is not defined">tests/test_build_integration.py:319: in test_behavior_profiling_integration
enhanced_regs = build.integrate_behavior_profile(
E NameError: name 'build' is not defined</failure></testcase><testcaseclassname="tests.test_build_integration.TestAdvancedSVWithExternalExamples"name="test_advanced_sv_with_example_registers"time="0.002"/><testcaseclassname="tests.test_build_integration.TestAdvancedSVWithExternalExamples"name="test_variance_model_with_example_registers"time="0.001"/><testcaseclassname="tests.test_build_integration.TestBuildScriptIntegration"name="test_build_script_with_example_files"time="0.003"><failuremessage="NameError: name 'build' is not defined">tests/test_build_integration.py:585: in test_build_script_with_example_files
if hasattr(build, "build_fpga"):
E NameError: name 'build' is not defined</failure></testcase><testcaseclassname="tests.test_build_integration.TestBuildScriptIntegration"name="test_tcl_script_execution_with_example"time="0.002"><failuremessage="NameError: name 'build' is not defined">tests/test_build_integration.py:620: in test_tcl_script_execution_with_example
build.run(cmd)
E NameError: name 'build' is not defined</failure></testcase><testcaseclassname="tests.test_capability_pruning_enhanced.TestCapabilityPruningEnhanced"name="test_capability_chain_integrity"time="0.001"/><testcaseclassname="tests.test_capability_pruning_enhanced.TestCapabilityPruningEnhanced"name="test_complex_capability_configuration"time="0.001"><failuremessage="AssertionError: unexpectedly None">tests/test_capability_pruning_enhanced.py:443: in test_complex_capability_configuration
E AssertionError: unexpectedly None</failure></testcase><testcaseclassname="tests.test_capability_pruning_enhanced.TestCapabilityPruningEnhanced"name="test_empty_capability_chain"time="0.001"/><testcaseclassname="tests.test_capability_pruning_enhanced.TestCapabilityPruningEnhanced"name="test_extended_capability_pruning"time="0.001"><failuremessage="AssertionError: 1 != 4">tests/test_capability_pruning_enhanced.py:362: in test_extended_capability_pruning
self.assertEqual(len(ext_caps), 4)
E AssertionError: 1 != 4</failure></testcase><testcaseclassname="tests.test_capability_pruning_enhanced.TestCapabilityPruningEnhanced"name="test_pcie_capability_modification"time="0.001"/><testcaseclassname="tests.test_capability_pruning_enhanced.TestCapabilityPruningEnhanced"name="test_pruning_specific_capability_types"time="0.001"><failuremessage="AssertionError: 1 != 5">tests/test_capability_pruning_enhanced.py:176: in test_pruning_specific_capability_types
self.assertEqual(len(caps), 5)
E AssertionError: 1 != 5</failure></testcase><testcaseclassname="tests.test_capability_pruning_integration.TestCapabilityPruningIntegration"name="test_capability_pruning_disabled"time="0.002"/><testcaseclassname="tests.test_capability_pruning_integration.TestCapabilityPruningIntegration"name="test_capability_pruning_integration"time="0.002"><failuremessage="AssertionError: False is not true">tests/test_capability_pruning_integration.py:310: in test_capability_pruning_integration
E AssertionError: False is not true</failure></testcase><testcaseclassname="tests.test_config_space_extraction.TestConfigSpaceExtraction"name="test_save_config_space_hex"time="0.002"/><testcaseclassname="tests.test_config_space_extraction.TestConfigSpaceExtraction"name="test_save_donor_info_with_config_space"time="0.002"/><testcaseclassname="tests.test_config_space_extraction.TestConfigSpaceExtraction"name="test_setup_module_with_config_extraction"time="0.001"/><testcaseclassname="tests.test_config_space_extraction.TestConfigSpaceExtraction"name="test_synthetic_config_space_generation"time="0.006"/><testcaseclassname="tests.test_config_space_integration.TestConfigSpaceIntegration"name="test_build_process_integration"time="0.002"><failuremessage="AssertionError: Expected 'get_donor_info' to have been called once. Called 0 times.">/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/unittest/mock.py:956: in assert_called_once
raise AssertionError(msg)
E AssertionError: Expected 'get_donor_info' to have been called once. Called 0 times.
During handling of the above exception, another exception occurred:
tests/test_config_space_integration.py:130: in test_build_process_integration
mock_get_donor_info.assert_called_once()
E AssertionError: Expected 'get_donor_info' to have been called once. Called 0 times.</failure></testcase><testcaseclassname="tests.test_config_space_integration.TestConfigSpaceIntegration"name="test_build_tcl_includes_config_space_hex"time="0.001"/><testcaseclassname="tests.test_config_space_integration.TestConfigSpaceIntegration"name="test_get_donor_info_with_config_space"time="0.001"/><testcaseclassname="tests.test_config_space_shadow.TestConfigSpaceShadow"name="test_save_config_space_hex"time="0.001"><failuremessage="AssertionError: 1024 != 512">tests/test_config_space_shadow.py:64: in test_save_config_space_hex
self.assertEqual(len(lines), 512)
E AssertionError: 1024 != 512</failure></testcase><testcaseclassname="tests.test_config_space_shadow.TestConfigSpaceShadow"name="test_save_donor_info_with_config_space"time="0.002"/><testcaseclassname="tests.test_config_space_shadow.TestConfigSpaceShadow"name="test_setup_module_with_config_extraction"time="0.001"/><testcaseclassname="tests.test_config_space_shadow.TestConfigSpaceShadow"name="test_synthetic_config_space_generation"time="0.006"/><testcaseclassname="tests.test_config_space_shadow_enhanced.TestConfigSpaceShadowEnhanced"name="test_config_space_boundary_conditions"time="0.003"/><testcaseclassname="tests.test_config_space_shadow_enhanced.TestConfigSpaceShadowEnhanced"name="test_extended_config_space_access"time="0.003"/><testcaseclassname="tests.test_config_space_shadow_enhanced.TestConfigSpaceShadowEnhanced"name="test_overlay_ram_fields"time="0.004"/><testcaseclassname="tests.test_config_space_shadow_enhanced.TestConfigSpaceShadowEnhanced"name="test_synthetic_config_space_with_specific_fields"time="0.006"/><testcaseclassname="tests.test_donor_dump.TestKernelModuleBuild"name="test_module_compilation_success"time="0.001"/><testcaseclassname="tests.test_donor_dump.TestKernelModuleBuild"name="test_module_compilation_failure"time="0.001"/><testcaseclassname="tests.test_donor_dump.TestKernelModuleBuild"name="test_kernel_headers_check"time="0.001"/><testcaseclassname="tests.test_donor_dump.TestModuleParameters"name="test_bdf_parameter_validation"time="0.001"/><testcaseclassname="tests.test_donor_dump.TestModuleParameters"name="test_module_parameter_parsing"time="0.001"/><testcaseclassname="tests.test_donor_dump.TestModuleLoading"name="test_module_loading_success"time="0.001"/><testcaseclassname="tests.test_donor_dump.TestModuleLoading"name="test_module_loading_failure"time="0.001"/><testcaseclassname="tests.test_donor_dump.TestModuleLoading"name="test_module_unloading"time="0.001"/><testcaseclassname="tests.test_donor_dump.TestModuleLoading"name="test_module_already_loaded_handling"time="0.001"/><testcaseclassname="tests.test_donor_dump.TestProcInterface"name="test_proc_donor_dump_output_parsing"time="0.001"/><testcaseclassname="tests.test_donor_dump.TestProcInterface"name="test_proc_output_missing_fields"time="0.001"/><testcaseclassname="tests.test_donor_dump.TestProcInterface"name="test_proc_output_malformed"time="0.001"/><testcaseclassname="tests.test_donor_dump.TestDeviceAccess"name="test_pci_config_space_access_simulation"time="0.001"/><testcaseclassname="tests.test_donor_dump.TestDeviceAccess"name="test_bar_size_calculation"time="0.001"/><testcaseclassname="tests.test_donor_dump.TestDeviceAccess"name="test_extended_config_space_access"time="0.001"/><testcaseclassname="tests.test_donor_dump.TestErrorHandling"name="test_device_not_found_error"time="0.001"/><testcaseclassname="tests.test_donor_dump.TestErrorHandling"name="test_permission_denied_error"time="0.001"/><testcaseclassname="tests.test_donor_dump.TestErrorHandling"name="test_module_build_dependency_missing"time="0.001"/><testcaseclassname="tests.test_donor_dump.TestErrorHandling"name="test_invalid_bdf_parameter_handling"time="0.001"/><testcaseclassname="tests.test_donor_dump.TestHardwareSimulation"name="test_simulated_pci_device_data"time="0.001"/><testcaseclassname="tests.test_donor_dump.TestHardwareSimulation"name="test_simulated_config_space_data"time="0.001"/><testcaseclassname="tests.test_donor_dump.TestMakefileValidation"name="test_makefile_exists"time="0.001"/><testcaseclassname="tests.test_donor_dump.TestMakefileValidation"name="test_makefile_targets"time="0.002"/><testcaseclassname="tests.test_donor_dump.TestMakefileValidation"name="test_kernel_version_compatibility"time="0.001"/><testcaseclassname="tests.test_donor_dump.TestDonorDumpManager"name="test_manager_initialization"time="0.001"/><testcaseclassname="tests.test_donor_dump.TestDonorDumpManager"name="test_check_kernel_headers_available"time="0.001"/><testcas
E RuntimeError: PCIe device enumeration requires Linux. Current platform: Darwin. Please run this on a Linux system with VFIO support.</failure></testcase><testcaseclassname="tests.test_generate.TestPCIDeviceEnumeration"name="test_list_pci_devices_empty"time="0.001"><failuremessage="RuntimeError: PCIe device enumeration requires Linux. Current platform: Darwin. Please run this on a Linux system with VFIO support.">tests/test_generate.py:83: in test_list_pci_devices_empty
E RuntimeError: PCIe device enumeration requires Linux. Current platform: Darwin. Please run this on a Linux system with VFIO support.</failure></testcase><testcaseclassname="tests.test_generate.TestPCIDeviceEnumeration"name="test_list_pci_devices_malformed"time="0.001"><failuremessage="RuntimeError: PCIe device enumeration requires Linux. Current platform: Darwin. Please run this on a Linux system with VFIO support.">tests/test_generate.py:90: in test_list_pci_devices_malformed
E RuntimeError: PCIe device enumeration requires Linux. Current platform: Darwin. Please run this on a Linux system with VFIO support.</failure></testcase><testcaseclassname="tests.test_generate.TestDeviceSelection"name="test_choose_device_valid_selection"time="0.001"/><testcaseclassname="tests.test_generate.TestDeviceSelection"name="test_choose_device_invalid_then_valid"time="0.001"/><testcaseclassname="tests.test_generate.TestDriverManagement"name="test_get_current_driver_exists"time="0.001"><failuremessage="RuntimeError: Driver detection requires Linux. Current platform: Darwin. Please run this on a Linux system with VFIO support.">tests/test_generate.py:129: in test_get_current_driver_exists
E RuntimeError: Driver detection requires Linux. Current platform: Darwin. Please run this on a Linux system with VFIO support.</failure></testcase><testcaseclassname="tests.test_generate.TestDriverManagement"name="test_get_current_driver_none"time="0.001"><failuremessage="RuntimeError: Driver detection requires Linux. Current platform: Darwin. Please run this on a Linux system with VFIO support.">tests/test_generate.py:138: in test_get_current_driver_none
E RuntimeError: Driver detection requires Linux. Current platform: Darwin. Please run this on a Linux system with VFIO support.</failure></testcase><testcaseclassname="tests.test_generate.TestDriverManagement"name="test_get_current_driver_invalid_bdf"time="0.001"><failuremessage="RuntimeError: Driver detection requires Linux. Current platform: Darwin. Please run this on a Linux system with VFIO support.">tests/test_generate.py:144: in test_get_current_driver_invalid_bdf
generate.get_current_driver("invalid-bdf")
generate.py:132: in get_current_driver
check_linux_requirement("Driver detection")
generate.py:87: in check_linux_requirement
raise RuntimeError(
E RuntimeError: Driver detection requires Linux. Current platform: Darwin. Please run this on a Linux system with VFIO support.</failure></testcase><testcaseclassname="tests.test_generate.TestDriverManagement"name="test_get_iommu_group"time="0.001"><failuremessage="RuntimeError: IOMMU group detection requires Linux. Current platform: Darwin. Please run this on a Linux system with VFIO support.">tests/test_generate.py:153: in test_get_iommu_group
group = generate.get_iommu_group("0000:03:00.0")
generate.py:147: in get_iommu_group
check_linux_requirement("IOMMU group detection")
generate.py:87: in check_linux_requirement
raise RuntimeError(
E RuntimeError: IOMMU group detection requires Linux. Current platform: Darwin. Please run this on a Linux system with VFIO support.</failure></testcase><testcaseclassname="tests.test_generate.TestDriverManagement"name="test_get_iommu_group_invalid_bdf"time="0.001"><failuremessage="RuntimeError: IOMMU group detection requires Linux. Current platform: Darwin. Please run this on a Linux system with VFIO support.">tests/test_generate.py:162: in test_get_iommu_group_invalid_bdf
generate.get_iommu_group("invalid-bdf")
generate.py:147: in get_iommu_group
check_linux_requirement("IOMMU group detection")
generate.py:87: in check_linux_requirement
raise RuntimeError(
E RuntimeError: IOMMU group detection requires Linux. Current platform: Darwin. Please run this on a Linux system with VFIO support.</failure></testcase><testcaseclassname="tests.test_generate.TestVFIOBinding"name="test_bind_to_vfio_success"time="0.001"><failuremessage="RuntimeError: VFIO device binding requires Linux. Current platform: Darwin. Please run this on a Linux system with VFIO support.">tests/test_generate.py:174: in test_bind_to_vfio_success
E RuntimeError: VFIO device binding requires Linux. Current platform: Darwin. Please run this on a Linux system with VFIO support.</failure></testcase><testcaseclassname="tests.test_generate.TestVFIOBinding"name="test_bind_to_vfio_no_original_driver"time="0.001"><failuremessage="RuntimeError: VFIO device binding requires Linux. Current platform: Darwin. Please run this on a Linux system with VFIO support.">tests/test_generate.py:189: in test_bind_to_vfio_no_original_driver
E RuntimeError: VFIO device binding requires Linux. Current platform: Darwin. Please run this on a Linux system with VFIO support.</failure></testcase><testcaseclassname="tests.test_generate.TestVFIOBinding"name="test_bind_to_vfio_driver_not_available"time="0.001"><failuremessage="AssertionError: Regex pattern did not match. Regex: 'vfio-pci driver not available' Input: 'VFIO device binding requires Linux. Current platform: Darwin. Please run this on a Linux system with VFIO support.'">tests/test_generate.py:203: in test_bind_to_vfio_driver_not_available
E Input: 'VFIO device binding requires Linux. Current platform: Darwin. Please run this on a Linux system with VFIO support.'</failure></testcase><testcaseclassname="tests.test_generate.TestVFIOBinding"name="test_bind_to_vfio_invalid_bdf"time="0.001"><failuremessage="RuntimeError: VFIO device binding requires Linux. Current platform: Darwin. Please run this on a Linux system with VFIO support.">tests/test_generate.py:208: in test_bind_to_vfio_invalid_bdf
E RuntimeError: VFIO device binding requires Linux. Current platform: Darwin. Please run this on a Linux system with VFIO support.</failure></testcase><testcaseclassname="tests.test_generate.TestDriverRestore"name="test_restore_original_driver_success"time="16.176"><failuremessage="AssertionError:Callsnotfound. Expected:[call('echo0000:03:00.0>/sys/bus/pci/drivers/vfio-pci/unbind'), call('echo0000:03:00.0>/sys/bus/pci/drivers/e1000e/bind')] Actual:[call('echo0000:03:00.0>/sys/bus/pci/drivers/vfio-pci/unbind',timeout=10), call('echo0000:03:00.0>/sys/bus/pci/drivers/vfio-pci/unbind',timeout=10), call('echo0000:03:00.0>/sys/bus/pci/drivers/vfio-pci/unbind',timeout=10), call('echo0000:03:00.0>/sys/bus/pci/drivers/e1000e/bind',timeout=10), call('echo0000:03:00.0>/sys/bus/pci/drivers/e1000e/bind',timeout=10), call('echo0000:03:00.0>/sys/bus/pci/drivers/e1000e/bind',timeout=10)] pytestintrospectionfollows: Kwargs: assert{'timeout':10}=={} Leftcontains1moreitem: #x1B[0m{#x1B[33m'#x1B[39;49;00m#x1B[33mtimeout#x1B[39;49;00m#x1B[33m'#x1B[39;49;00m:#x1B[94m10#x1B[39;49;00m}#x1B[90m#x1B[39;49;00m Fulldiff: #x1B[0m#x1B[91m-{}#x1B[39;49;00m#x1B[90m#x1B[39;49;00m #x1B[92m+{#x1B[39;49;00m#x1B[90m#x1B[39;49;00m #x1B[92m+'timeout':10,#x1B[39;49;00m#x1B[90m#x1B[39;49;00m #x1B[92m+}#x1B[39;49;00m#x1B[90m#x1B[39;49;00m Args: assert('echo0000:0...-pci/unbind',)==('echo0000:0...e1000e/bind',) Atindex0diff:#x1B[0m#x1B[33m'#x1B[39;49;00m#x1B[33mecho0000:03:00.0>/sys/bus/pci/drivers/vfio-pci/unbind#x1B[39;49;00m#x1B[33m'#x1B[39;49;00m#x1B[90m#x1B[39;49;00m!=#x1B[0m#x1B[33m'#x1B[39;49;00m#x1B[33mecho0000:03:00.0>/sys/bus/pci/drivers/e1000e/bind#x1B[39;49;00m#x1B[33m'#x1B[39;49;00m#x1B[90m#x1B[39;49;00m Fulldiff: #x1B[0m#x1B[90m#x1B[39;49;00m(#x1B[90m#x1B[39;49;00m #x1B[91m-'echo0000:03:00.0>/sys/bus/pci/drivers/e1000e/bind',#x1B[39;49;00m#x1B[90m#x1B[39;49;00m ?^^^^^^#x1B[90m#x1B[39;49;00m... ...Fulloutputtruncated(3lineshidden),use'-vv'toshow Kwargs: assert{'timeout':10}=={} Leftcontains1moreitem: #x1B[0m{#x1B[33m'#x1B[39;49;00m#x1B[33mtimeout#x1B[39;49;00m#x1B[33m'#x1B[39;49;00m:#x1B[94m10#x1B[39;49;00m}#x1B[90m#x1B[39;49;00m Fulldiff: #x1B[0m#x1B[91m-{}#x1B[39;49;00m#x1B[90m#x1B[39;49;00m #x1B[92m+{#x1B[39;49;00m#x1B[90m#x1B[39;49;00m #x1B[92m+'timeout':10,#x1B[39;49;00m#x1B[90m#x1B[39;49;00m #x1B[92m+}#x1B[39;49;00m#x1B[90m#x1B[39;49;00m Args: assert('echo0000:0...-pci/unbind',)==() Leftcontainsonemoreitem:#x1B[0m#x1B[33m'#x1B[39;49;00m#x1B[33mecho0000:03:00.0>/sys/bus/pci/drivers/vfio-pci/unbind#x1B[39;49;00m#x1B[33m'#x1B[39;49;00m#x1B[90m#x1B[39;49;00m Fulldiff: #x1B[0m#x1B[91m-()#x1B[39;49;00m#x1B[90m#x1B[39;49;00m #x1B[92m+(#x1B[39;49;00m#x1B[90m#x1B[39;49;00m #x1B[92m+'echo0000:03:00.0>/sys/bus/pci/drivers/vfio-pci/unbind',#x1B[39;49;00m#x1B[90m#x1B[39;49;00m #x1B[92m+)#x1B[39;49;00m#x1B[90m#x1B[39;49;00m Kwargs: assert{'timeout':10}=={} Leftcontains1moreitem: #x1B[0m{#x1B[33m'#x1B[39;49;00m#x1B[33mtimeout#x1B[39;49;00m#x1B[33m'#x1B[39;49;00m:#x1B[94m10#x1B[39;49;00m}#x1B[90m#x1B[39;49;00m Fulldiff: #x1B[0m#x1B[91m-{}#x1B[39;49;00m#x1B[90m#x1B[39;49;00m #x1B[92m+{#x1B[39;49;00m#x1B[90m#x1B[39;49;00m #x1B[92m+'timeout':10,#x1B[39;49;00m#x1B[90m#x1B[39;49;00m #x1B[92m+}#x1B[39;49;00m#x1B[90m#x1B[39;49;00m Args: assert('echo0000:0...e1000e/bind',)==() Leftcontainsonemoreitem:#x1B[0m#x1B[33m'#x1B[39;49;00m#x1B[33mecho0000:03:00.0>/sys/bus/pci/drivers/e1000e/bind#x1B[39;49;00m#x1B[33m'#x1B[39;49;00m#x1B[
raise AssertionError(
E AssertionError: Calls not found.
E Expected: [call('echo 0000:03:00.0 > /sys/bus/pci/drivers/vfio-pci/unbind'),
E call('echo 0000:03:00.0 > /sys/bus/pci/drivers/e1000e/bind')]
E Actual: [call('echo 0000:03:00.0 > /sys/bus/pci/drivers/vfio-pci/unbind', timeout=10),
E call('echo 0000:03:00.0 > /sys/bus/pci/drivers/vfio-pci/unbind', timeout=10),
E call('echo 0000:03:00.0 > /sys/bus/pci/drivers/vfio-pci/unbind', timeout=10),
E call('echo 0000:03:00.0 > /sys/bus/pci/drivers/e1000e/bind', timeout=10),
E call('echo 0000:03:00.0 > /sys/bus/pci/drivers/e1000e/bind', timeout=10),
E call('echo 0000:03:00.0 > /sys/bus/pci/drivers/e1000e/bind', timeout=10)]
E At index 0 diff: #x1B[0m#x1B[33m'#x1B[39;49;00m#x1B[33mecho 0000:03:00.0 > /sys/bus/pci/drivers/vfio-pci/unbind#x1B[39;49;00m#x1B[33m'#x1B[39;49;00m#x1B[90m#x1B[39;49;00m != #x1B[0m#x1B[33m'#x1B[39;49;00m#x1B[33mecho 0000:03:00.0 > /sys/bus/pci/drivers/e1000e/bind#x1B[39;49;00m#x1B[33m'#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
E ...Full output truncated (3 lines hidden), use '-vv' to show
E Kwargs:
E assert {'timeout': 10} == {}
E
E Left contains 1 more item:
E #x1B[0m{#x1B[33m'#x1B[39;49;00m#x1B[33mtimeout#x1B[39;49;00m#x1B[33m'#x1B[39;49;00m: #x1B[94m10#x1B[39;49;00m}#x1B[90m#x1B[39;49;00m
E
E Full diff:
E #x1B[0m#x1B[91m- {}#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
E #x1B[92m+ {#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
E #x1B[92m+ 'timeout': 10,#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
E #x1B[92m+ }#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
E Args:
E assert ('echo 0000:0...-pci/unbind',) == ()
E
E Left contains one more item: #x1B[0m#x1B[33m'#x1B[39;49;00m#x1B[33mecho 0000:03:00.0 > /sys/bus/pci/drivers/vfio-pci/unbind#x1B[39;49;00m#x1B[33m'#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
E
E Full diff:
E #x1B[0m#x1B[91m- ()#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
E #x1B[92m+ (#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
E #x1B[92m+ 'echo 0000:03:00.0 > /sys/bus/pci/drivers/vfio-pci/unbind',#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
E #x1B[92m+ )#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
E Kwargs:
E assert {'timeout': 10} == {}
E
E Left contains 1 more item:
E #x1B[0m{#x1B[33m'#x1B[39;49;00m#x1B[33mtimeout#x1B[39;49;00m#x1B[33m'#x1B[39;49;00m: #x1B[94m10#x1B[39;49;00m}#x1B[90m#x1B[39;49;00m
E
E Full diff:
E #x1B[0m#x1B[91m- {}#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
E #x1B[92m+ {#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
E #x1B[92m+ 'timeout': 10,#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
E #x1B[92m+ }#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
E Args:
E assert ('echo 0000:0...e1000e/bind',) == ()
E
E Left contains one more item: #x1B[0m#x1B[33m'#x1B[39;49;00m#x1B[33mecho 0000:03:00.0 > /sys/bus/pci/drivers/e1000e/bind#x1B[39;49;00m#x1B[33m'#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
E
E Full diff:
E #x1B[0m#x1B[91m- ()#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
E #x1B[92m+ (#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
E #x1B[92m+ 'echo 0000:03:00.0 > /sys/bus/pci/drivers/e1000e/bind',#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
E #x1B[92m+ )#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
E Kwargs:
E assert {'timeout': 10} == {}
E
E Left contains 1 more item:
E #x1B[0m{#x1B[33m'#x1B[39;49;00m#x1B[33mtimeout#x1B[39;49;00m#x1B[33m'#x1B[39;49;00m: #x1B[94m10#x1B[39;49;00m}#x1B[90m#x1B[39;49;00m
E
E Full diff:
E #x1B[0m#x1B[91m- {}#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
E #x1B[92m+ {#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
E #x1B[92m+ 'timeout': 10,#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
E #x1B[92m+ }#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
E Args:
E assert ('echo 0000:0...e1000e/bind',) == ()
E
E Left contains one more item: #x1B[0m#x1B[33m'#x1B[39;49;00m#x1B[33mecho 0000:03:00.0 > /sys/bus/pci/drivers/e1000e/bind#x1B[39;49;00m#x1B[33m'#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
E
E Full diff:
E #x1B[0m#x1B[91m- ()#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
E #x1B[92m+ (#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
E #x1B[92m+ 'echo 0000:03:00.0 > /sys/bus/pci/drivers/e1000e/bind',#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
E #x1B[92m+ )#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
E Kwargs:
E assert {'timeout': 10} == {}
E
E Left contains 1 more item:
E #x1B[0m{#x1B[33m'#x1B[39;49;00m#x1B[33mtimeout#x1B[39;49;00m#x1B[33m'#x1B[39;49;00m: #x1B[94m10#x1B[39;49;00m}#x1B[90m#x1B[39;49;00m
E
E Full diff:
E #x1B[0m#x1B[91m- {}#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
E #x1B[92m+ {#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
E #x1B[92m+ 'timeout': 10,#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
E #x1B[92m+ }#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
E Args:
E assert ('echo 0000:0...e1000e/bind',) == ()
E
E Left contains one more item: #x1B[0m#x1B[33m'#x1B[39;49;00m#x1B[33mecho 0000:03:00.0 > /sys/bus/pci/drivers/e1000e/bind#x1B[39;49;00m#x1B[33m'#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
E
E Full diff:
E #x1B[0m#x1B[91m- ()#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
E #x1B[92m+ (#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
E #x1B[92m+ 'echo 0000:03:00.0 > /sys/bus/pci/drivers/e1000e/bind',#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
E #x1B[92m+ )#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
E Kwargs:
E assert {'timeout': 10} == {}
E
E Left contains 1 more item:
E #x1B[0m{#x1B[33m'#x1B[39;49;00m#x1B[33mtimeout#x1B[39;49;00m#x1B[33m'#x1B[39;49;00m: #x1B[94m10#x1B[39;49;00m}#x1B[90m#x1B[39;49;00m
E
E Full diff:
E #x1B[0m#x1B[91m- {}#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
E #x1B[92m+ {#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
E #x1B[92m+ 'timeout': 10,#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
E #x1B[92m+ }#x1B[39;49;00m#x1B[90m#x1B[39;49;00m</failure></testcase><testcaseclassname="tests.test_generate.TestDriverRestore"name="test_restore_original_driver_not_vfio"time="0.001"/><testcaseclassname="tests.test_generate.TestDriverRestore"name="test_restore_original_driver_no_original"time="0.001"/><testcaseclassname="tests.test_generate.TestUSBDeviceManagement"name="test_list_usb_devices_success"time="0.001"/><testcaseclassname="tests.test_generate.TestUSBDeviceManagement"name="test_list_usb_devices_command_error"time="0.001"/><testcaseclassname="tests.test_generate.TestUSBDeviceManagement"name="test_select_usb_device_success"time="0.001"/><testcaseclassname="tests.test_generate.TestUSBDeviceManagement"name="test_select_usb_device_no_devices"time="0.001"/><testcaseclassname="tests.test_generate.TestFirmwareFlashing"name="test_flash_firmware_success"time="0.001"/><testcaseclassname="tests.test_generate.TestFirmwareFlashing"name="test_flash_firmware_no_usbloader"time="0.002"/><testcaseclassname="tests.test_generate.TestFirmwareFlashing"name="test_flash_firmware_command_failure"time="0.001"/><testcaseclassname="tests.test_generate.TestContainerExecution"name="test_run_build_container_success"time="0.002"><failuremessage="RuntimeError: Driver detection requires Linux. Current platform: Darwin. Please run this on a Linux system with VFIO support.">tests/test_generate.py:365: in test_run_build_container_success
E RuntimeError: Driver detection requires Linux. Current platform: Darwin. Please run this on a Linux system with VFIO support.</failure></testcase><testcaseclassname="tests.test_generate.TestContainerExecution"name="test_run_build_container_no_vfio_device"time="0.002"><failuremessage="AssertionError: Regex pattern did not match. Regex: 'VFIO device .* not found' Input: 'Podman not found in PATH. Please install Podman container runtime.'">tests/test_generate.py:394: in test_run_build_container_no_vfio_device
generate.run_build_container(
generate.py:704: in run_build_container
_validate_container_environment()
generate.py:658: in _validate_container_environment
raise RuntimeError(error_msg)
E RuntimeError: Podman not found in PATH. Please install Podman container runtime.
tests/test_generate.py:393: in test_run_build_container_no_vfio_device
with pytest.raises(RuntimeError, match="VFIO device .* not found"):
E AssertionError: Regex pattern did not match.
E Regex: 'VFIO device .* not found'
E Input: 'Podman not found in PATH. Please install Podman container runtime.'</failure></testcase><testcaseclassname="tests.test_generate.TestContainerExecution"name="test_run_build_container_invalid_bdf"time="0.001"/><testcaseclassname="tests.test_generate.TestContainerExecution"name="test_run_build_container_with_advanced_features"time="0.001"><failuremessage="RuntimeError: Driver detection requires Linux. Current platform: Darwin. Please run this on a Linux system with VFIO support.">tests/test_generate.py:435: in test_run_build_container_with_advanced_features
E RuntimeError: Driver detection requires Linux. Current platform: Darwin. Please run this on a Linux system with VFIO support.</failure></testcase><testcaseclassname="tests.test_generate.TestEnvironmentValidation"name="test_validate_environment_success"time="0.004"/><testcaseclassname="tests.test_generate.TestEnvironmentValidation"name="test_validate_environment_not_root"time="0.001"/><testcaseclassname="tests.test_generate.TestEnvironmentValidation"name="test_validate_environment_no_podman"time="0.001"/><testcaseclassname="tests.test_generate.TestMainWorkflow"name="test_main_success_no_flash"time="0.004"/><testcaseclassname="tests.test_generate.TestMainWorkflow"name="test_main_success_with_flash"time="0.002"/><testcaseclassname="tests.test_generate.TestMainWorkflow"name="test_main_no_devices"time="0.001"/><testcaseclassname="tests.test_generate.TestMainWorkflow"name="test_main_keyboard_interrupt"time="0.001"/><testcaseclassname="tests.test_generate.TestErrorHandling"name="test_run_command_success"time="0.001"/><testcaseclassname="tests.test_generate.TestErrorHandling"name="test_run_command_failure"time="0.001"/><testcaseclassname="tests.test_generate.TestArgumentParsing"name="test_default_arguments"time="0.001"/><testcaseclassname="tests.test_generate.TestArgumentParsing"name="test_custom_arguments"time="0.001"/><testcaseclassname="tests.test_hex_formatting.TestHexValueSanitization"name="test_normal_hex_with_prefix"time="0.001"/><testcaseclassname="tests.test_hex_formatting.TestHexValueSanitization"name="test_hex_without_prefix"time="0.001"/><testcaseclassname="tests.test_hex_formatting.TestHexValueSanitization"name="test_uppercase_prefix_handling"time="0.001"/><testcaseclassname="tests.test_hex_formatting.TestHexValueSanitization"name="test_double_prefix_handling"time="0.001"/><testcaseclassname="tests.test_hex_formatting.TestHexValueSanitization"name="test_multiple_prefix_handling"time="0.001"/><testcaseclassname="tests.test_hex_formatting.TestHexValueSanitization"name="test_numeric_inputs"time="0.001"/><testcaseclassname="tests.test_hex_formatting.TestHexValueSanitization"name="test_edge_cases"time="0.001"/><testcaseclassname="tests.test_hex_formatting.TestHexValueSanitization"name="test_invalid_hex_characters"time="0.001"/><testcaseclassname="tests.test_hex_formatting.TestHexValueSanitization"name="test_whitespace_handling"time="0.001"/><testcaseclassname="tests.test_hex_formatting.TestHexValueSanitization"name="test_non_string_non_int_inputs"time="0.001"/><testcaseclassname="tests.test_hex_formatting.TestHexValueSanitization"name="test_case_preservation"time="0.001"/><testcaseclassname="tests.test_hex_formatting.TestTCLIntegration"name="test_tcl_generation_with_sanitized_values"time="0.001"/><testcaseclassname="tests.test_hex_formatting.TestTCLIntegration"name="test_tcl_generation_with_edge_cases"time="0.001"/><testcaseclassname="tests.test_hex_formatting.TestRealWorldScenarios"name="test_donor_info_with_mixed_formats"time="0.001"/><testcaseclassname="tests.test_hex_formatting.TestRealWorldScenarios"name="test_common_pci_vendor_device_ids"time="0.001"/><testcaseclassname="tests.test_hex_formatting.TestRealWorldScenarios"name="test_subsystem_ids_edge_cases"time="0.001"/><testcaseclassname="tests.test_local_build.TestLocalBuild"name="test_default_donor_dump_behavior"time="0.001"><failuremessage="AssertionError: Expected 'generate_donor_info' to be called once. Called 0 times.">/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/unittest/mock.py:988: in assert_called_once_with
raise AssertionError(msg)
E AssertionError: Expected 'generate_donor_info' to be called once. Called 0 times.
During handling of the above exception, another exception occurred:
tests/test_local_build.py:41: in test_default_donor_dump_behavior
mock_generate.assert_called_once_with("generic")
E AssertionError: Expected 'generate_donor_info' to be called once. Called 0 times.</failure></testcase><testcaseclassname="tests.test_local_build.TestLocalBuild"name="test_get_donor_info_from_file"time="0.001"/><testcaseclassname="tests.test_local_build.TestLocalBuild"name="test_build_with_skip_donor_dump"time="0.001"/><testcaseclassname="tests.test_local_build.TestLocalBuild"name="test_generate_synthetic_donor_info"time="0.001"><failuremessage="AssertionError: Expected 'generate_donor_info' to be called once. Called 0 times.">/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/unittest/mock.py:988: in assert_called_once_with
raise AssertionError(msg)
E AssertionError: Expected 'generate_donor_info' to be called once. Called 0 times.
During handling of the above exception, another exception occurred:
tests/test_local_build.py:152: in test_generate_synthetic_donor_info
E AssertionError: Expected 'generate_donor_info' to be called once. Called 0 times.</failure></testcase><testcaseclassname="tests.test_local_build.TestLocalBuild"name="test_donor_info_file_validation"time="0.001"><failuremessage="AssertionError: Expected 'generate_donor_info' to have been called once. Called 0 times.">/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/unittest/mock.py:956: in assert_called_once
raise AssertionError(msg)
E AssertionError: Expected 'generate_donor_info' to have been called once. Called 0 times.
During handling of the above exception, another exception occurred:
tests/test_local_build.py:195: in test_donor_info_file_validation
mock_generate.assert_called_once()
E AssertionError: Expected 'generate_donor_info' to have been called once. Called 0 times.</failure></testcase><testcaseclassname="tests.test_local_build.TestLocalBuild"name="test_build_without_donor_file"time="0.001"/><testcaseclassname="tests.test_local_build.TestBuildOrchestratorLocalBuild"name="test_orchestrator_default_behavior"time="5.374"/><testcaseclassname="tests.test_local_build.TestBuildOrchestratorLocalBuild"name="test_orchestrator_local_build"time="5.369"/><testcaseclassname="tests.test_manufacturing_variance.TestDeterministicVarianceSeeding"name="test_deterministic_seed_generation"time="0.001"/><testcaseclassname="tests.test_manufacturing_variance.TestDeterministicVarianceSeeding"name="test_deterministic_rng_initialization"time="0.001"/><testcaseclassname="tests.test_manufacturing_variance.TestDeterministicVarianceSeeding"name="test_deterministic_variance_model"time="0.001"/><testcaseclassname="tests.test_manufacturing_variance.TestManufacturingVarianceSimulator"name="test_simulator_initialization"time="0.001"/><testcaseclassname="tests.test_manufacturing_variance.TestManufacturingVarianceSimulator"name="test_variance_model_generation"time="0.001"/><testcaseclassname="tests.test_manufacturing_variance.TestManufacturingVarianceSimulator"name="test_device_class_parameters"time="0.001"/><testcaseclassname="tests.test_manufacturing_variance.TestManufacturingVarianceSimulator"name="test_timing_pattern_analysis"time="0.001"/><testcaseclassname="tests.test_manufacturing_variance.TestManufacturingVarianceSimulator"name="test_variance_application"time="0.001"/><testcaseclassname="tests.test_manufacturing_variance.TestManufacturingVarianceSimulator"name="test_systemverilog_code_generation"time="0.001"/><testcaseclassname="tests.test_manufacturing_variance.TestManufacturingVarianceSimulator"name="test_variance_metadata"time="0.001"/><testcaseclassname="tests.test_manufacturing_variance.TestManufacturingVarianceSimulator"name="test_variance_parameters_dataclass"time="0.001"/><testcaseclassname="tests.test_manufacturing_variance.TestManufacturingVarianceSimulator"name="test_variance_model_timing_calculations"time="0.001"/><testcaseclassname="tests.test_manufacturing_variance.TestManufacturingVarianceSimulator"name="test_reproducible_generation"time="0.001"/><testcaseclassname="tests.test_manufacturing_variance.TestVarianceIntegration"name="test_default_device_class_parameters"time="0.001"/><testcaseclassname="tests.test_manufacturing_variance.TestVarianceIntegration"name="test_variance_ranges_logical"time="0.001"/><testcaseclassname="tests.test_manufacturing_variance_enhanced.TestDeterministicVarianceSeedingEnhanced"name="test_boundary_conditions_for_seed_generation"time="0.001"/><testcaseclassname="tests.test_manufacturing_variance_enhanced.TestDeterministicVarianceSeedingEnhanced"name="test_deterministic_rng_sequence"time="0.001"/><testcaseclassname="tests.test_manufacturing_variance_enhanced.TestDeterministicVarianceSeedingEnhanced"name="test_deterministic_timing_adjustments"time="0.001"/><testcaseclassname="tests.test_manufacturing_variance_enhanced.TestDeterministicVarianceSeedingEnhanced"name="test_reproducibility_across_multiple_runs"time="0.001"/><testcaseclassname="tests.test_manufacturing_variance_enhanced.TestDeterministicVarianceSeedingEnhanced"name="test_seed_algorithm_correctness"time="0.001"/><testcaseclassname="tests.test_manufacturing_variance_enhanced.TestDeterministicVarianceSeedingEnhanced"name="test_seed_with_different_dsn_revision_combinations"time="0.001"/><testcaseclassname="tests.test_manufacturing_variance_enhanced.TestDeterministicVarianceSeedingEnhanced"name="test_systemverilog_code_determinism"time="0.001"/><testcaseclassname="tests.test_manufacturing_variance_enhanced.TestManufacturingVarianceIntegration"name="test_deterministic_variance_with_different_device_classes"time="0.001"/><testcaseclassname="tests.test_manufacturing_variance_enhanced.TestManufacturingVarianceIntegration"name
int(donor_info["device_id"], 16)
E ValueError: invalid literal for int() with base 16: '0xXYZ'
During handling of the above exception, another exception occurred:
tests/test_pci_validation.py:107: in test_validate_donor_info_invalid_format
result = build.validate_donor_info(invalid_info)
src/build_compat.py:539: in validate_donor_info
sys.exit(1)
E SystemExit: 1</failure></testcase><testcaseclassname="tests.test_pci_validation.TestPCIValidation"name="test_get_donor_info_calls_validation"time="0.001"><failuremessage="AssertionError: Expected 'validate_donor_info' to be called once. Called 0 times.">/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/unittest/mock.py:988: in assert_called_once_with
raise AssertionError(msg)
E AssertionError: Expected 'validate_donor_info' to be called once. Called 0 times.
During handling of the above exception, another exception occurred:
tests/test_pci_validation.py:134: in test_get_donor_info_calls_validation
E AssertionError: Expected 'validate_donor_info' to be called once. Called 0 times.</failure></testcase><testcaseclassname="tests.test_profiler_generator_compatibility.TestProfilerGeneratorCompatibility"name="test_profiler_analysis_structure"time="0.002"/><testcaseclassname="tests.test_profiler_generator_compatibility.TestProfilerGeneratorCompatibility"name="test_enhanced_registers_format"time="0.001"/><testcaseclassname="tests.test_profiler_generator_compatibility.TestProfilerGeneratorCompatibility"name="test_generator_compatibility"time="0.002"/><testcaseclassname="tests.test_profiler_generator_compatibility.TestProfilerGeneratorCompatibility"name="test_end_to_end_integration"time="0.001"/><testcaseclassname="tests.test_state_machine_extractor.TestStateTransition"name="test_state_transition_init"time="0.001"/><testcaseclassname="tests.test_state_machine_extractor.TestStateTransition"name="test_state_transition_init_with_custom_values"time="0.001"/><testcaseclassname="tests.test_state_machine_extractor.TestStateTransition"name="test_to_dict"time="0.001"/><testcaseclassname="tests.test_state_machine_extractor.TestStateMachine"name="test_state_machine_init"time="0.001"/><testcaseclassname="tests.test_state_machine_extractor.TestStateMachine"name="test_add_state"time="0.001"/><testcaseclassname="tests.test_state_machine_extractor.TestStateMachine"name="test_add_transition"time="0.001"/><testcaseclassname="tests.test_state_machine_extractor.TestStateMachine"name="test_calculate_complexity"time="0.001"/><testcaseclassname="tests.test_state_machine_extractor.TestStateMachine"name="test_to_dict"time="0.001"/><testcaseclassname="tests.test_state_machine_extractor.TestStateMachine"name="test_generate_systemverilog"time="0.001"/><testcaseclassname="tests.test_state_machine_extractor.TestStateMachine"name="test_generate_transition_condition"time="0.001"/><testcaseclassname="tests.test_state_machine_extractor.TestStateMachineExtractor"name="test_init"time="0.004"/><testcaseclassname="tests.test_state_machine_extractor.TestStateMachineExtractor"name="test_extract_functions"time="0.001"/><testcaseclassname="tests.test_state_machine_extractor.TestStateMachineExtractor"name="test_extract_explicit_state_machine_switch"time="0.002"/><testcaseclassname="tests.test_state_machine_extractor.TestStateMachineExtractor"name="test_extract_explicit_state_machine_if_chain"time="0.001"/><testcaseclassname="tests.test_state_machine_extractor.TestStateMachineExtractor"name="test_extract_implicit_state_machine"time="0.001"/><testcaseclassname="tests.test_state_machine_extractor.TestStateMachineExtractor"name="test_extract_global_state_machine"time="0.001"/><testcaseclassname="tests.test_state_machine_extractor.TestStateMachineExtractor"name="test_extract_transitions_from_code"time="0.001"/><testcaseclassname="tests.test_state_machine_extractor.TestStateMachineExtractor"name="test_find_delay_between_positions"time="0.001"/><testcaseclassname="tests.test_state_machine_extractor.TestStateMachineExtractor"name="test_categorize_function"time="0.001"/><testcaseclassname="tests.test_state_machine_extractor.TestStateMachineExtractor"name="test_get_state_type_for_category"time="0.001"/><testcaseclassname="tests.test_state_machine_extractor.TestStateMachineExtractor"name="test_optimize_state_machines"time="0.001"/><testcaseclassname="tests.test_state_machine_extractor.TestStateMachineExtractor"name="test_generate_analysis_report"time="0.001"/><testcaseclassname="tests.test_state_machine_extractor.TestStateMachineExtractor"name="test_extract_state_machines_integration"time="0.001"/><testcaseclassname="tests.test_sv_validation.TestSystemVerilogValidation"name="test_sv_module_structure_matches_example"time="0.002"/><testcaseclassname="tests.test_sv_validation.TestSystemVerilogValidation"name="test_sv_register_handling_matches_example"time="0.001"/><testcaseclassname="tests.test_sv_validation.TestSystemVerilogValidation"name="test_sv_clock_domain
E RuntimeError: VFIO device binding requires Linux. Current platform: Darwin. Please run this on a Linux system with VFIO support.</failure></testcase><testcaseclassname="tests.test_vfio_binding.TestVFIOBindingEdgeCases"name="test_bind_to_vfio_bind_error_but_already_bound"time="0.001"><failuremessage="RuntimeError: VFIO device binding requires Linux. Current platform: Darwin. Please run this on a Linux system with VFIO support.">tests/test_vfio_binding.py:70: in test_bind_to_vfio_bind_error_but_already_bound
E RuntimeError: VFIO device binding requires Linux. Current platform: Darwin. Please run this on a Linux system with VFIO support.</failure></testcase><testcaseclassname="tests.test_vfio_binding_enhanced.TestVFIOBindingEnhanced"name="test_validate_vfio_prerequisites_success"time="0.001"/><testcaseclassname="tests.test_vfio_binding_enhanced.TestVFIOBindingEnhanced"name="test_validate_vfio_prerequisites_missing_modules"time="0.001"/><testcaseclassname="tests.test_vfio_binding_enhanced.TestVFIOBindingEnhanced"name="test_validate_vfio_prerequisites_missing_driver"time="0.001"/><testcaseclassname="tests.test_vfio_binding_enhanced.TestVFIOBindingEnhanced"name="test_check_device_in_use"time="0.001"/><testcaseclassname="tests.test_vfio_binding_enhanced.TestVFIOBindingEnhanced"name="test_check_device_not_in_use"time="0.001"/><testcaseclassname="tests.test_vfio_binding_enhanced.TestVFIOBindingEnhanced"name="test_wait_for_device_state_success"time="0.001"/><testcaseclassname="tests.test_vfio_binding_enhanced.TestVFIOBindingEnhanced"name="test_wait_for_device_state_timeout"time="0.001"/><testcaseclassname="tests.test_vfio_binding_enhanced.TestVFIOBindingEnhanced"name="test_bind_to_vfio_enhanced_success"time="0.002"/><testcaseclassname="tests.test_vfio_binding_enhanced.TestVFIOBindingEnhanced"name="test_bind_to_vfio_device_busy_retry"time="1.010"/><testcaseclassname="tests.test_vfio_binding_enhanced.TestVFIOBindingEnhanced"name="test_bind_to_vfio_invalid_vendor_id"time="0.004"/><testcaseclassname="tests.test_vfio_binding_enhanced.TestVFIOBindingEnhanced"name="test_bind_to_vfio_invalid_device_id"time="0.004"/><testcaseclassname="tests.test_vfio_binding_enhanced.TestVFIOBindingEnhanced"name="test_bind_to_vfio_device_not_found"time="0.004"/><testcaseclassname="tests.test_vfio_binding_enhanced.TestVFIOBindingEnhanced"name="test_restore_original_driver_enhanced_success"time="0.003"/><testcaseclassname="tests.test_vfio_binding_enhanced.TestVFIOBindingEnhanced"name="test_restore_original_driver_device_disappeared"time="0.002"/><testcaseclassname="tests.test_vfio_binding_enhanced.TestVFIOBindingEnhanced"name="test_restore_original_driver_retry_logic"time="2.015"><failuremessage="AssertionError: assert 4 == 3 + where 4 = <MagicMock name='run_command' id='4402554464'>.call_count">tests/test_vfio_binding_enhanced.py:260: in test_restore_original_driver_retry_logic
assert mock_run.call_count == 3
E AssertionError: assert 4 == 3
E + where 4 = <MagicMock name='run_command' id='4402554464'>.call_count</failure></testcase><testcaseclassname="tests.test_vfio_binding_enhanced.TestVFIOBindingEnhanced"name="test_run_build_container_enhanced_validation"time="0.003"/><testcaseclassname="tests.test_vfio_binding_enhanced.TestVFIOBindingEnhanced"name="test_validate_container_environment_no_podman"time="0.002"/><testcaseclassname="tests.test_vfio_binding_enhanced.TestVFIOBindingEnhanced"name="test_validate_container_environment_no_image"time="0.002"/><testcaseclassname="tests.test_vfio_binding_enhanced.TestVFIOBindingEnhanced"name="test_validate_vfio_device_access_success"time="0.001"/><testcaseclassname="tests.test_vfio_binding_enhanced.TestVFIOBindingEnhanced"name="test_validate_vfio_device_access_missing_device"time="0.001"/><testcaseclassname="tests.test_vfio_binding_enhanced.TestVFIOBindingEnhanced"name="test_validate_vfio_device_access_wrong_driver"time="0.002"/><testcaseclassname="tests.test_vfio_binding_enhanced.TestVFIOBindingStressTests"name="test_bind_to_vfio_maximum_retries"time="0.003"><failuremessage="AssertionError: Regex pattern did not match. Regex: 'Failed to bind to vfio-pci after .* attempts' Input: 'VFIO device binding requires Linux. Current platform: Darwin. Please run this on a Linux system with VFIO support.'">tests/test_vfio_binding_enhanced.py:367: in test_bind_to_vfio_maximum_retries
E RuntimeError: VFIO device binding requires Linux. Current platform: Darwin. Please run this on a Linux system with VFIO support.
During handling of the above exception, another exception occurred:
tests/test_vfio_binding_enhanced.py:366: in test_bind_to_vfio_maximum_retries
with pytest.raises(RuntimeError, match="Failed to bind to vfio-pci after .* attempts"):
E AssertionError: Regex pattern did not match.
E Regex: 'Failed to bind to vfio-pci after .* attempts'
E Input: 'VFIO device binding requires Linux. Current platform: Darwin. Please run this on a Linux system with VFIO support.'</failure></testcase><testcaseclassname="tests.test_vfio_binding_enhanced.TestVFIOBindingStressTests"name="test_restore_original_driver_maximum_retries"time="0.001"/><testcaseclassname="tests.test_vivado_utils.TestVivadoDetection"name="test_find_vivado_in_path"time="0.001"/><testcaseclassname="tests.test_vivado_utils.TestVivadoDetection"name="test_find_vivado_in_common_locations"time="0.001"><failuremessage="assert None is not None">tests/test_vivado_utils.py:83: in test_find_vivado_in_common_locations
assert result is not None
E assert None is not None</failure></testcase><testcaseclassname="tests.test_vivado_utils.TestVivadoDetection"name="test_find_vivado_from_environment_variable"time="0.003"><failuremessage="IndexError: string index out of range">tests/test_vivado_utils.py:115: in test_find_vivado_from_environment_variable
result = find_vivado_installation()
src/vivado_utils.py:112: in find_vivado_installation
version = next(
src/vivado_utils.py:113: in <genexpr>
(p for p in path_parts if p[0].isdigit() and "." in p), "unknown"
E IndexError: string index out of range</failure></testcase><testcaseclassname="tests.test_vivado_utils.TestVivadoDetection"name="test_vivado_not_found"time="0.001"/><testcaseclassname="tests.test_vivado_utils.TestVivadoDetection"name="test_get_vivado_version_from_output"time="0.004"/><testcaseclassname="tests.test_vivado_utils.TestVivadoDetection"name="test_run_vivado_command"time="0.001"/><testcaseclassname="tests.test_vivado_utils.TestVivadoDetection"name="test_run_vivado_command_with_tcl"time="0.001"/><testcaseclassname="tests.test_vivado_utils.TestVivadoDetection"name="test_run_vivado_command_vivado_not_found"time="0.001"/><testcaseclassname="tests.tui.test_device_indicators.TestDeviceIndicators"name="test_device_properties_initialization"time="0.001"/><testcaseclassname="tests.tui.test_device_indicators.TestDeviceIndicators"name="test_validity_indicator"time="0.001"/><testcaseclassname="tests.tui.test_device_indicators.TestDeviceIndicators"name="test_driver_indicator"time="0.001"/><testcaseclassname="tests.tui.test_device_indicators.TestDeviceIndicators"name="test_vfio_indicator"time="0.001"/><testcaseclassname="tests.tui.test_device_indicators.TestDeviceIndicators"name="test_iommu_indicator"time="0.001"/><testcaseclassname="tests.tui.test_device_indicators.TestDeviceIndicators"name="test_ready_indicator"time="0.001"/><testcaseclassname="tests.tui.test_device_indicators.TestDeviceIndicators"name="test_compact_status_display"time="0.001"/><testcaseclassname="tests.tui.test_device_indicators.TestDeviceIndicators"name="test_enhanced_suitability_scoring"time="0.001"/><testcaseclassname="tests.tui.test_device_indicators.TestDeviceIndicators"name="test_detailed_status_information"time="0.001"/><testcaseclassname="tests.tui.test_device_indicators.TestDeviceIndicators"name="test_error_handling_edge_cases"time="0.001"/><testcaseclassname="tests.tui.test_device_indicators.TestDeviceManagerEnhancements"name="test_device_validity_check"time="0.002"/><testcaseclassname="tests.tui.test_device_indicators.TestDeviceManagerEnhancements"name="test_driver_status_check"time="0.001"/><testcaseclassname="tests.tui.test_device_indicators.TestDeviceManagerEnhancements"name="test_vfio_compatibility_check"time="0.001"/><testcaseclassname="tests.tui.test_device_indicators.TestDeviceManagerEnhancements"name="test_iommu_status_check"time="0.001"/><testcaseclassname="tests.tui.test_device_indicators.TestDeviceManagerEnhancements"name="test_enhanced_device_info_creation"time="0.003"/><testcaseclassname="tests.tui.test_device_indicators.TestTUIIntegration"name="test_device_table_columns"time="0.001"/><testcaseclassname="tests.tui.test_device_indicators.TestTUIIntegration"name="test_device_table_row_data"time="0.001"/><testcaseclassname="tests.tui.test_device_indicators.TestSpecificDeviceScenarios"name="test_valid_device_with_vfio"time="0.001"/><testcaseclassname="tests.tui.test_device_indicators.TestSpecificDeviceScenarios"name="test_device_with_bound_driver"time="0.001"/><testcaseclassname="tests.tui.test_device_indicators.TestSpecificDeviceScenarios"name="test_invalid_device"time="0.001"/><testcaseclassname="tests.tui.test_device_indicators.TestSpecificDeviceScenarios"name="test_iommu_disabled_device"time="0.001"/><testcaseclassname="tests.tui.test_device_indicators.TestSpecificDeviceScenarios"name="test_vfio_incompatible_device"time="0.001"/><testcaseclassname="tests.tui.test_progress.TestBuildStage"name="test_build_stage_values"time="0.001"/><testcaseclassname="tests.tui.test_progress.TestBuildProgress"name="test_build_progress_init"time="0.001"/><testcaseclassname="tests.tui.test_progress.TestBuildProgress"name="test_completed_stages_property"time="0.001"/><testcaseclassname="tests.tui.test_progress.TestBuildProgress"name="test_total_stages_property"time="0.001"/><testcaseclassname="tests.tui.test_progress.TestBuildProgress"name="test_overall_progress_property"time="0.001"/><testcaseclassname="tests.tui.test_pro
assert score > 0.8
E assert 0.7999999999999999 > 0.8</failure></testcase><testcaseclassname="tests.tui.test_tui_core.TestDeviceManager"name="test_cached_operations"time="0.001"/><testcaseclassname="tests.tui.test_tui_core.TestConfigManager"name="test_config_manager_init"time="0.001"/><testcaseclassname="tests.tui.test_tui_core.TestConfigManager"name="test_current_config_management"time="0.001"/><testcaseclassname="tests.tui.test_tui_core.TestConfigManager"name="test_create_default_profiles"time="0.003"/><testcaseclassname="tests.tui.test_tui_core.TestConfigManager"name="test_save_and_load_profile"time="0.001"><failuremessage="AssertionError: assert False + where False = exists() + where exists = PosixPath('/var/folders/pz/zdq1ptxs0h3700ssftp1vlch0000gn/T/tmpv4n0iltu/Test_Profile.json').exists">tests/tui/test_tui_core.py:264: in test_save_and_load_profile
assert profile_file.exists()
E AssertionError: assert False
E + where False = exists()
E + where exists = PosixPath('/var/folders/pz/zdq1ptxs0h3700ssftp1vlch0000gn/T/tmpv4n0iltu/Test_Profile.json').exists</failure></testcase><testcaseclassname="tests.tui.test_tui_core.TestConfigManager"name="test_profile_operations"time="0.002"/><testcaseclassname="tests.tui.test_tui_core.TestConfigManager"name="test_list_profiles"time="0.001"/><testcaseclassname="tests.tui.test_tui_core.TestConfigManager"name="test_delete_profile"time="0.001"/><testcaseclassname="tests.tui.test_tui_core.TestConfigManager"name="test_config_validation"time="0.001"/><testcaseclassname="tests.tui.test_tui_core.TestBuildOrchestrator"name="test_build_orchestrator_init"time="0.001"/><testcaseclassname="tests.tui.test_tui_core.TestBuildOrchestrator"name="test_progress_management"time="0.001"/><testcaseclassname="tests.tui.test_tui_core.TestBuildOrchestrator"name="test_start_build_success"time="1.360"/><testcaseclassname="tests.tui.test_tui_core.TestBuildOrchestrator"name="test_build_already_running"time="0.006"/><testcaseclassname="tests.tui.test_tui_core.TestBuildOrchestrator"name="test_cancel_build"time="2.008"/><testcaseclassname="tests.tui.test_tui_core.TestBuildOrchestrator"name="test_ensure_git_repo"time="0.009"><failuremessage="AssertionError: Expected '_run_command' to have been called once. Called 2 times. Calls: [call('git --version'), call('git clone https://github.com/ufrisk/pcileech-fpga.git /Users/ramseymcgrath/.cache/pcileech-fw-generator/repos/pcileech-fpga')]. pytest introspection follows: Args: assert ('git clone h...ileech-fpga',) == () Left contains one more item: #x1B[0m#x1B[33m'#x1B[39;49;00m#x1B[33mgit clone https://github.com/ufrisk/pcileech-fpga.git /Users/ramseymcgrath/.cache/pcileech-fw-generator/repos/pcileech-fpga#x1B[39;49;00m#x1B[33m'#x1B[39;49;00m#x1B[90m#x1B[39;49;00m Full diff: #x1B[0m#x1B[91m- ()#x1B[39;49;00m#x1B[90m#x1B[39;49;00m #x1B[92m+ (#x1B[39;49;00m#x1B[90m#x1B[39;49;00m #x1B[92m+ 'git clone https://github.com/ufrisk/pcileech-fpga.git '#x1B[39;49;00m#x1B[90m#x1B[39;49;00m #x1B[92m+ '/Users/ramseymcgrath/.cache/pcileech-fw-generator/repos/pcileech-fpga',#x1B[39;49;00m#x1B[90m#x1B[39;49;00m #x1B[92m+ )#x1B[39;49;00m#x1B[90m#x1B[39;49;00m">/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/unittest/mock.py:956: in assert_called_once
raise AssertionError(msg)
E AssertionError: Expected '_run_command' to have been called once. Called 2 times.
E Calls: [call('git --version'),
E call('git clone https://github.com/ufrisk/pcileech-fpga.git /Users/ramseymcgrath/.cache/pcileech-fw-generator/repos/pcileech-fpga')].
During handling of the above exception, another exception occurred:
tests/tui/test_tui_core.py:522: in test_ensure_git_repo
mock_run_command.assert_called_once()
E AssertionError: Expected '_run_command' to have been called once. Called 2 times.
E Calls: [call('git --version'),
E call('git clone https://github.com/ufrisk/pcileech-fpga.git /Users/ramseymcgrath/.cache/pcileech-fw-generator/repos/pcileech-fpga')].
E Left contains one more item: #x1B[0m#x1B[33m'#x1B[39;49;00m#x1B[33mgit clone https://github.com/ufrisk/pcileech-fpga.git /Users/ramseymcgrath/.cache/pcileech-fw-generator/repos/pcileech-fpga#x1B[39;49;00m#x1B[33m'#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
E #x1B[0m#x1B[91m- ()#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
E #x1B[92m+ (#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
E #x1B[92m+ 'git clone https://github.com/ufrisk/pcileech-fpga.git '#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
E #x1B[92m+ '/Users/ramseymcgrath/.cache/pcileech-fw-generator/repos/pcileech-fpga',#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
E #x1B[92m+ )#x1B[39;49;00m#x1B[90m#x1B[39;49;00m</failure></testcase><testcaseclassname="tests.tui.test_tui_core.TestStatusMonitor"name="test_status_monitor_init"time="0.001"/><testcaseclassname="tests.tui.test_tui_core.TestStatusMonitor"name="test_check_podman_status"time="0.001"/><testcaseclassname="tests.tui.test_tui_core.TestStatusMonitor"name="test_check_vivado_status"time="0.002"/><testcaseclassname="tests.tui.test_tui_core.TestStatusMonitor"name="test_get_disk_space"time="0.001"/><testcaseclassname="tests.tui.test_tui_core.TestStatusMonitor"name="test_check_root_access"time="0.001"/><testcaseclassname="tests.tui.test_tui_core.TestStatusMonitor"name="test_get_system_status"time="0.002"/><testcaseclassname="tests.tui.test_tui_core.TestStatusMonitor"name="test_monitoring_control"time="0.001"/><testcaseclassname="tests.tui.test_tui_core.TestStatusMonitor"name="test_status_summary"time="0.001"/><testcaseclassname="tests.tui.test_tui_main.TestConfigurationDialog"name="test_configuration_dialog_init"time="0.001"/><testcaseclassname="tests.tui.test_tui_main.TestConfigurationDialog"name="test_create_config_from_form"time="0.003"/><testcaseclassname="tests.tui.test_tui_main.TestConfigurationDialog"name="test_populate_form"time="0.003"/><testcaseclassname="tests.tui.test_tui_main.TestPCILeechTUI"name="test_tui_app_init"time="0.008"><failuremessage="textual.app.ScreenStackError: No screens on stack">tests/tui/test_tui_main.py:160: in test_tui_app_init
assert app.selected_device is None
/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/textual/reactive.py:275: in __get__
self._initialize_reactive(obj, self.name)
/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/textual/reactive.py:199: in _initialize_reactive
self._check_watchers(obj, name, default)
/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/textual/reactive.py:367: in _check_watchers
/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/textual/dom.py:1465: in query_one
base_node = self._get_dom_base()
/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/textual/app.py:870: in _get_dom_base
return self.default_screen
/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/textual/app.py:883: in default_screen
return self.screen if self._compose_screen is None else self._compose_screen
/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/textual/app.py:1472: in screen
raise ScreenStackError("No screens on stack") from None
E textual.app.ScreenStackError: No screens on stack</failure></testcase><testcaseclassname="tests.tui.test_tui_main.TestPCILeechTUI"name="test_app_properties"time="0.002"><failuremessage="textual.app.ScreenStackError: No screens on stack">tests/tui/test_tui_main.py:175: in test_app_properties
assert hasattr(app, "selected_device")
/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/textual/reactive.py:275: in __get__
self._initialize_reactive(obj, self.name)
/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/textual/reactive.py:199: in _initialize_reactive
self._check_watchers(obj, name, default)
/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/textual/reactive.py:367: in _check_watchers
E textual.app.ScreenStackError: No screens on stack</failure></testcase><testcaseclassname="tests.tui.test_tui_main.TestPCILeechTUI"name="test_initialize_app"time="0.003"/><testcaseclassname="tests.tui.test_tui_main.TestPCILeechTUI"name="test_scan_devices"time="0.002"/><testcaseclassname="tests.tui.test_tui_main.TestPCILeechTUI"name="test_update_device_table"time="0.002"/><testcaseclassname="tests.tui.test_tui_main.TestPCILeechTUI"name="test_update_config_display"time="0.002"/><testcaseclassname="tests.tui.test_tui_main.TestPCILeechTUI"name="test_update_status_display"time="0.002"/><testcaseclassname="tests.tui.test_tui_main.TestPCILeechTUI"name="test_update_build_progress"time="0.002"><failuremessage="textual.app.ScreenStackError: No screens on stack">tests/tui/test_tui_main.py:353: in test_update_build_progress
E textual.app.ScreenStackError: No screens on stack</failure></testcase><testcaseclassname="tests.tui.test_tui_main.TestPCILeechTUI"name="test_button_press_handlers"time="0.002"/><testcaseclassname="tests.tui.test_tui_main.TestPCILeechTUI"name="test_data_table_row_selection"time="0.003"/><testcaseclassname="tests.tui.test_tui_main.TestPCILeechTUI"name="test_start_build"time="0.002"><failuremessage="textual.app.ScreenStackError: No screens on stack">tests/tui/test_tui_main.py:487: in test_start_build
app.selected_device = test_device
/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/textual/reactive.py:345: in __set__
self._set(obj, value)
/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/textual/reactive.py:299: in _set
self._initialize_reactive(obj, self.name)
/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/textual/reactive.py:199: in _initialize_reactive
self._check_watchers(obj, name, default)
/Library/Frameworks/Python.framework/Versions/3.13/lib/python3.13/site-packages/textual/reactive.py:367: in _check_watchers
E textual.app.ScreenStackError: No screens on stack</failure></testcase><testcaseclassname="tests.tui.test_tui_main.TestPCILeechTUI"name="test_stop_build"time="0.002"/><testcaseclassname="tests.tui.test_tui_main.TestPCILeechTUI"name="test_build_progress_callback"time="0.002"/><testcaseclassname="tests.tui.test_tui_main.TestPCILeechTUI"name="test_reactive_watchers"time="0.003"/><testcaseclassname="tests.tui.test_tui_main.TestPCILeechTUI"name="test_build_progress_watcher"time="0.002"/><testcaseclassname="tests.tui.test_tui_main.TestPCILeechTUI"name="test_open_configuration_dialog"time="0.002"/><testcaseclassname="tests.tui.test_tui_main.TestPCILeechTUI"name="test_monitor_system_status"time="0.016"/><testcaseclassname="tests.tui.test_tui_models.TestBuildConfiguration"name="test_default_configuration"time="0.001"/><testcaseclassname="tests.tui.test_tui_models.TestBuildConfiguration"name="test_configuration_validation"time="0.002"/><testcaseclassname="tests.tui.test_tui_models.TestBuildConfiguration"name="test_is_advanced_property"time="0.001"/><testcaseclassname="tests.tui.test_tui_models.TestBuildConfiguration"name="test_feature_summary"time="0.001"><failuremessage="AssertionError: assert 'Local Build' == 'Basic Configuration' - Basic Configuration + Local Build">tests/tui/test_tui_models.py:91: in test_feature_summary
E AssertionError: assert 'Local Build' == 'Basic Configuration'
E
E - Basic Configuration
E + Local Build</failure></testcase><testcaseclassname="tests.tui.test_tui_models.TestBuildConfiguration"name="test_to_cli_args"time="0.001"/><testcaseclassname="tests.tui.test_tui_models.TestBuildConfiguration"name="test_serialization"time="0.001"/><testcaseclassname="tests.tui.test_tui_models.TestBuildConfiguration"name="test_file_operations"time="0.001"/><testcaseclassname="tests.tui.test_tui_models.TestBuildConfiguration"name="test_copy"time="0.001"/><testcaseclassname="tests.tui.test_tui_models.TestPCIDevice"name="test_device_creation"time="0.001"/><testcaseclassname="tests.tui.test_tui_models.TestPCIDevice"name="test_display_name"time="0.001"/><testcaseclassname="tests.tui.test_tui_models.TestPCIDevice"name="test_is_suitable"time="0.001"/><testcaseclassname="tests.tui.test_tui_models.TestPCIDevice"name="test_status_indicator"time="0.001"/><testcaseclassname="tests.tui.test_tui_models.TestPCIDevice"name="test_serialization"time="0.001"/><testcaseclassname="tests.tui.test_tui_models.TestTUIError"name="test_error_creation"time="0.001"/><testcaseclassname="tests.tui.test_tui_models.TestTUIError"name="test_severity_properties"time="0.001"/><testcaseclassname="tests.tui.test_tui_models.TestTUIError"name="test_add_action"time="0.001"/><testcaseclassname="tests.tui.test_tui_models.TestTUIError"name="test_serialization"time="0.001"/><testcaseclassname="tests.tui.test_tui_models.TestErrorTemplates"name="test_vfio_binding_failed"time="0.001"/><testcaseclassname="tests.tui.test_tui_models.TestErrorTemplates"name="test_container_not_found"time="0.001"/><testcaseclassname="tests.tui.test_tui_models.TestErrorTemplates"name="test_insufficient_permissions"time="0.001"/><testcaseclassname="tests.tui.test_tui_models.TestErrorTemplates"name="test_build_failed"time="0.001"/><testcaseclassname="tests.tui.test_tui_models.TestErrorTemplates"name="test_device_not_suitable"time="0.001"/><testcaseclassname="tests.tui.test_tui_models.TestBuildProgress"name="test_progress_creation"time="0.001"/><testcaseclassname="tests.tui.test_tui_models.TestBuildProgress"name="test_stage_tracking"time="0.001"/><testcaseclassname="tests.tui.test_tui_models.TestBuildProgress"name="test_overall_progress"time="0.001"/><testcaseclassname="tests.tui.test_tui_models.TestBuildProgress"name="test_status_text"time="0.001"/><testcaseclassname="tests.tui.test_tui_models.TestBuildProgress"name="test_progress_bar_text"time="0.001"/><testcaseclassname="tests.tui.test_tui_models.TestBuildProgress"name="test_warning_and_error_management"time="0.001"/><testcaseclassname="tests.tui.test_tui_models.TestBuildProgress"name="test_resource_usage_update"time="0.001"/><testcaseclassname="tests.tui.test_tui_models.TestBuildProgress"name="test_serialization"time="0.001"/><testcaseclassname="tests.tui.test_tui_models.TestBuildStage"name="test_build_stages"time="0.001"/></testsuite></testsuites>