qemu/tests/functional
Nicholas Piggin 28adad0a4d tests/functional/asset: Add AssetError exception class
Assets are uniquely identified by human-readable-ish url, so make an
AssetError exception class that prints url with error message.

A property 'transient' is used to capture whether the client may retry
or try again later, or if it is a serious and likely permanent error.
This is used to retain the existing behaviour of treating HTTP errors
other than 404 as 'transient' and not causing precache step to fail.
Additionally, partial-downloads and stale asset caches that fail to
resolve after the retry limit are now treated as transient and do not
cause precache step to fail.

For background: The NetBSD archive is, at the time of writing, failing
with short transfer. Retrying the fetch at that position (as wget does)
results in a "503 backend unavailable" error. We would like to get that
error code directly, but I have not found a way to do that with urllib,
so treating the short-copy as a transient failure covers that case (and
seems like a reasonable way to handle it in general).

Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Message-ID: <20250312130002.945508-4-npiggin@gmail.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
2025-03-12 18:20:50 +01:00
..
acpi-bits tests/functional: Convert the acpi-bits test into a standalone test 2024-09-04 11:14:33 +02:00
qemu_test tests/functional/asset: Add AssetError exception class 2025-03-12 18:20:50 +01:00
aspeed.py tests/functional: Update OpenBMC image of romulus machine 2025-03-09 14:36:52 +01:00
meson.build tests/functional: Bump up arm_replay timeout 2025-03-12 18:15:44 +01:00
replay_kernel.py tests/functional: Provide a proper name for the VMs in the replay tests 2025-02-26 07:43:25 +01:00
test_aarch64_aspeed.py tests/functional/aspeed: Add test case for AST2700 A1 2025-03-09 14:36:53 +01:00
test_aarch64_raspi3.py tests/functional: convert tests to new archive_extract helper 2024-12-17 19:39:53 +01:00
test_aarch64_raspi4.py tests/functional: convert tests to new uncompress helper 2024-12-17 19:39:53 +01:00
test_aarch64_replay.py tests/functional: Convert the aarch64 replay avocado tests 2025-02-26 07:43:25 +01:00
test_aarch64_rme_sbsaref.py tests/functional: add boot error detection for RME tests 2025-03-10 10:30:01 +00:00
test_aarch64_rme_virt.py tests/functional: add boot error detection for RME tests 2025-03-10 10:30:01 +00:00
test_aarch64_sbsaref.py licenses: Remove SPDX tags not being license identifier for Linaro 2025-01-30 13:01:22 +03:00
test_aarch64_sbsaref_alpine.py trivial patches for 2025-01-30 2025-01-30 15:11:49 -05:00
test_aarch64_sbsaref_freebsd.py trivial patches for 2025-01-30 2025-01-30 15:11:49 -05:00
test_aarch64_tcg_plugins.py tests/functional: Allow running TCG plugins tests on non-Linux/BSD hosts 2025-03-10 10:30:00 +00:00
test_aarch64_tuxrun.py tests/functional: update the aarch64 tuxrun tests 2024-11-25 10:27:02 +00:00
test_aarch64_virt.py tests/functional: move aarch64 GPU test into own file 2025-03-10 10:30:00 +00:00
test_aarch64_virt_gpu.py tests/functional: update the aarch64_virg_gpu images 2025-03-10 10:30:00 +00:00
test_aarch64_xen.py tests/functional: Convert the aarch64 xen test to the functional framework 2025-02-10 19:54:01 +01:00
test_aarch64_xlnx_versal.py tests/functional: Convert the xlnx_versal_virt avocado test 2024-12-11 09:18:39 +01:00
test_acpi_bits.py tests/functional: convert tests to new archive_extract helper 2024-12-17 19:39:53 +01:00
test_alpha_clipper.py tests/functional: convert tests to new uncompress helper 2024-12-17 19:39:53 +01:00
test_alpha_replay.py tests/functional: Convert the alpha replay avocado tests 2025-02-26 07:43:25 +01:00
test_arm_aspeed_ast1030.py tests/functional: convert tests to new archive_extract helper 2024-12-17 19:39:53 +01:00
test_arm_aspeed_ast2500.py test/functional: Update buildroot images to 2024.11 2025-01-27 09:38:15 +01:00
test_arm_aspeed_ast2600.py test/functional: Update buildroot images to 2024.11 2025-01-27 09:38:15 +01:00
test_arm_aspeed_bletchley.py tests/functional: Introduce a bletchley machine test 2025-03-09 14:36:52 +01:00
test_arm_aspeed_palmetto.py tests/functional: Update OpenBMC image of palmetto machine 2025-03-09 14:36:52 +01:00
test_arm_aspeed_rainier.py tests/functional: convert tests to new archive_extract helper 2024-12-17 19:39:53 +01:00
test_arm_aspeed_romulus.py tests/functional: Update OpenBMC image of romulus machine 2025-03-09 14:36:52 +01:00
test_arm_aspeed_witherspoon.py tests/functional: Introduce a witherspoon machine test 2025-03-09 14:36:52 +01:00
test_arm_bflt.py tests/functional: convert tests to new archive_extract helper 2024-12-17 19:39:53 +01:00
test_arm_bpim2u.py tests/functional: convert tests to new uncompress helper 2024-12-17 19:39:53 +01:00
test_arm_canona1100.py tests/functional: convert tests to new archive_extract helper 2024-12-17 19:39:53 +01:00
test_arm_collie.py tests/functional: remove many unused imports 2024-12-17 19:39:53 +01:00
test_arm_cubieboard.py tests/functional: convert tests to new uncompress helper 2024-12-17 19:39:53 +01:00
test_arm_emcraft_sf2.py tests/functional: switch over to using self.scratch_file() 2024-12-17 19:39:53 +01:00
test_arm_integratorcp.py tests/functional: switch over to using self.scratch_file() 2024-12-17 19:39:53 +01:00
test_arm_microbit.py tests/functional: Add a test for the arm microbit machine 2025-01-28 18:40:19 +00:00
test_arm_orangepi.py tests/functional: convert tests to new uncompress helper 2024-12-17 19:39:53 +01:00
test_arm_quanta_gsj.py tests/functional: Add a decorator for skipping long running tests 2025-01-30 10:50:56 +01:00
test_arm_raspi2.py tests/functional: convert tests to new uncompress helper 2024-12-17 19:39:53 +01:00
test_arm_replay.py tests/functional: Convert the arm replay avocado tests 2025-02-26 07:43:25 +01:00
test_arm_smdkc210.py tests/functional: convert tests to new uncompress helper 2024-12-17 19:39:53 +01:00
test_arm_sx1.py tests/functional/test_arm_sx1: Check whether the serial console is working 2025-03-07 10:08:19 +00:00
test_arm_tuxrun.py tests/functional: update the arm tuxrun tests 2025-01-10 11:16:47 +00:00
test_arm_vexpress.py tests/functional: convert tests to new archive_extract helper 2024-12-17 19:39:53 +01:00
test_arm_virt.py tests/functional: Convert the arm virt avocado test 2024-12-17 20:29:03 +01:00
test_avr_mega2560.py tests/functional: Convert some tests that download files via fetch_asset() 2024-09-04 11:11:31 +02:00
test_cpu_queries.py tests/functional: Convert simple avocado tests into standalone python tests 2024-09-04 10:52:29 +02:00
test_empty_cpu_model.py tests/functional: Convert simple avocado tests into standalone python tests 2024-09-04 10:52:29 +02:00
test_hppa_seabios.py tests: Add functional tests for HPPA machines 2025-01-13 17:16:04 +01:00
test_i386_tuxrun.py tests/functional: update the i386 tuxrun tests 2025-01-10 11:16:52 +00:00
test_info_usernet.py tests/functional: Add a helper function for retrieving the hostfwd port 2024-12-17 20:33:29 +01:00
test_intel_iommu.py tests/functional: Move the code for testing HTTP downloads to a common function 2025-03-07 07:50:19 +01:00
test_linux_initrd.py tests/functional: switch to new test skip decorators 2024-12-17 19:39:53 +01:00
test_loongarch64_virt.py tests/functional: Fix the running test case causes loongarch64 to hang 2024-11-27 09:17:15 +01:00
test_m68k_mcf5208evb.py tests/functional: convert tests to new archive_extract helper 2024-12-17 19:39:53 +01:00
test_m68k_nextcube.py tests/functional: switch over to using self.scratch_file() 2024-12-17 19:39:53 +01:00
test_m68k_q800.py tests/functional: convert tests to new archive_extract helper 2024-12-17 19:39:53 +01:00
test_m68k_replay.py tests/functional: Convert the m68k replay avocado tests 2025-02-26 07:43:25 +01:00
test_m68k_tuxrun.py tests/functional: add a m68k tuxrun tests 2025-01-10 11:16:59 +00:00
test_mem_addr_space.py tests/functional: skip memaddr tests on 32-bit builds 2025-03-07 07:50:19 +01:00
test_microblaze_replay.py tests/functional: Convert the microblaze replay avocado tests 2025-02-26 07:43:25 +01:00
test_microblaze_s3adsp1800.py tests/functional: Have microblaze tests inherit common parent class 2025-02-24 10:44:54 +01:00
test_microblazeel_s3adsp1800.py tests/functional: Have microblaze tests inherit common parent class 2025-02-24 10:44:54 +01:00
test_migration.py tests/functional: Convert the migration avocado test 2025-01-30 10:30:36 +01:00
test_mips64_tuxrun.py tests/functional: update the mips64 tuxrun tests 2025-01-10 11:17:14 +00:00
test_mips64el_fuloong2e.py tests/functional: convert tests to new archive_extract helper 2024-12-17 19:39:53 +01:00
test_mips64el_loongson3v.py tests/functional: switch to new test skip decorators 2024-12-17 19:39:53 +01:00
test_mips64el_malta.py tests/functional: convert tests to new uncompress helper 2024-12-17 19:39:53 +01:00
test_mips64el_replay.py tests/functional/test_mips64el_malta: Convert the mips64el replay tests 2025-01-30 10:51:20 +01:00
test_mips64el_tuxrun.py tests/functional: update the mips64el tuxrun tests 2025-01-10 11:17:19 +00:00
test_mips_malta.py tests/functional/test_mips_malta: Add a network test via the pcnet NIC 2025-03-07 07:50:19 +01:00
test_mips_replay.py tests/functional/test_mips_malta: Convert the mips big endian replay tests 2025-01-30 10:51:24 +01:00
test_mips_tuxrun.py tests/functional: update the mips32 tuxrun tests 2025-01-10 11:17:03 +00:00
test_mipsel_malta.py tests/functional: convert tests to new uncompress helper 2024-12-17 19:39:53 +01:00
test_mipsel_replay.py tests/functional/test_mipsel_malta: Convert the mipsel replay tests 2025-01-30 10:51:17 +01:00
test_mipsel_tuxrun.py tests/functional: update the mips32el tuxrun tests 2025-01-10 11:17:10 +00:00
test_multiprocess.py tests/functional: Convert the multiprocess avocado test into a standalone test 2024-09-11 09:49:12 +02:00
test_netdev_ethtool.py tests/functional: Correct typo in test_netdev_ethtool.py SPDX tag 2024-09-20 10:11:59 +03:00
test_or1k_replay.py tests/functional: Convert the or1k replay avocado tests 2025-02-26 07:43:25 +01:00
test_or1k_sim.py tests/functional: convert tests to new archive_extract helper 2024-12-17 19:39:53 +01:00
test_pc_cpu_hotplug_props.py tests/functional: Convert simple avocado tests into standalone python tests 2024-09-04 10:52:29 +02:00
test_ppc64_e500.py tests/functional: Require 'user' netdev for ppc64 e500 test 2025-03-12 18:15:30 +01:00
test_ppc64_hv.py tests/functional/test_ppc64_hv: Update to Alpine 3.21.0 2025-01-02 08:58:08 +01:00
test_ppc64_mac99.py tests/functional: Add a ppc64 mac99 test 2025-01-30 10:38:51 +01:00
test_ppc64_powernv.py tests/functional: Convert the powernv tests from boot_linux_console.py 2024-09-24 13:45:06 +02:00
test_ppc64_pseries.py tests/functional: Convert most ppc avocado tests into standalone tests 2024-09-04 11:14:33 +02:00
test_ppc64_replay.py tests/functional: Convert the ppc64 replay avocado tests 2025-02-26 07:43:25 +01:00
test_ppc64_tuxrun.py tests/functional: reduce tuxrun maxmem to work on 32-bit hosts 2025-03-06 08:10:04 +01:00
test_ppc_40p.py tests/functional: Extend PPC 40p test with Linux boot 2025-01-30 10:39:37 +01:00
test_ppc_74xx.py tests/functional: Convert avocado tests that just need a small adjustment 2024-09-04 10:52:29 +02:00
test_ppc_405.py tests/functional: Convert some tests that download files via fetch_asset() 2024-09-04 11:11:31 +02:00
test_ppc_amiga.py tests/functional: convert tests to new archive_extract helper 2024-12-17 19:39:53 +01:00
test_ppc_bamboo.py tests/functional: convert tests to new archive_extract helper 2024-12-17 19:39:53 +01:00
test_ppc_mac.py tests/functional: convert tests to new archive_extract helper 2024-12-17 19:39:53 +01:00
test_ppc_mpc8544ds.py tests/functional: convert tests to new archive_extract helper 2024-12-17 19:39:53 +01:00
test_ppc_replay.py tests/functional: Convert the 32-bit ppc replay avocado tests 2025-02-26 07:43:25 +01:00
test_ppc_sam460ex.py tests/functional: Add a ppc sam460ex test 2025-02-11 13:27:07 +01:00
test_ppc_tuxrun.py tests/functional: update the ppc32 tuxrun tests 2025-01-10 11:17:22 +00:00
test_ppc_virtex_ml507.py tests/functional: convert tests to new archive_extract helper 2024-12-17 19:39:53 +01:00
test_riscv32_tuxrun.py tests/functional: update the riscv32 tuxrun tests 2025-01-10 11:17:37 +00:00
test_riscv64_tuxrun.py tests/functional: update the riscv64 tuxrun tests 2025-01-10 11:17:41 +00:00
test_riscv_opensbi.py tests/functional: Convert the riscv_opensbi avocado test into a standalone test 2024-11-08 06:13:34 +01:00
test_rx_gdbsim.py tests/functional/test_rx_gdbsim: Use stable URL for test_linux_sash 2025-01-02 08:58:08 +01:00
test_s390x_ccw_virtio.py tests/functional: convert tests to new uncompress helper 2024-12-17 19:39:53 +01:00
test_s390x_replay.py tests/functional: Convert the s390x replay avocado tests 2025-02-26 07:43:25 +01:00
test_s390x_topology.py tests/functional: convert tests to new uncompress helper 2024-12-17 19:39:53 +01:00
test_s390x_tuxrun.py tests/functional: update the s390x tuxrun tests 2025-01-10 11:17:45 +00:00
test_sh4_r2d.py tests/functional: convert tests to new archive_extract helper 2024-12-17 19:39:53 +01:00
test_sh4_tuxrun.py tests/functional: remove unused system imports 2024-12-11 09:18:39 +01:00
test_sh4eb_r2d.py tests/functional: convert tests to new archive_extract helper 2024-12-17 19:39:53 +01:00
test_sparc64_sun4u.py tests/functional: convert tests to new archive_extract helper 2024-12-17 19:39:53 +01:00
test_sparc64_tuxrun.py tests/functional: update the sparc64 tuxrun tests 2025-01-10 11:17:49 +00:00
test_sparc_replay.py tests/functional: Convert the sparc replay avocado test 2025-02-26 07:43:25 +01:00
test_sparc_sun4m.py tests/functional: convert tests to new archive_extract helper 2024-12-17 19:39:53 +01:00
test_version.py tests/functional: Convert avocado tests that just need a small adjustment 2024-09-04 10:52:29 +02:00
test_virtio_balloon.py tests/functional/test_virtio_balloon: Only use KVM for running this test 2025-03-07 09:24:00 +01:00
test_virtio_gpu.py tests/functional: switch over to using self.build_file(...) 2024-12-17 19:39:53 +01:00
test_virtio_version.py tests/functional: remove unused system imports 2024-12-11 09:18:39 +01:00
test_vnc.py tests/functional: Extract the find_free_ports() function into a helper file 2025-01-02 08:58:08 +01:00
test_x86_64_hotplug_blk.py tests/functional: Convert the hotplug_blk avocado test 2025-02-10 19:54:15 +01:00
test_x86_64_hotplug_cpu.py tests/functional/test_x86_64_hotplug_cpu: Fix race condition during unplug 2025-01-07 15:02:46 +01:00
test_x86_64_kvm_xen.py tests/functional: Convert the kvm_xen_guest avocado test 2025-01-22 08:28:49 +01:00
test_x86_64_replay.py tests/functional: Convert the x86_64 replay avocado tests 2025-02-26 07:43:25 +01:00
test_x86_64_tuxrun.py tests/functional: update the x86_64 tuxrun tests 2025-01-10 11:17:52 +00:00
test_x86_cpu_model_versions.py tests/functional: Convert the x86_cpu_model_versions test 2024-09-04 11:14:33 +02:00
test_xtensa_lx60.py tests/functional: convert tests to new archive_extract helper 2024-12-17 19:39:53 +01:00
test_xtensa_replay.py tests/functional: Convert the xtensa replay test to the functional framework 2025-02-26 07:43:25 +01:00