Run unit test with threading mode
The py312-threading tox target will run the currently working unit tests with threading mode. We have an exclude list, those tests are failing or hanging. Also the current test list might still have unstable tests. This also adds a non voting zuul job to run the new target. Change-Id: Ibf41fede996fbf2ebaf6ae83df8cfde35acb2b7e Signed-off-by: Balazs Gibizer <gibi@redhat.com>
This commit is contained in:
22
.zuul.yaml
22
.zuul.yaml
@@ -51,6 +51,26 @@
|
||||
bindep_profile: test py312
|
||||
timeout: 3600
|
||||
|
||||
- job:
|
||||
name: nova-tox-py312-threading
|
||||
parent: openstack-tox-py312
|
||||
description: |
|
||||
Run tox-based unit tests for the OpenStack Nova project
|
||||
under cPython version 3.12 with eventlet disabled.
|
||||
Uses tox with the ``py312-threading`` environment.
|
||||
|
||||
required-projects:
|
||||
# including nova here makes this job reusable by other projects and
|
||||
# allow depends-on placement to work with our placement fixture
|
||||
- openstack/nova
|
||||
- openstack/placement
|
||||
vars:
|
||||
# explicitly stating the work dir makes this job reusable by other
|
||||
# projects
|
||||
zuul_work_dir: src/opendev.org/openstack/nova
|
||||
bindep_profile: test py312
|
||||
tox_envlist: py312-threading
|
||||
|
||||
- job:
|
||||
name: nova-tox-validate-backport
|
||||
parent: openstack-tox
|
||||
@@ -821,6 +841,8 @@
|
||||
- barbican-tempest-plugin-simple-crypto:
|
||||
irrelevant-files: *nova-base-irrelevant-files
|
||||
voting: false
|
||||
- nova-tox-py312-threading:
|
||||
voting: false
|
||||
gate:
|
||||
jobs:
|
||||
- nova-live-migration
|
||||
|
123
threading_unit_test_excludes.txt
Normal file
123
threading_unit_test_excludes.txt
Normal file
@@ -0,0 +1,123 @@
|
||||
nova.tests.unit.api.openstack.compute.test_availability_zone.ServersControllerCreateTestV21.test_create_instance_with_availability_zone
|
||||
nova.tests.unit.api.openstack.compute.test_services.ServicesTestV253.test_update_disabled_no_reason_then_enable
|
||||
nova.tests.unit.compute.test_shelve.ShelveComputeAPITestCase.test_unshelve_with_az_to_newaz
|
||||
nova.tests.unit.compute.test_shelve.ShelveComputeAPITestCase.test_unshelve_without_az_to_newaz_and_host
|
||||
nova.tests.unit.compute.test_shelve.ShelveComputeAPITestCase.test_unshelve_without_az_to_newaz
|
||||
nova.tests.unit.conductor.test_conductor.ConductorTaskAPITestCase.test_build_instances
|
||||
nova.tests.unit.conductor.test_conductor.ConductorTaskAPITestCase.test_build_instances_arq_failure
|
||||
nova.tests.unit.conductor.test_conductor.ConductorTaskAPITestCase.test_build_instances_destroy_build_request
|
||||
nova.tests.unit.conductor.test_conductor.ConductorTaskAPITestCase.test_build_instances_exhaust_host_list
|
||||
nova.tests.unit.conductor.test_conductor.ConductorTaskAPITestCase.test_build_instances_logs_selected_and_alts
|
||||
nova.tests.unit.conductor.test_conductor.ConductorTaskAPITestCase.test_build_instances_no_host_mapping
|
||||
nova.tests.unit.conductor.test_conductor.ConductorTaskAPITestCase.test_build_instances_reschedule_ignores_build_request
|
||||
nova.tests.unit.conductor.test_conductor.ConductorTaskAPITestCase.test_build_instances_reschedule_not_recalc_mapping_if_claim_fails
|
||||
nova.tests.unit.conductor.test_conductor.ConductorTaskAPITestCase.test_build_instances_reschedule_recalculates_provider_mapping
|
||||
nova.tests.unit.conductor.test_conductor.ConductorTaskAPITestCase.test_build_instances_retry_exceeded
|
||||
nova.tests.unit.conductor.test_conductor.ConductorTaskAPITestCase.test_build_instances_scheduler_failure
|
||||
nova.tests.unit.conductor.test_conductor.ConductorTaskAPITestCase.test_build_instances_scheduler_group_failure
|
||||
nova.tests.unit.conductor.test_conductor.ConductorTaskAPITestCase.test_build_instances_update_instance_mapping
|
||||
nova.tests.unit.conductor.test_conductor.ConductorTaskAPITestCase.test_cold_migrate
|
||||
nova.tests.unit.conductor.test_conductor.ConductorTaskAPITestCase.test_cold_migrate_forced_shutdown
|
||||
nova.tests.unit.conductor.test_conductor.ConductorTaskAPITestCase.test_rebuild_instance_with_scheduler_group_failure
|
||||
nova.tests.unit.conductor.test_conductor.ConductorTaskAPITestCase.test_unshelve_offload_instance_on_host_with_request_spec
|
||||
nova.tests.unit.conductor.test_conductor.ConductorTaskRPCAPITestCase.test_build_instances
|
||||
nova.tests.unit.conductor.test_conductor.ConductorTaskRPCAPITestCase.test_build_instances_arq_failure
|
||||
nova.tests.unit.conductor.test_conductor.ConductorTaskRPCAPITestCase.test_build_instances_exhaust_host_list
|
||||
nova.tests.unit.conductor.test_conductor.ConductorTaskRPCAPITestCase.test_build_instances_no_host_mapping
|
||||
nova.tests.unit.conductor.test_conductor.ConductorTaskRPCAPITestCase.test_build_instances_reschedule_not_recalc_mapping_if_claim_fails
|
||||
nova.tests.unit.conductor.test_conductor.ConductorTaskRPCAPITestCase.test_build_instances_scheduler_failure
|
||||
nova.tests.unit.conductor.test_conductor.ConductorTaskRPCAPITestCase.test_cold_migrate
|
||||
nova.tests.unit.conductor.test_conductor.ConductorTaskRPCAPITestCase.test_rebuild_instance_with_scheduler_group_failure
|
||||
nova.tests.unit.conductor.test_conductor.ConductorTaskRPCAPITestCase.test_unshelve_offload_instance_on_host_with_request_spec
|
||||
nova.tests.unit.console.rfb.test_authvencrypt.RFBAuthSchemeVeNCryptTestCase.test_security_handshake_fails_on_ssl_failure
|
||||
nova.tests.unit.console.rfb.test_authvencrypt.RFBAuthSchemeVeNCryptTestCase.test_security_handshake_without_x509
|
||||
nova.tests.unit.console.rfb.test_authvencrypt.RFBAuthSchemeVeNCryptTestCase.test_security_handshake_with_x509
|
||||
nova.tests.unit.objects.test_objects.TestObjectSerializer.test_object_tree_backport
|
||||
nova.tests.unit.policies.test_availability_zone.AvailabilityZoneNoLegacyNoScopePolicyTest.test_availability_zone_detail_policy
|
||||
nova.tests.unit.policies.test_availability_zone.AvailabilityZoneNoLegacyNoScopePolicyTest.test_availability_zone_list_policy
|
||||
nova.tests.unit.policies.test_availability_zone.AvailabilityZonePolicyTest.test_availability_zone_detail_policy
|
||||
nova.tests.unit.policies.test_availability_zone.AvailabilityZonePolicyTest.test_availability_zone_list_policy
|
||||
nova.tests.unit.policies.test_availability_zone.AvailabilityZoneScopeTypePolicyTest.test_availability_zone_detail_policy
|
||||
nova.tests.unit.policies.test_availability_zone.AvailabilityZoneScopeTypePolicyTest.test_availability_zone_list_policy
|
||||
nova.tests.unit.policies.test_availability_zone.AZScopeTypeNoLegacyPolicyTest.test_availability_zone_list_policy
|
||||
nova.tests.unit.storage.test_rbd.RbdTestCase.test_cleanup_volumes
|
||||
nova.tests.unit.storage.test_rbd.RbdTestCase.test_cleanup_volumes_fail_not_found
|
||||
nova.tests.unit.storage.test_rbd.RbdTestCase.test_cleanup_volumes_fail_other
|
||||
nova.tests.unit.storage.test_rbd.RbdTestCase.test_cleanup_volumes_fail_snapshots
|
||||
nova.tests.unit.storage.test_rbd.RbdTestCase.test_cleanup_volumes_pending_resize
|
||||
nova.tests.unit.storage.test_rbd.RbdTestCase.test_cleanup_volumes_reverting_resize
|
||||
nova.tests.unit.storage.test_rbd.RbdTestCase.test_destroy_volume
|
||||
nova.tests.unit.test_availability_zones.AvailabilityZoneTestCases.test_get_availability_zones
|
||||
nova.tests.unit.test_baserpc.BaseAPITestCase.test_get_backdoor_port
|
||||
nova.tests.unit.test_baserpc.BaseAPITestCase.test_ping
|
||||
nova.tests.unit.test_context.ContextTestCase.test_scatter_gather_cells_queued_task_cancelled
|
||||
nova.tests.unit.test_rpc.TestRPC.test_get_server
|
||||
nova.tests.unit.test_rpc.TestRPC.test_get_server_profiler_enabled
|
||||
nova.tests.unit.test_utils.ExecutorStatsTestCase.test_stats_logged_eventlet
|
||||
nova.tests.unit.test_utils.OsloServiceBackendSelectionTestCase.test_eventlet_selected
|
||||
nova.tests.unit.virt.libvirt.test_driver.CacheConcurrencyTestCase.test_different_fname_concurrency
|
||||
nova.tests.unit.virt.libvirt.test_driver.CacheConcurrencyTestCase.test_same_fname_concurrency
|
||||
nova.tests.unit.virt.libvirt.test_driver.LibvirtDriverTestCase.test_rescue
|
||||
nova.tests.unit.virt.libvirt.test_driver.TestUpdateProviderTree.test_image_cache_disk_reservation
|
||||
nova.tests.unit.virt.libvirt.test_driver.TestUpdateProviderTree.test_update_provider_tree
|
||||
nova.tests.unit.virt.libvirt.test_driver.TestUpdateProviderTree.test_update_provider_tree_for_pcpu_reshape
|
||||
nova.tests.unit.virt.libvirt.test_driver.TestUpdateProviderTree.test_update_provider_tree_for_vgpu_reshape
|
||||
nova.tests.unit.virt.libvirt.test_driver.TestUpdateProviderTree.test_update_provider_tree_for_vpmem
|
||||
nova.tests.unit.virt.libvirt.test_driver.TestUpdateProviderTree.test_update_provider_tree_with_cpu_traits
|
||||
nova.tests.unit.virt.libvirt.test_driver.TestUpdateProviderTree.test_update_provider_tree_with_file_backed_memory
|
||||
nova.tests.unit.virt.libvirt.test_driver.TestUpdateProviderTree.test_update_provider_tree_with_tpm_traits
|
||||
nova.tests.unit.virt.libvirt.test_driver.TestUpdateProviderTree.test_update_provider_tree_with_vgpus
|
||||
nova.tests.unit.virt.libvirt.test_driver.TestUpdateProviderTree.test_update_provider_tree_zero_total
|
||||
nova.tests.unit.virt.libvirt.volume.test_mount.HostMountStateTestCase.test_mount_concurrent
|
||||
nova.tests.unit.virt.libvirt.volume.test_mount.HostMountStateTestCase.test_mount_concurrent_no_interfere
|
||||
nova.tests.unit.virt.libvirt.volume.test_mount.MountManagerTestCase.test_host_up_waits_for_completion
|
||||
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_attach_detach_different_power_states
|
||||
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_attach_detach_volume
|
||||
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_block_stats
|
||||
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_destroy_instance
|
||||
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_force_hard_reboot
|
||||
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_get_console_output
|
||||
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_get_diagnostics
|
||||
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_get_info
|
||||
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_get_instance_diagnostics
|
||||
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_get_instance_disk_info
|
||||
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_get_mks_console
|
||||
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_get_serial_console
|
||||
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_get_spice_console
|
||||
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_get_vnc_console
|
||||
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_live_migration
|
||||
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_live_migration_force_complete
|
||||
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_pause
|
||||
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_poll_rebooting_instances
|
||||
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_power_off
|
||||
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_power_on_powered_off
|
||||
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_power_on_running
|
||||
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_reboot
|
||||
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_rescue
|
||||
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_restore_running
|
||||
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_restore_soft_deleted
|
||||
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_resume_state_on_host_boot
|
||||
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_resume_suspended_instance
|
||||
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_resume_unsuspended_instance
|
||||
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_set_admin_password
|
||||
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_snapshot_running
|
||||
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_soft_delete
|
||||
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_spawn
|
||||
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_suspend
|
||||
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_swap_volume
|
||||
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_trigger_crash_dump
|
||||
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_unpause_paused_instance
|
||||
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_unpause_unpaused_instance
|
||||
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_unplug_vifs_with_destroy_vifs_false
|
||||
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_unplug_vifs_with_destroy_vifs_true
|
||||
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_unrescue_rescued_instance
|
||||
nova.tests.unit.virt.test_virt_drivers.LibvirtConnTestCase.test_unrescue_unrescued_instance
|
||||
nova.tests.unit.virt.vmwareapi.test_vm_util.VMwareVMUtilTestCase.test_create_vm_invalid_guestid
|
||||
# Independent failure ~10% with multiple possible error:
|
||||
# - sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) not an error
|
||||
# - sqlite3.OperationalError: cannot start a transaction within a transaction
|
||||
# both triggered at: nova.compute.api.HostAPI._service_get_all_cells
|
||||
nova.tests.unit.policies.test_availability_zone.AZScopeTypeNoLegacyPolicyTest.test_availability_zone_detail_policy
|
||||
# Independent hang 100%
|
||||
# after 160 seconds the test passes :/
|
||||
nova.tests.unit.conductor.test_conductor.ConductorTaskRPCAPITestCase.test_evacuate_old_rpc_without_target_state
|
1
tools/generate-exclude.sh
Normal file
1
tools/generate-exclude.sh
Normal file
@@ -0,0 +1 @@
|
||||
grep -v "#" threading_unit_test_excludes.txt > /tmp/exclude.txt
|
18
tox.ini
18
tox.ini
@@ -63,6 +63,24 @@ setenv =
|
||||
# by making greenlet leaks a failure.
|
||||
NOVA_RAISE_ON_GREENLET_LEAK=True
|
||||
|
||||
[testenv:py312-threading]
|
||||
setenv =
|
||||
{[testenv]setenv}
|
||||
# we do not have any greenlet leaks in unit tests so enforce that
|
||||
# by making greenlet leaks a failure.
|
||||
NOVA_RAISE_ON_GREENLET_LEAK=True
|
||||
# run the test without eventlet
|
||||
OS_NOVA_DISABLE_EVENTLET_PATCHING=True
|
||||
|
||||
commands =
|
||||
# So far we have a list of failing test cases to filter out. Also note
|
||||
# that there might be unstale tests.
|
||||
# Our exclude list has comments we need to remove before it can be passed
|
||||
# to stestr
|
||||
bash tools/generate-exclude.sh
|
||||
stestr run {posargs} --exclude-list /tmp/exclude.txt
|
||||
stestr slowest
|
||||
|
||||
[testenv:functional{,-py310,-py311,-py312}]
|
||||
description =
|
||||
Run functional tests.
|
||||
|
Reference in New Issue
Block a user