Re: [PATCH] selftests: iommu: add config needed for iommufd_fail_nth

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Even after applying this config patch and following snippet (which doesn't
terminate the program if mmap doesn't allocate exactly as the hint), I'm
finding failed tests.

@@ -1746,7 +1748,7 @@ FIXTURE_SETUP(iommufd_dirty_tracking)
        assert((uintptr_t)self->buffer % HUGEPAGE_SIZE == 0);
        vrc = mmap(self->buffer, variant->buffer_size, PROT_READ | PROT_WRITE,
                   mmap_flags, -1, 0);
-       assert(vrc == self->buffer);
+       assert(vrc == self->buffer);// ???

On x86:
# Totals: pass:176 fail:4 xfail:0 xpass:0 skip:0 error:0
On ARM64:
# Totals: pass:166 fail:14 xfail:0 xpass:0 skip:0 error:0

The log files are attached.

On 3/25/24 2:00 PM, Muhammad Usama Anjum wrote:
> Add FAULT_INJECTION_DEBUG_FS and FAILSLAB configurations which are
> needed by iommufd_fail_nth test.
> 
> Signed-off-by: Muhammad Usama Anjum <usama.anjum@xxxxxxxxxxxxx>
> ---
> While building and running these tests on x86, defconfig had these
> configs enabled. But ARM64's defconfig doesn't enable these configs.
> Hence the config options are being added explicitly in this patch.
> ---
>  tools/testing/selftests/iommu/config | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/tools/testing/selftests/iommu/config b/tools/testing/selftests/iommu/config
> index 110d73917615d..02a2a1b267c1e 100644
> --- a/tools/testing/selftests/iommu/config
> +++ b/tools/testing/selftests/iommu/config
> @@ -1,3 +1,5 @@
>  CONFIG_IOMMUFD=y
> +CONFIG_FAULT_INJECTION_DEBUG_FS=y
>  CONFIG_FAULT_INJECTION=y
>  CONFIG_IOMMUFD_TEST=y
> +CONFIG_FAILSLAB=y

-- 
BR,
Muhammad Usama Anjum
TAP version 13
1..180
# Starting 180 tests from 18 test cases.
#  RUN           iommufd.simple_close ...
#            OK  iommufd.simple_close
ok 1 iommufd.simple_close
#  RUN           iommufd.cmd_fail ...
#            OK  iommufd.cmd_fail
ok 2 iommufd.cmd_fail
#  RUN           iommufd.cmd_length ...
#            OK  iommufd.cmd_length
ok 3 iommufd.cmd_length
#  RUN           iommufd.cmd_ex_fail ...
#            OK  iommufd.cmd_ex_fail
ok 4 iommufd.cmd_ex_fail
#  RUN           iommufd.global_options ...
#            OK  iommufd.global_options
ok 5 iommufd.global_options
#  RUN           iommufd.simple_ioctls ...
#            OK  iommufd.simple_ioctls
ok 6 iommufd.simple_ioctls
#  RUN           iommufd.unmap_cmd ...
#            OK  iommufd.unmap_cmd
ok 7 iommufd.unmap_cmd
#  RUN           iommufd.map_cmd ...
#            OK  iommufd.map_cmd
ok 8 iommufd.map_cmd
#  RUN           iommufd.info_cmd ...
#            OK  iommufd.info_cmd
ok 9 iommufd.info_cmd
#  RUN           iommufd.set_iommu_cmd ...
#            OK  iommufd.set_iommu_cmd
ok 10 iommufd.set_iommu_cmd
#  RUN           iommufd.vfio_ioas ...
#            OK  iommufd.vfio_ioas
ok 11 iommufd.vfio_ioas
#  RUN           iommufd_ioas.no_domain.ioas_auto_destroy ...
#            OK  iommufd_ioas.no_domain.ioas_auto_destroy
ok 12 iommufd_ioas.no_domain.ioas_auto_destroy
#  RUN           iommufd_ioas.no_domain.ioas_destroy ...
#            OK  iommufd_ioas.no_domain.ioas_destroy
ok 13 iommufd_ioas.no_domain.ioas_destroy
#  RUN           iommufd_ioas.no_domain.alloc_hwpt_nested ...
#            OK  iommufd_ioas.no_domain.alloc_hwpt_nested
ok 14 iommufd_ioas.no_domain.alloc_hwpt_nested
#  RUN           iommufd_ioas.no_domain.hwpt_attach ...
#            OK  iommufd_ioas.no_domain.hwpt_attach
ok 15 iommufd_ioas.no_domain.hwpt_attach
#  RUN           iommufd_ioas.no_domain.ioas_area_destroy ...
#            OK  iommufd_ioas.no_domain.ioas_area_destroy
ok 16 iommufd_ioas.no_domain.ioas_area_destroy
#  RUN           iommufd_ioas.no_domain.ioas_area_auto_destroy ...
#            OK  iommufd_ioas.no_domain.ioas_area_auto_destroy
ok 17 iommufd_ioas.no_domain.ioas_area_auto_destroy
#  RUN           iommufd_ioas.no_domain.get_hw_info ...
#            OK  iommufd_ioas.no_domain.get_hw_info
ok 18 iommufd_ioas.no_domain.get_hw_info
#  RUN           iommufd_ioas.no_domain.area ...
#            OK  iommufd_ioas.no_domain.area
ok 19 iommufd_ioas.no_domain.area
#  RUN           iommufd_ioas.no_domain.unmap_fully_contained_areas ...
#            OK  iommufd_ioas.no_domain.unmap_fully_contained_areas
ok 20 iommufd_ioas.no_domain.unmap_fully_contained_areas
#  RUN           iommufd_ioas.no_domain.area_auto_iova ...
#            OK  iommufd_ioas.no_domain.area_auto_iova
ok 21 iommufd_ioas.no_domain.area_auto_iova
#  RUN           iommufd_ioas.no_domain.area_allowed ...
#            OK  iommufd_ioas.no_domain.area_allowed
ok 22 iommufd_ioas.no_domain.area_allowed
#  RUN           iommufd_ioas.no_domain.copy_area ...
#            OK  iommufd_ioas.no_domain.copy_area
ok 23 iommufd_ioas.no_domain.copy_area
#  RUN           iommufd_ioas.no_domain.iova_ranges ...
#            OK  iommufd_ioas.no_domain.iova_ranges
ok 24 iommufd_ioas.no_domain.iova_ranges
#  RUN           iommufd_ioas.no_domain.access_domain_destory ...
#            OK  iommufd_ioas.no_domain.access_domain_destory
ok 25 iommufd_ioas.no_domain.access_domain_destory
#  RUN           iommufd_ioas.no_domain.access_pin ...
#            OK  iommufd_ioas.no_domain.access_pin
ok 26 iommufd_ioas.no_domain.access_pin
#  RUN           iommufd_ioas.no_domain.access_pin_unmap ...
#            OK  iommufd_ioas.no_domain.access_pin_unmap
ok 27 iommufd_ioas.no_domain.access_pin_unmap
#  RUN           iommufd_ioas.no_domain.access_rw ...
#            OK  iommufd_ioas.no_domain.access_rw
ok 28 iommufd_ioas.no_domain.access_rw
#  RUN           iommufd_ioas.no_domain.access_rw_unaligned ...
#            OK  iommufd_ioas.no_domain.access_rw_unaligned
ok 29 iommufd_ioas.no_domain.access_rw_unaligned
#  RUN           iommufd_ioas.no_domain.fork_gone ...
#            OK  iommufd_ioas.no_domain.fork_gone
ok 30 iommufd_ioas.no_domain.fork_gone
#  RUN           iommufd_ioas.no_domain.fork_present ...
#            OK  iommufd_ioas.no_domain.fork_present
ok 31 iommufd_ioas.no_domain.fork_present
#  RUN           iommufd_ioas.no_domain.ioas_option_huge_pages ...
#            OK  iommufd_ioas.no_domain.ioas_option_huge_pages
ok 32 iommufd_ioas.no_domain.ioas_option_huge_pages
#  RUN           iommufd_ioas.no_domain.ioas_iova_alloc ...
#            OK  iommufd_ioas.no_domain.ioas_iova_alloc
ok 33 iommufd_ioas.no_domain.ioas_iova_alloc
#  RUN           iommufd_ioas.no_domain.ioas_align_change ...
#            OK  iommufd_ioas.no_domain.ioas_align_change
ok 34 iommufd_ioas.no_domain.ioas_align_change
#  RUN           iommufd_ioas.no_domain.copy_sweep ...
#            OK  iommufd_ioas.no_domain.copy_sweep
ok 35 iommufd_ioas.no_domain.copy_sweep
#  RUN           iommufd_ioas.mock_domain.ioas_auto_destroy ...
#            OK  iommufd_ioas.mock_domain.ioas_auto_destroy
ok 36 iommufd_ioas.mock_domain.ioas_auto_destroy
#  RUN           iommufd_ioas.mock_domain.ioas_destroy ...
#            OK  iommufd_ioas.mock_domain.ioas_destroy
ok 37 iommufd_ioas.mock_domain.ioas_destroy
#  RUN           iommufd_ioas.mock_domain.alloc_hwpt_nested ...
#            OK  iommufd_ioas.mock_domain.alloc_hwpt_nested
ok 38 iommufd_ioas.mock_domain.alloc_hwpt_nested
#  RUN           iommufd_ioas.mock_domain.hwpt_attach ...
#            OK  iommufd_ioas.mock_domain.hwpt_attach
ok 39 iommufd_ioas.mock_domain.hwpt_attach
#  RUN           iommufd_ioas.mock_domain.ioas_area_destroy ...
#            OK  iommufd_ioas.mock_domain.ioas_area_destroy
ok 40 iommufd_ioas.mock_domain.ioas_area_destroy
#  RUN           iommufd_ioas.mock_domain.ioas_area_auto_destroy ...
#            OK  iommufd_ioas.mock_domain.ioas_area_auto_destroy
ok 41 iommufd_ioas.mock_domain.ioas_area_auto_destroy
#  RUN           iommufd_ioas.mock_domain.get_hw_info ...
#            OK  iommufd_ioas.mock_domain.get_hw_info
ok 42 iommufd_ioas.mock_domain.get_hw_info
#  RUN           iommufd_ioas.mock_domain.area ...
#            OK  iommufd_ioas.mock_domain.area
ok 43 iommufd_ioas.mock_domain.area
#  RUN           iommufd_ioas.mock_domain.unmap_fully_contained_areas ...
#            OK  iommufd_ioas.mock_domain.unmap_fully_contained_areas
ok 44 iommufd_ioas.mock_domain.unmap_fully_contained_areas
#  RUN           iommufd_ioas.mock_domain.area_auto_iova ...
#            OK  iommufd_ioas.mock_domain.area_auto_iova
ok 45 iommufd_ioas.mock_domain.area_auto_iova
#  RUN           iommufd_ioas.mock_domain.area_allowed ...
#            OK  iommufd_ioas.mock_domain.area_allowed
ok 46 iommufd_ioas.mock_domain.area_allowed
#  RUN           iommufd_ioas.mock_domain.copy_area ...
#            OK  iommufd_ioas.mock_domain.copy_area
ok 47 iommufd_ioas.mock_domain.copy_area
#  RUN           iommufd_ioas.mock_domain.iova_ranges ...
#            OK  iommufd_ioas.mock_domain.iova_ranges
ok 48 iommufd_ioas.mock_domain.iova_ranges
#  RUN           iommufd_ioas.mock_domain.access_domain_destory ...
#            OK  iommufd_ioas.mock_domain.access_domain_destory
ok 49 iommufd_ioas.mock_domain.access_domain_destory
#  RUN           iommufd_ioas.mock_domain.access_pin ...
#            OK  iommufd_ioas.mock_domain.access_pin
ok 50 iommufd_ioas.mock_domain.access_pin
#  RUN           iommufd_ioas.mock_domain.access_pin_unmap ...
#            OK  iommufd_ioas.mock_domain.access_pin_unmap
ok 51 iommufd_ioas.mock_domain.access_pin_unmap
#  RUN           iommufd_ioas.mock_domain.access_rw ...
#            OK  iommufd_ioas.mock_domain.access_rw
ok 52 iommufd_ioas.mock_domain.access_rw
#  RUN           iommufd_ioas.mock_domain.access_rw_unaligned ...
#            OK  iommufd_ioas.mock_domain.access_rw_unaligned
ok 53 iommufd_ioas.mock_domain.access_rw_unaligned
#  RUN           iommufd_ioas.mock_domain.fork_gone ...
#            OK  iommufd_ioas.mock_domain.fork_gone
ok 54 iommufd_ioas.mock_domain.fork_gone
#  RUN           iommufd_ioas.mock_domain.fork_present ...
#            OK  iommufd_ioas.mock_domain.fork_present
ok 55 iommufd_ioas.mock_domain.fork_present
#  RUN           iommufd_ioas.mock_domain.ioas_option_huge_pages ...
#            OK  iommufd_ioas.mock_domain.ioas_option_huge_pages
ok 56 iommufd_ioas.mock_domain.ioas_option_huge_pages
#  RUN           iommufd_ioas.mock_domain.ioas_iova_alloc ...
#            OK  iommufd_ioas.mock_domain.ioas_iova_alloc
ok 57 iommufd_ioas.mock_domain.ioas_iova_alloc
#  RUN           iommufd_ioas.mock_domain.ioas_align_change ...
#            OK  iommufd_ioas.mock_domain.ioas_align_change
ok 58 iommufd_ioas.mock_domain.ioas_align_change
#  RUN           iommufd_ioas.mock_domain.copy_sweep ...
#            OK  iommufd_ioas.mock_domain.copy_sweep
ok 59 iommufd_ioas.mock_domain.copy_sweep
#  RUN           iommufd_ioas.two_mock_domain.ioas_auto_destroy ...
#            OK  iommufd_ioas.two_mock_domain.ioas_auto_destroy
ok 60 iommufd_ioas.two_mock_domain.ioas_auto_destroy
#  RUN           iommufd_ioas.two_mock_domain.ioas_destroy ...
#            OK  iommufd_ioas.two_mock_domain.ioas_destroy
ok 61 iommufd_ioas.two_mock_domain.ioas_destroy
#  RUN           iommufd_ioas.two_mock_domain.alloc_hwpt_nested ...
#            OK  iommufd_ioas.two_mock_domain.alloc_hwpt_nested
ok 62 iommufd_ioas.two_mock_domain.alloc_hwpt_nested
#  RUN           iommufd_ioas.two_mock_domain.hwpt_attach ...
#            OK  iommufd_ioas.two_mock_domain.hwpt_attach
ok 63 iommufd_ioas.two_mock_domain.hwpt_attach
#  RUN           iommufd_ioas.two_mock_domain.ioas_area_destroy ...
#            OK  iommufd_ioas.two_mock_domain.ioas_area_destroy
ok 64 iommufd_ioas.two_mock_domain.ioas_area_destroy
#  RUN           iommufd_ioas.two_mock_domain.ioas_area_auto_destroy ...
#            OK  iommufd_ioas.two_mock_domain.ioas_area_auto_destroy
ok 65 iommufd_ioas.two_mock_domain.ioas_area_auto_destroy
#  RUN           iommufd_ioas.two_mock_domain.get_hw_info ...
#            OK  iommufd_ioas.two_mock_domain.get_hw_info
ok 66 iommufd_ioas.two_mock_domain.get_hw_info
#  RUN           iommufd_ioas.two_mock_domain.area ...
#            OK  iommufd_ioas.two_mock_domain.area
ok 67 iommufd_ioas.two_mock_domain.area
#  RUN           iommufd_ioas.two_mock_domain.unmap_fully_contained_areas ...
#            OK  iommufd_ioas.two_mock_domain.unmap_fully_contained_areas
ok 68 iommufd_ioas.two_mock_domain.unmap_fully_contained_areas
#  RUN           iommufd_ioas.two_mock_domain.area_auto_iova ...
#            OK  iommufd_ioas.two_mock_domain.area_auto_iova
ok 69 iommufd_ioas.two_mock_domain.area_auto_iova
#  RUN           iommufd_ioas.two_mock_domain.area_allowed ...
#            OK  iommufd_ioas.two_mock_domain.area_allowed
ok 70 iommufd_ioas.two_mock_domain.area_allowed
#  RUN           iommufd_ioas.two_mock_domain.copy_area ...
#            OK  iommufd_ioas.two_mock_domain.copy_area
ok 71 iommufd_ioas.two_mock_domain.copy_area
#  RUN           iommufd_ioas.two_mock_domain.iova_ranges ...
#            OK  iommufd_ioas.two_mock_domain.iova_ranges
ok 72 iommufd_ioas.two_mock_domain.iova_ranges
#  RUN           iommufd_ioas.two_mock_domain.access_domain_destory ...
#            OK  iommufd_ioas.two_mock_domain.access_domain_destory
ok 73 iommufd_ioas.two_mock_domain.access_domain_destory
#  RUN           iommufd_ioas.two_mock_domain.access_pin ...
#            OK  iommufd_ioas.two_mock_domain.access_pin
ok 74 iommufd_ioas.two_mock_domain.access_pin
#  RUN           iommufd_ioas.two_mock_domain.access_pin_unmap ...
#            OK  iommufd_ioas.two_mock_domain.access_pin_unmap
ok 75 iommufd_ioas.two_mock_domain.access_pin_unmap
#  RUN           iommufd_ioas.two_mock_domain.access_rw ...
#            OK  iommufd_ioas.two_mock_domain.access_rw
ok 76 iommufd_ioas.two_mock_domain.access_rw
#  RUN           iommufd_ioas.two_mock_domain.access_rw_unaligned ...
#            OK  iommufd_ioas.two_mock_domain.access_rw_unaligned
ok 77 iommufd_ioas.two_mock_domain.access_rw_unaligned
#  RUN           iommufd_ioas.two_mock_domain.fork_gone ...
#            OK  iommufd_ioas.two_mock_domain.fork_gone
ok 78 iommufd_ioas.two_mock_domain.fork_gone
#  RUN           iommufd_ioas.two_mock_domain.fork_present ...
#            OK  iommufd_ioas.two_mock_domain.fork_present
ok 79 iommufd_ioas.two_mock_domain.fork_present
#  RUN           iommufd_ioas.two_mock_domain.ioas_option_huge_pages ...
#            OK  iommufd_ioas.two_mock_domain.ioas_option_huge_pages
ok 80 iommufd_ioas.two_mock_domain.ioas_option_huge_pages
#  RUN           iommufd_ioas.two_mock_domain.ioas_iova_alloc ...
#            OK  iommufd_ioas.two_mock_domain.ioas_iova_alloc
ok 81 iommufd_ioas.two_mock_domain.ioas_iova_alloc
#  RUN           iommufd_ioas.two_mock_domain.ioas_align_change ...
#            OK  iommufd_ioas.two_mock_domain.ioas_align_change
ok 82 iommufd_ioas.two_mock_domain.ioas_align_change
#  RUN           iommufd_ioas.two_mock_domain.copy_sweep ...
#            OK  iommufd_ioas.two_mock_domain.copy_sweep
ok 83 iommufd_ioas.two_mock_domain.copy_sweep
#  RUN           iommufd_ioas.mock_domain_limit.ioas_auto_destroy ...
#            OK  iommufd_ioas.mock_domain_limit.ioas_auto_destroy
ok 84 iommufd_ioas.mock_domain_limit.ioas_auto_destroy
#  RUN           iommufd_ioas.mock_domain_limit.ioas_destroy ...
#            OK  iommufd_ioas.mock_domain_limit.ioas_destroy
ok 85 iommufd_ioas.mock_domain_limit.ioas_destroy
#  RUN           iommufd_ioas.mock_domain_limit.alloc_hwpt_nested ...
#            OK  iommufd_ioas.mock_domain_limit.alloc_hwpt_nested
ok 86 iommufd_ioas.mock_domain_limit.alloc_hwpt_nested
#  RUN           iommufd_ioas.mock_domain_limit.hwpt_attach ...
#            OK  iommufd_ioas.mock_domain_limit.hwpt_attach
ok 87 iommufd_ioas.mock_domain_limit.hwpt_attach
#  RUN           iommufd_ioas.mock_domain_limit.ioas_area_destroy ...
#            OK  iommufd_ioas.mock_domain_limit.ioas_area_destroy
ok 88 iommufd_ioas.mock_domain_limit.ioas_area_destroy
#  RUN           iommufd_ioas.mock_domain_limit.ioas_area_auto_destroy ...
#            OK  iommufd_ioas.mock_domain_limit.ioas_area_auto_destroy
ok 89 iommufd_ioas.mock_domain_limit.ioas_area_auto_destroy
#  RUN           iommufd_ioas.mock_domain_limit.get_hw_info ...
#            OK  iommufd_ioas.mock_domain_limit.get_hw_info
ok 90 iommufd_ioas.mock_domain_limit.get_hw_info
#  RUN           iommufd_ioas.mock_domain_limit.area ...
#            OK  iommufd_ioas.mock_domain_limit.area
ok 91 iommufd_ioas.mock_domain_limit.area
#  RUN           iommufd_ioas.mock_domain_limit.unmap_fully_contained_areas ...
#            OK  iommufd_ioas.mock_domain_limit.unmap_fully_contained_areas
ok 92 iommufd_ioas.mock_domain_limit.unmap_fully_contained_areas
#  RUN           iommufd_ioas.mock_domain_limit.area_auto_iova ...
#            OK  iommufd_ioas.mock_domain_limit.area_auto_iova
ok 93 iommufd_ioas.mock_domain_limit.area_auto_iova
#  RUN           iommufd_ioas.mock_domain_limit.area_allowed ...
#            OK  iommufd_ioas.mock_domain_limit.area_allowed
ok 94 iommufd_ioas.mock_domain_limit.area_allowed
#  RUN           iommufd_ioas.mock_domain_limit.copy_area ...
#            OK  iommufd_ioas.mock_domain_limit.copy_area
ok 95 iommufd_ioas.mock_domain_limit.copy_area
#  RUN           iommufd_ioas.mock_domain_limit.iova_ranges ...
#            OK  iommufd_ioas.mock_domain_limit.iova_ranges
ok 96 iommufd_ioas.mock_domain_limit.iova_ranges
#  RUN           iommufd_ioas.mock_domain_limit.access_domain_destory ...
#            OK  iommufd_ioas.mock_domain_limit.access_domain_destory
ok 97 iommufd_ioas.mock_domain_limit.access_domain_destory
#  RUN           iommufd_ioas.mock_domain_limit.access_pin ...
#            OK  iommufd_ioas.mock_domain_limit.access_pin
ok 98 iommufd_ioas.mock_domain_limit.access_pin
#  RUN           iommufd_ioas.mock_domain_limit.access_pin_unmap ...
#            OK  iommufd_ioas.mock_domain_limit.access_pin_unmap
ok 99 iommufd_ioas.mock_domain_limit.access_pin_unmap
#  RUN           iommufd_ioas.mock_domain_limit.access_rw ...
#            OK  iommufd_ioas.mock_domain_limit.access_rw
ok 100 iommufd_ioas.mock_domain_limit.access_rw
#  RUN           iommufd_ioas.mock_domain_limit.access_rw_unaligned ...
#            OK  iommufd_ioas.mock_domain_limit.access_rw_unaligned
ok 101 iommufd_ioas.mock_domain_limit.access_rw_unaligned
#  RUN           iommufd_ioas.mock_domain_limit.fork_gone ...
#            OK  iommufd_ioas.mock_domain_limit.fork_gone
ok 102 iommufd_ioas.mock_domain_limit.fork_gone
#  RUN           iommufd_ioas.mock_domain_limit.fork_present ...
#            OK  iommufd_ioas.mock_domain_limit.fork_present
ok 103 iommufd_ioas.mock_domain_limit.fork_present
#  RUN           iommufd_ioas.mock_domain_limit.ioas_option_huge_pages ...
#            OK  iommufd_ioas.mock_domain_limit.ioas_option_huge_pages
ok 104 iommufd_ioas.mock_domain_limit.ioas_option_huge_pages
#  RUN           iommufd_ioas.mock_domain_limit.ioas_iova_alloc ...
#            OK  iommufd_ioas.mock_domain_limit.ioas_iova_alloc
ok 105 iommufd_ioas.mock_domain_limit.ioas_iova_alloc
#  RUN           iommufd_ioas.mock_domain_limit.ioas_align_change ...
#            OK  iommufd_ioas.mock_domain_limit.ioas_align_change
ok 106 iommufd_ioas.mock_domain_limit.ioas_align_change
#  RUN           iommufd_ioas.mock_domain_limit.copy_sweep ...
#            OK  iommufd_ioas.mock_domain_limit.copy_sweep
ok 107 iommufd_ioas.mock_domain_limit.copy_sweep
#  RUN           iommufd_mock_domain.one_domain.basic ...
#            OK  iommufd_mock_domain.one_domain.basic
ok 108 iommufd_mock_domain.one_domain.basic
#  RUN           iommufd_mock_domain.one_domain.ro_unshare ...
#            OK  iommufd_mock_domain.one_domain.ro_unshare
ok 109 iommufd_mock_domain.one_domain.ro_unshare
#  RUN           iommufd_mock_domain.one_domain.all_aligns ...
#            OK  iommufd_mock_domain.one_domain.all_aligns
ok 110 iommufd_mock_domain.one_domain.all_aligns
#  RUN           iommufd_mock_domain.one_domain.all_aligns_copy ...
#            OK  iommufd_mock_domain.one_domain.all_aligns_copy
ok 111 iommufd_mock_domain.one_domain.all_aligns_copy
#  RUN           iommufd_mock_domain.one_domain.user_copy ...
#            OK  iommufd_mock_domain.one_domain.user_copy
ok 112 iommufd_mock_domain.one_domain.user_copy
#  RUN           iommufd_mock_domain.one_domain.replace ...
#            OK  iommufd_mock_domain.one_domain.replace
ok 113 iommufd_mock_domain.one_domain.replace
#  RUN           iommufd_mock_domain.one_domain.alloc_hwpt ...
#            OK  iommufd_mock_domain.one_domain.alloc_hwpt
ok 114 iommufd_mock_domain.one_domain.alloc_hwpt
#  RUN           iommufd_mock_domain.two_domains.basic ...
#            OK  iommufd_mock_domain.two_domains.basic
ok 115 iommufd_mock_domain.two_domains.basic
#  RUN           iommufd_mock_domain.two_domains.ro_unshare ...
#            OK  iommufd_mock_domain.two_domains.ro_unshare
ok 116 iommufd_mock_domain.two_domains.ro_unshare
#  RUN           iommufd_mock_domain.two_domains.all_aligns ...
#            OK  iommufd_mock_domain.two_domains.all_aligns
ok 117 iommufd_mock_domain.two_domains.all_aligns
#  RUN           iommufd_mock_domain.two_domains.all_aligns_copy ...
#            OK  iommufd_mock_domain.two_domains.all_aligns_copy
ok 118 iommufd_mock_domain.two_domains.all_aligns_copy
#  RUN           iommufd_mock_domain.two_domains.user_copy ...
#            OK  iommufd_mock_domain.two_domains.user_copy
ok 119 iommufd_mock_domain.two_domains.user_copy
#  RUN           iommufd_mock_domain.two_domains.replace ...
#            OK  iommufd_mock_domain.two_domains.replace
ok 120 iommufd_mock_domain.two_domains.replace
#  RUN           iommufd_mock_domain.two_domains.alloc_hwpt ...
#            OK  iommufd_mock_domain.two_domains.alloc_hwpt
ok 121 iommufd_mock_domain.two_domains.alloc_hwpt
#  RUN           iommufd_mock_domain.one_domain_hugepage.basic ...
#            OK  iommufd_mock_domain.one_domain_hugepage.basic
ok 122 iommufd_mock_domain.one_domain_hugepage.basic
#  RUN           iommufd_mock_domain.one_domain_hugepage.ro_unshare ...
#            OK  iommufd_mock_domain.one_domain_hugepage.ro_unshare
ok 123 iommufd_mock_domain.one_domain_hugepage.ro_unshare
#  RUN           iommufd_mock_domain.one_domain_hugepage.all_aligns ...
#            OK  iommufd_mock_domain.one_domain_hugepage.all_aligns
ok 124 iommufd_mock_domain.one_domain_hugepage.all_aligns
#  RUN           iommufd_mock_domain.one_domain_hugepage.all_aligns_copy ...
#            OK  iommufd_mock_domain.one_domain_hugepage.all_aligns_copy
ok 125 iommufd_mock_domain.one_domain_hugepage.all_aligns_copy
#  RUN           iommufd_mock_domain.one_domain_hugepage.user_copy ...
#            OK  iommufd_mock_domain.one_domain_hugepage.user_copy
ok 126 iommufd_mock_domain.one_domain_hugepage.user_copy
#  RUN           iommufd_mock_domain.one_domain_hugepage.replace ...
#            OK  iommufd_mock_domain.one_domain_hugepage.replace
ok 127 iommufd_mock_domain.one_domain_hugepage.replace
#  RUN           iommufd_mock_domain.one_domain_hugepage.alloc_hwpt ...
#            OK  iommufd_mock_domain.one_domain_hugepage.alloc_hwpt
ok 128 iommufd_mock_domain.one_domain_hugepage.alloc_hwpt
#  RUN           iommufd_mock_domain.two_domains_hugepage.basic ...
#            OK  iommufd_mock_domain.two_domains_hugepage.basic
ok 129 iommufd_mock_domain.two_domains_hugepage.basic
#  RUN           iommufd_mock_domain.two_domains_hugepage.ro_unshare ...
#            OK  iommufd_mock_domain.two_domains_hugepage.ro_unshare
ok 130 iommufd_mock_domain.two_domains_hugepage.ro_unshare
#  RUN           iommufd_mock_domain.two_domains_hugepage.all_aligns ...
#            OK  iommufd_mock_domain.two_domains_hugepage.all_aligns
ok 131 iommufd_mock_domain.two_domains_hugepage.all_aligns
#  RUN           iommufd_mock_domain.two_domains_hugepage.all_aligns_copy ...
#            OK  iommufd_mock_domain.two_domains_hugepage.all_aligns_copy
ok 132 iommufd_mock_domain.two_domains_hugepage.all_aligns_copy
#  RUN           iommufd_mock_domain.two_domains_hugepage.user_copy ...
#            OK  iommufd_mock_domain.two_domains_hugepage.user_copy
ok 133 iommufd_mock_domain.two_domains_hugepage.user_copy
#  RUN           iommufd_mock_domain.two_domains_hugepage.replace ...
#            OK  iommufd_mock_domain.two_domains_hugepage.replace
ok 134 iommufd_mock_domain.two_domains_hugepage.replace
#  RUN           iommufd_mock_domain.two_domains_hugepage.alloc_hwpt ...
#            OK  iommufd_mock_domain.two_domains_hugepage.alloc_hwpt
ok 135 iommufd_mock_domain.two_domains_hugepage.alloc_hwpt
#  RUN           iommufd_dirty_tracking.domain_dirty128k.enforce_dirty ...
#            OK  iommufd_dirty_tracking.domain_dirty128k.enforce_dirty
ok 136 iommufd_dirty_tracking.domain_dirty128k.enforce_dirty
#  RUN           iommufd_dirty_tracking.domain_dirty128k.set_dirty_tracking ...
#            OK  iommufd_dirty_tracking.domain_dirty128k.set_dirty_tracking
ok 137 iommufd_dirty_tracking.domain_dirty128k.set_dirty_tracking
#  RUN           iommufd_dirty_tracking.domain_dirty128k.device_dirty_capability ...
#            OK  iommufd_dirty_tracking.domain_dirty128k.device_dirty_capability
ok 138 iommufd_dirty_tracking.domain_dirty128k.device_dirty_capability
#  RUN           iommufd_dirty_tracking.domain_dirty128k.get_dirty_bitmap ...
# iommufd_utils.h:374:get_dirty_bitmap:Expected j < npte (1) == test_bit(i + j, (unsigned long *)bitmap) (0)
# get_dirty_bitmap: Test terminated by assertion
#          FAIL  iommufd_dirty_tracking.domain_dirty128k.get_dirty_bitmap
not ok 139 iommufd_dirty_tracking.domain_dirty128k.get_dirty_bitmap
#  RUN           iommufd_dirty_tracking.domain_dirty128k.get_dirty_bitmap_no_clear ...
# iommufd_utils.h:374:get_dirty_bitmap_no_clear:Expected j < npte (1) == test_bit(i + j, (unsigned long *)bitmap) (0)
# get_dirty_bitmap_no_clear: Test terminated by assertion
#          FAIL  iommufd_dirty_tracking.domain_dirty128k.get_dirty_bitmap_no_clear
not ok 140 iommufd_dirty_tracking.domain_dirty128k.get_dirty_bitmap_no_clear
#  RUN           iommufd_dirty_tracking.domain_dirty256k.enforce_dirty ...
#            OK  iommufd_dirty_tracking.domain_dirty256k.enforce_dirty
ok 141 iommufd_dirty_tracking.domain_dirty256k.enforce_dirty
#  RUN           iommufd_dirty_tracking.domain_dirty256k.set_dirty_tracking ...
#            OK  iommufd_dirty_tracking.domain_dirty256k.set_dirty_tracking
ok 142 iommufd_dirty_tracking.domain_dirty256k.set_dirty_tracking
#  RUN           iommufd_dirty_tracking.domain_dirty256k.device_dirty_capability ...
#            OK  iommufd_dirty_tracking.domain_dirty256k.device_dirty_capability
ok 143 iommufd_dirty_tracking.domain_dirty256k.device_dirty_capability
#  RUN           iommufd_dirty_tracking.domain_dirty256k.get_dirty_bitmap ...
# iommufd_utils.h:374:get_dirty_bitmap:Expected j < npte (1) == test_bit(i + j, (unsigned long *)bitmap) (0)
# get_dirty_bitmap: Test terminated by assertion
#          FAIL  iommufd_dirty_tracking.domain_dirty256k.get_dirty_bitmap
not ok 144 iommufd_dirty_tracking.domain_dirty256k.get_dirty_bitmap
#  RUN           iommufd_dirty_tracking.domain_dirty256k.get_dirty_bitmap_no_clear ...
# iommufd_utils.h:374:get_dirty_bitmap_no_clear:Expected j < npte (1) == test_bit(i + j, (unsigned long *)bitmap) (0)
# get_dirty_bitmap_no_clear: Test terminated by assertion
#          FAIL  iommufd_dirty_tracking.domain_dirty256k.get_dirty_bitmap_no_clear
not ok 145 iommufd_dirty_tracking.domain_dirty256k.get_dirty_bitmap_no_clear
#  RUN           iommufd_dirty_tracking.domain_dirty640k.enforce_dirty ...
#            OK  iommufd_dirty_tracking.domain_dirty640k.enforce_dirty
ok 146 iommufd_dirty_tracking.domain_dirty640k.enforce_dirty
#  RUN           iommufd_dirty_tracking.domain_dirty640k.set_dirty_tracking ...
#            OK  iommufd_dirty_tracking.domain_dirty640k.set_dirty_tracking
ok 147 iommufd_dirty_tracking.domain_dirty640k.set_dirty_tracking
#  RUN           iommufd_dirty_tracking.domain_dirty640k.device_dirty_capability ...
#            OK  iommufd_dirty_tracking.domain_dirty640k.device_dirty_capability
ok 148 iommufd_dirty_tracking.domain_dirty640k.device_dirty_capability
#  RUN           iommufd_dirty_tracking.domain_dirty640k.get_dirty_bitmap ...
# iommufd_utils.h:374:get_dirty_bitmap:Expected j < npte (1) == test_bit(i + j, (unsigned long *)bitmap) (0)
# get_dirty_bitmap: Test terminated by assertion
#          FAIL  iommufd_dirty_tracking.domain_dirty640k.get_dirty_bitmap
not ok 149 iommufd_dirty_tracking.domain_dirty640k.get_dirty_bitmap
#  RUN           iommufd_dirty_tracking.domain_dirty640k.get_dirty_bitmap_no_clear ...
# iommufd_utils.h:374:get_dirty_bitmap_no_clear:Expected j < npte (1) == test_bit(i + j, (unsigned long *)bitmap) (0)
# get_dirty_bitmap_no_clear: Test terminated by assertion
#          FAIL  iommufd_dirty_tracking.domain_dirty640k.get_dirty_bitmap_no_clear
not ok 150 iommufd_dirty_tracking.domain_dirty640k.get_dirty_bitmap_no_clear
#  RUN           iommufd_dirty_tracking.domain_dirty128M.enforce_dirty ...
#            OK  iommufd_dirty_tracking.domain_dirty128M.enforce_dirty
ok 151 iommufd_dirty_tracking.domain_dirty128M.enforce_dirty
#  RUN           iommufd_dirty_tracking.domain_dirty128M.set_dirty_tracking ...
#            OK  iommufd_dirty_tracking.domain_dirty128M.set_dirty_tracking
ok 152 iommufd_dirty_tracking.domain_dirty128M.set_dirty_tracking
#  RUN           iommufd_dirty_tracking.domain_dirty128M.device_dirty_capability ...
#            OK  iommufd_dirty_tracking.domain_dirty128M.device_dirty_capability
ok 153 iommufd_dirty_tracking.domain_dirty128M.device_dirty_capability
#  RUN           iommufd_dirty_tracking.domain_dirty128M.get_dirty_bitmap ...
# iommufd_utils.h:374:get_dirty_bitmap:Expected j < npte (1) == test_bit(i + j, (unsigned long *)bitmap) (0)
# get_dirty_bitmap: Test terminated by assertion
#          FAIL  iommufd_dirty_tracking.domain_dirty128M.get_dirty_bitmap
not ok 154 iommufd_dirty_tracking.domain_dirty128M.get_dirty_bitmap
#  RUN           iommufd_dirty_tracking.domain_dirty128M.get_dirty_bitmap_no_clear ...
# iommufd_utils.h:374:get_dirty_bitmap_no_clear:Expected j < npte (1) == test_bit(i + j, (unsigned long *)bitmap) (0)
# get_dirty_bitmap_no_clear: Test terminated by assertion
#          FAIL  iommufd_dirty_tracking.domain_dirty128M.get_dirty_bitmap_no_clear
not ok 155 iommufd_dirty_tracking.domain_dirty128M.get_dirty_bitmap_no_clear
#  RUN           iommufd_dirty_tracking.domain_dirty128M_huge.enforce_dirty ...
#            OK  iommufd_dirty_tracking.domain_dirty128M_huge.enforce_dirty
ok 156 iommufd_dirty_tracking.domain_dirty128M_huge.enforce_dirty
#  RUN           iommufd_dirty_tracking.domain_dirty128M_huge.set_dirty_tracking ...
#            OK  iommufd_dirty_tracking.domain_dirty128M_huge.set_dirty_tracking
ok 157 iommufd_dirty_tracking.domain_dirty128M_huge.set_dirty_tracking
#  RUN           iommufd_dirty_tracking.domain_dirty128M_huge.device_dirty_capability ...
#            OK  iommufd_dirty_tracking.domain_dirty128M_huge.device_dirty_capability
ok 158 iommufd_dirty_tracking.domain_dirty128M_huge.device_dirty_capability
#  RUN           iommufd_dirty_tracking.domain_dirty128M_huge.get_dirty_bitmap ...
# iommufd_utils.h:374:get_dirty_bitmap:Expected j < npte (1) == test_bit(i + j, (unsigned long *)bitmap) (0)
# get_dirty_bitmap: Test terminated by assertion
#          FAIL  iommufd_dirty_tracking.domain_dirty128M_huge.get_dirty_bitmap
not ok 159 iommufd_dirty_tracking.domain_dirty128M_huge.get_dirty_bitmap
#  RUN           iommufd_dirty_tracking.domain_dirty128M_huge.get_dirty_bitmap_no_clear ...
# iommufd_utils.h:374:get_dirty_bitmap_no_clear:Expected j < npte (1) == test_bit(i + j, (unsigned long *)bitmap) (0)
# get_dirty_bitmap_no_clear: Test terminated by assertion
#          FAIL  iommufd_dirty_tracking.domain_dirty128M_huge.get_dirty_bitmap_no_clear
not ok 160 iommufd_dirty_tracking.domain_dirty128M_huge.get_dirty_bitmap_no_clear
#  RUN           iommufd_dirty_tracking.domain_dirty256M.enforce_dirty ...
#            OK  iommufd_dirty_tracking.domain_dirty256M.enforce_dirty
ok 161 iommufd_dirty_tracking.domain_dirty256M.enforce_dirty
#  RUN           iommufd_dirty_tracking.domain_dirty256M.set_dirty_tracking ...
#            OK  iommufd_dirty_tracking.domain_dirty256M.set_dirty_tracking
ok 162 iommufd_dirty_tracking.domain_dirty256M.set_dirty_tracking
#  RUN           iommufd_dirty_tracking.domain_dirty256M.device_dirty_capability ...
#            OK  iommufd_dirty_tracking.domain_dirty256M.device_dirty_capability
ok 163 iommufd_dirty_tracking.domain_dirty256M.device_dirty_capability
#  RUN           iommufd_dirty_tracking.domain_dirty256M.get_dirty_bitmap ...
# iommufd_utils.h:374:get_dirty_bitmap:Expected j < npte (1) == test_bit(i + j, (unsigned long *)bitmap) (0)
# get_dirty_bitmap: Test terminated by assertion
#          FAIL  iommufd_dirty_tracking.domain_dirty256M.get_dirty_bitmap
not ok 164 iommufd_dirty_tracking.domain_dirty256M.get_dirty_bitmap
#  RUN           iommufd_dirty_tracking.domain_dirty256M.get_dirty_bitmap_no_clear ...
# iommufd_utils.h:374:get_dirty_bitmap_no_clear:Expected j < npte (1) == test_bit(i + j, (unsigned long *)bitmap) (0)
# get_dirty_bitmap_no_clear: Test terminated by assertion
#          FAIL  iommufd_dirty_tracking.domain_dirty256M.get_dirty_bitmap_no_clear
not ok 165 iommufd_dirty_tracking.domain_dirty256M.get_dirty_bitmap_no_clear
#  RUN           iommufd_dirty_tracking.domain_dirty256M_huge.enforce_dirty ...
#            OK  iommufd_dirty_tracking.domain_dirty256M_huge.enforce_dirty
ok 166 iommufd_dirty_tracking.domain_dirty256M_huge.enforce_dirty
#  RUN           iommufd_dirty_tracking.domain_dirty256M_huge.set_dirty_tracking ...
#            OK  iommufd_dirty_tracking.domain_dirty256M_huge.set_dirty_tracking
ok 167 iommufd_dirty_tracking.domain_dirty256M_huge.set_dirty_tracking
#  RUN           iommufd_dirty_tracking.domain_dirty256M_huge.device_dirty_capability ...
#            OK  iommufd_dirty_tracking.domain_dirty256M_huge.device_dirty_capability
ok 168 iommufd_dirty_tracking.domain_dirty256M_huge.device_dirty_capability
#  RUN           iommufd_dirty_tracking.domain_dirty256M_huge.get_dirty_bitmap ...
# iommufd.c:1897:get_dirty_bitmap:Expected 0 (0) == _test_ioctl_ioas_map( self->fd, ioas_id, self->buffer, variant->buffer_size, &__iova, IOMMU_IOAS_MAP_FIXED_IOVA | IOMMU_IOAS_MAP_WRITEABLE | IOMMU_IOAS_MAP_READABLE) (-1)
# get_dirty_bitmap: Test terminated by assertion
#          FAIL  iommufd_dirty_tracking.domain_dirty256M_huge.get_dirty_bitmap
not ok 169 iommufd_dirty_tracking.domain_dirty256M_huge.get_dirty_bitmap
#  RUN           iommufd_dirty_tracking.domain_dirty256M_huge.get_dirty_bitmap_no_clear ...
# iommufd.c:1934:get_dirty_bitmap_no_clear:Expected 0 (0) == _test_ioctl_ioas_map( self->fd, ioas_id, self->buffer, variant->buffer_size, &__iova, IOMMU_IOAS_MAP_FIXED_IOVA | IOMMU_IOAS_MAP_WRITEABLE | IOMMU_IOAS_MAP_READABLE) (-1)
# get_dirty_bitmap_no_clear: Test terminated by assertion
#          FAIL  iommufd_dirty_tracking.domain_dirty256M_huge.get_dirty_bitmap_no_clear
not ok 170 iommufd_dirty_tracking.domain_dirty256M_huge.get_dirty_bitmap_no_clear
#  RUN           vfio_compat_mock_domain.Ver1v2.simple_close ...
#            OK  vfio_compat_mock_domain.Ver1v2.simple_close
ok 171 vfio_compat_mock_domain.Ver1v2.simple_close
#  RUN           vfio_compat_mock_domain.Ver1v2.option_huge_pages ...
#            OK  vfio_compat_mock_domain.Ver1v2.option_huge_pages
ok 172 vfio_compat_mock_domain.Ver1v2.option_huge_pages
#  RUN           vfio_compat_mock_domain.Ver1v2.get_info ...
#            OK  vfio_compat_mock_domain.Ver1v2.get_info
ok 173 vfio_compat_mock_domain.Ver1v2.get_info
#  RUN           vfio_compat_mock_domain.Ver1v2.map ...
#            OK  vfio_compat_mock_domain.Ver1v2.map
ok 174 vfio_compat_mock_domain.Ver1v2.map
#  RUN           vfio_compat_mock_domain.Ver1v2.huge_map ...
#            OK  vfio_compat_mock_domain.Ver1v2.huge_map
ok 175 vfio_compat_mock_domain.Ver1v2.huge_map
#  RUN           vfio_compat_mock_domain.Ver1v0.simple_close ...
#            OK  vfio_compat_mock_domain.Ver1v0.simple_close
ok 176 vfio_compat_mock_domain.Ver1v0.simple_close
#  RUN           vfio_compat_mock_domain.Ver1v0.option_huge_pages ...
#            OK  vfio_compat_mock_domain.Ver1v0.option_huge_pages
ok 177 vfio_compat_mock_domain.Ver1v0.option_huge_pages
#  RUN           vfio_compat_mock_domain.Ver1v0.get_info ...
#            OK  vfio_compat_mock_domain.Ver1v0.get_info
ok 178 vfio_compat_mock_domain.Ver1v0.get_info
#  RUN           vfio_compat_mock_domain.Ver1v0.map ...
#            OK  vfio_compat_mock_domain.Ver1v0.map
ok 179 vfio_compat_mock_domain.Ver1v0.map
#  RUN           vfio_compat_mock_domain.Ver1v0.huge_map ...
#            OK  vfio_compat_mock_domain.Ver1v0.huge_map
ok 180 vfio_compat_mock_domain.Ver1v0.huge_map
# FAILED: 166 / 180 tests passed.
# Totals: pass:166 fail:14 xfail:0 xpass:0 skip:0 error:0
TAP version 13
1..180
# Starting 180 tests from 18 test cases.
#  RUN           iommufd.simple_close ...
#            OK  iommufd.simple_close
ok 1 iommufd.simple_close
#  RUN           iommufd.cmd_fail ...
#            OK  iommufd.cmd_fail
ok 2 iommufd.cmd_fail
#  RUN           iommufd.cmd_length ...
#            OK  iommufd.cmd_length
ok 3 iommufd.cmd_length
#  RUN           iommufd.cmd_ex_fail ...
#            OK  iommufd.cmd_ex_fail
ok 4 iommufd.cmd_ex_fail
#  RUN           iommufd.global_options ...
#            OK  iommufd.global_options
ok 5 iommufd.global_options
#  RUN           iommufd.simple_ioctls ...
#            OK  iommufd.simple_ioctls
ok 6 iommufd.simple_ioctls
#  RUN           iommufd.unmap_cmd ...
#            OK  iommufd.unmap_cmd
ok 7 iommufd.unmap_cmd
#  RUN           iommufd.map_cmd ...
#            OK  iommufd.map_cmd
ok 8 iommufd.map_cmd
#  RUN           iommufd.info_cmd ...
#            OK  iommufd.info_cmd
ok 9 iommufd.info_cmd
#  RUN           iommufd.set_iommu_cmd ...
#            OK  iommufd.set_iommu_cmd
ok 10 iommufd.set_iommu_cmd
#  RUN           iommufd.vfio_ioas ...
#            OK  iommufd.vfio_ioas
ok 11 iommufd.vfio_ioas
#  RUN           iommufd_ioas.no_domain.ioas_auto_destroy ...
#            OK  iommufd_ioas.no_domain.ioas_auto_destroy
ok 12 iommufd_ioas.no_domain.ioas_auto_destroy
#  RUN           iommufd_ioas.no_domain.ioas_destroy ...
#            OK  iommufd_ioas.no_domain.ioas_destroy
ok 13 iommufd_ioas.no_domain.ioas_destroy
#  RUN           iommufd_ioas.no_domain.alloc_hwpt_nested ...
#            OK  iommufd_ioas.no_domain.alloc_hwpt_nested
ok 14 iommufd_ioas.no_domain.alloc_hwpt_nested
#  RUN           iommufd_ioas.no_domain.hwpt_attach ...
#            OK  iommufd_ioas.no_domain.hwpt_attach
ok 15 iommufd_ioas.no_domain.hwpt_attach
#  RUN           iommufd_ioas.no_domain.ioas_area_destroy ...
#            OK  iommufd_ioas.no_domain.ioas_area_destroy
ok 16 iommufd_ioas.no_domain.ioas_area_destroy
#  RUN           iommufd_ioas.no_domain.ioas_area_auto_destroy ...
#            OK  iommufd_ioas.no_domain.ioas_area_auto_destroy
ok 17 iommufd_ioas.no_domain.ioas_area_auto_destroy
#  RUN           iommufd_ioas.no_domain.get_hw_info ...
#            OK  iommufd_ioas.no_domain.get_hw_info
ok 18 iommufd_ioas.no_domain.get_hw_info
#  RUN           iommufd_ioas.no_domain.area ...
#            OK  iommufd_ioas.no_domain.area
ok 19 iommufd_ioas.no_domain.area
#  RUN           iommufd_ioas.no_domain.unmap_fully_contained_areas ...
#            OK  iommufd_ioas.no_domain.unmap_fully_contained_areas
ok 20 iommufd_ioas.no_domain.unmap_fully_contained_areas
#  RUN           iommufd_ioas.no_domain.area_auto_iova ...
#            OK  iommufd_ioas.no_domain.area_auto_iova
ok 21 iommufd_ioas.no_domain.area_auto_iova
#  RUN           iommufd_ioas.no_domain.area_allowed ...
#            OK  iommufd_ioas.no_domain.area_allowed
ok 22 iommufd_ioas.no_domain.area_allowed
#  RUN           iommufd_ioas.no_domain.copy_area ...
#            OK  iommufd_ioas.no_domain.copy_area
ok 23 iommufd_ioas.no_domain.copy_area
#  RUN           iommufd_ioas.no_domain.iova_ranges ...
#            OK  iommufd_ioas.no_domain.iova_ranges
ok 24 iommufd_ioas.no_domain.iova_ranges
#  RUN           iommufd_ioas.no_domain.access_domain_destory ...
#            OK  iommufd_ioas.no_domain.access_domain_destory
ok 25 iommufd_ioas.no_domain.access_domain_destory
#  RUN           iommufd_ioas.no_domain.access_pin ...
#            OK  iommufd_ioas.no_domain.access_pin
ok 26 iommufd_ioas.no_domain.access_pin
#  RUN           iommufd_ioas.no_domain.access_pin_unmap ...
#            OK  iommufd_ioas.no_domain.access_pin_unmap
ok 27 iommufd_ioas.no_domain.access_pin_unmap
#  RUN           iommufd_ioas.no_domain.access_rw ...
#            OK  iommufd_ioas.no_domain.access_rw
ok 28 iommufd_ioas.no_domain.access_rw
#  RUN           iommufd_ioas.no_domain.access_rw_unaligned ...
#            OK  iommufd_ioas.no_domain.access_rw_unaligned
ok 29 iommufd_ioas.no_domain.access_rw_unaligned
#  RUN           iommufd_ioas.no_domain.fork_gone ...
#            OK  iommufd_ioas.no_domain.fork_gone
ok 30 iommufd_ioas.no_domain.fork_gone
#  RUN           iommufd_ioas.no_domain.fork_present ...
#            OK  iommufd_ioas.no_domain.fork_present
ok 31 iommufd_ioas.no_domain.fork_present
#  RUN           iommufd_ioas.no_domain.ioas_option_huge_pages ...
#            OK  iommufd_ioas.no_domain.ioas_option_huge_pages
ok 32 iommufd_ioas.no_domain.ioas_option_huge_pages
#  RUN           iommufd_ioas.no_domain.ioas_iova_alloc ...
#            OK  iommufd_ioas.no_domain.ioas_iova_alloc
ok 33 iommufd_ioas.no_domain.ioas_iova_alloc
#  RUN           iommufd_ioas.no_domain.ioas_align_change ...
#            OK  iommufd_ioas.no_domain.ioas_align_change
ok 34 iommufd_ioas.no_domain.ioas_align_change
#  RUN           iommufd_ioas.no_domain.copy_sweep ...
#            OK  iommufd_ioas.no_domain.copy_sweep
ok 35 iommufd_ioas.no_domain.copy_sweep
#  RUN           iommufd_ioas.mock_domain.ioas_auto_destroy ...
#            OK  iommufd_ioas.mock_domain.ioas_auto_destroy
ok 36 iommufd_ioas.mock_domain.ioas_auto_destroy
#  RUN           iommufd_ioas.mock_domain.ioas_destroy ...
#            OK  iommufd_ioas.mock_domain.ioas_destroy
ok 37 iommufd_ioas.mock_domain.ioas_destroy
#  RUN           iommufd_ioas.mock_domain.alloc_hwpt_nested ...
#            OK  iommufd_ioas.mock_domain.alloc_hwpt_nested
ok 38 iommufd_ioas.mock_domain.alloc_hwpt_nested
#  RUN           iommufd_ioas.mock_domain.hwpt_attach ...
#            OK  iommufd_ioas.mock_domain.hwpt_attach
ok 39 iommufd_ioas.mock_domain.hwpt_attach
#  RUN           iommufd_ioas.mock_domain.ioas_area_destroy ...
#            OK  iommufd_ioas.mock_domain.ioas_area_destroy
ok 40 iommufd_ioas.mock_domain.ioas_area_destroy
#  RUN           iommufd_ioas.mock_domain.ioas_area_auto_destroy ...
#            OK  iommufd_ioas.mock_domain.ioas_area_auto_destroy
ok 41 iommufd_ioas.mock_domain.ioas_area_auto_destroy
#  RUN           iommufd_ioas.mock_domain.get_hw_info ...
#            OK  iommufd_ioas.mock_domain.get_hw_info
ok 42 iommufd_ioas.mock_domain.get_hw_info
#  RUN           iommufd_ioas.mock_domain.area ...
#            OK  iommufd_ioas.mock_domain.area
ok 43 iommufd_ioas.mock_domain.area
#  RUN           iommufd_ioas.mock_domain.unmap_fully_contained_areas ...
#            OK  iommufd_ioas.mock_domain.unmap_fully_contained_areas
ok 44 iommufd_ioas.mock_domain.unmap_fully_contained_areas
#  RUN           iommufd_ioas.mock_domain.area_auto_iova ...
#            OK  iommufd_ioas.mock_domain.area_auto_iova
ok 45 iommufd_ioas.mock_domain.area_auto_iova
#  RUN           iommufd_ioas.mock_domain.area_allowed ...
#            OK  iommufd_ioas.mock_domain.area_allowed
ok 46 iommufd_ioas.mock_domain.area_allowed
#  RUN           iommufd_ioas.mock_domain.copy_area ...
#            OK  iommufd_ioas.mock_domain.copy_area
ok 47 iommufd_ioas.mock_domain.copy_area
#  RUN           iommufd_ioas.mock_domain.iova_ranges ...
#            OK  iommufd_ioas.mock_domain.iova_ranges
ok 48 iommufd_ioas.mock_domain.iova_ranges
#  RUN           iommufd_ioas.mock_domain.access_domain_destory ...
#            OK  iommufd_ioas.mock_domain.access_domain_destory
ok 49 iommufd_ioas.mock_domain.access_domain_destory
#  RUN           iommufd_ioas.mock_domain.access_pin ...
#            OK  iommufd_ioas.mock_domain.access_pin
ok 50 iommufd_ioas.mock_domain.access_pin
#  RUN           iommufd_ioas.mock_domain.access_pin_unmap ...
#            OK  iommufd_ioas.mock_domain.access_pin_unmap
ok 51 iommufd_ioas.mock_domain.access_pin_unmap
#  RUN           iommufd_ioas.mock_domain.access_rw ...
#            OK  iommufd_ioas.mock_domain.access_rw
ok 52 iommufd_ioas.mock_domain.access_rw
#  RUN           iommufd_ioas.mock_domain.access_rw_unaligned ...
#            OK  iommufd_ioas.mock_domain.access_rw_unaligned
ok 53 iommufd_ioas.mock_domain.access_rw_unaligned
#  RUN           iommufd_ioas.mock_domain.fork_gone ...
#            OK  iommufd_ioas.mock_domain.fork_gone
ok 54 iommufd_ioas.mock_domain.fork_gone
#  RUN           iommufd_ioas.mock_domain.fork_present ...
#            OK  iommufd_ioas.mock_domain.fork_present
ok 55 iommufd_ioas.mock_domain.fork_present
#  RUN           iommufd_ioas.mock_domain.ioas_option_huge_pages ...
#            OK  iommufd_ioas.mock_domain.ioas_option_huge_pages
ok 56 iommufd_ioas.mock_domain.ioas_option_huge_pages
#  RUN           iommufd_ioas.mock_domain.ioas_iova_alloc ...
#            OK  iommufd_ioas.mock_domain.ioas_iova_alloc
ok 57 iommufd_ioas.mock_domain.ioas_iova_alloc
#  RUN           iommufd_ioas.mock_domain.ioas_align_change ...
#            OK  iommufd_ioas.mock_domain.ioas_align_change
ok 58 iommufd_ioas.mock_domain.ioas_align_change
#  RUN           iommufd_ioas.mock_domain.copy_sweep ...
#            OK  iommufd_ioas.mock_domain.copy_sweep
ok 59 iommufd_ioas.mock_domain.copy_sweep
#  RUN           iommufd_ioas.two_mock_domain.ioas_auto_destroy ...
#            OK  iommufd_ioas.two_mock_domain.ioas_auto_destroy
ok 60 iommufd_ioas.two_mock_domain.ioas_auto_destroy
#  RUN           iommufd_ioas.two_mock_domain.ioas_destroy ...
#            OK  iommufd_ioas.two_mock_domain.ioas_destroy
ok 61 iommufd_ioas.two_mock_domain.ioas_destroy
#  RUN           iommufd_ioas.two_mock_domain.alloc_hwpt_nested ...
#            OK  iommufd_ioas.two_mock_domain.alloc_hwpt_nested
ok 62 iommufd_ioas.two_mock_domain.alloc_hwpt_nested
#  RUN           iommufd_ioas.two_mock_domain.hwpt_attach ...
#            OK  iommufd_ioas.two_mock_domain.hwpt_attach
ok 63 iommufd_ioas.two_mock_domain.hwpt_attach
#  RUN           iommufd_ioas.two_mock_domain.ioas_area_destroy ...
#            OK  iommufd_ioas.two_mock_domain.ioas_area_destroy
ok 64 iommufd_ioas.two_mock_domain.ioas_area_destroy
#  RUN           iommufd_ioas.two_mock_domain.ioas_area_auto_destroy ...
#            OK  iommufd_ioas.two_mock_domain.ioas_area_auto_destroy
ok 65 iommufd_ioas.two_mock_domain.ioas_area_auto_destroy
#  RUN           iommufd_ioas.two_mock_domain.get_hw_info ...
#            OK  iommufd_ioas.two_mock_domain.get_hw_info
ok 66 iommufd_ioas.two_mock_domain.get_hw_info
#  RUN           iommufd_ioas.two_mock_domain.area ...
#            OK  iommufd_ioas.two_mock_domain.area
ok 67 iommufd_ioas.two_mock_domain.area
#  RUN           iommufd_ioas.two_mock_domain.unmap_fully_contained_areas ...
#            OK  iommufd_ioas.two_mock_domain.unmap_fully_contained_areas
ok 68 iommufd_ioas.two_mock_domain.unmap_fully_contained_areas
#  RUN           iommufd_ioas.two_mock_domain.area_auto_iova ...
#            OK  iommufd_ioas.two_mock_domain.area_auto_iova
ok 69 iommufd_ioas.two_mock_domain.area_auto_iova
#  RUN           iommufd_ioas.two_mock_domain.area_allowed ...
#            OK  iommufd_ioas.two_mock_domain.area_allowed
ok 70 iommufd_ioas.two_mock_domain.area_allowed
#  RUN           iommufd_ioas.two_mock_domain.copy_area ...
#            OK  iommufd_ioas.two_mock_domain.copy_area
ok 71 iommufd_ioas.two_mock_domain.copy_area
#  RUN           iommufd_ioas.two_mock_domain.iova_ranges ...
#            OK  iommufd_ioas.two_mock_domain.iova_ranges
ok 72 iommufd_ioas.two_mock_domain.iova_ranges
#  RUN           iommufd_ioas.two_mock_domain.access_domain_destory ...
#            OK  iommufd_ioas.two_mock_domain.access_domain_destory
ok 73 iommufd_ioas.two_mock_domain.access_domain_destory
#  RUN           iommufd_ioas.two_mock_domain.access_pin ...
#            OK  iommufd_ioas.two_mock_domain.access_pin
ok 74 iommufd_ioas.two_mock_domain.access_pin
#  RUN           iommufd_ioas.two_mock_domain.access_pin_unmap ...
#            OK  iommufd_ioas.two_mock_domain.access_pin_unmap
ok 75 iommufd_ioas.two_mock_domain.access_pin_unmap
#  RUN           iommufd_ioas.two_mock_domain.access_rw ...
#            OK  iommufd_ioas.two_mock_domain.access_rw
ok 76 iommufd_ioas.two_mock_domain.access_rw
#  RUN           iommufd_ioas.two_mock_domain.access_rw_unaligned ...
#            OK  iommufd_ioas.two_mock_domain.access_rw_unaligned
ok 77 iommufd_ioas.two_mock_domain.access_rw_unaligned
#  RUN           iommufd_ioas.two_mock_domain.fork_gone ...
#            OK  iommufd_ioas.two_mock_domain.fork_gone
ok 78 iommufd_ioas.two_mock_domain.fork_gone
#  RUN           iommufd_ioas.two_mock_domain.fork_present ...
#            OK  iommufd_ioas.two_mock_domain.fork_present
ok 79 iommufd_ioas.two_mock_domain.fork_present
#  RUN           iommufd_ioas.two_mock_domain.ioas_option_huge_pages ...
#            OK  iommufd_ioas.two_mock_domain.ioas_option_huge_pages
ok 80 iommufd_ioas.two_mock_domain.ioas_option_huge_pages
#  RUN           iommufd_ioas.two_mock_domain.ioas_iova_alloc ...
#            OK  iommufd_ioas.two_mock_domain.ioas_iova_alloc
ok 81 iommufd_ioas.two_mock_domain.ioas_iova_alloc
#  RUN           iommufd_ioas.two_mock_domain.ioas_align_change ...
#            OK  iommufd_ioas.two_mock_domain.ioas_align_change
ok 82 iommufd_ioas.two_mock_domain.ioas_align_change
#  RUN           iommufd_ioas.two_mock_domain.copy_sweep ...
#            OK  iommufd_ioas.two_mock_domain.copy_sweep
ok 83 iommufd_ioas.two_mock_domain.copy_sweep
#  RUN           iommufd_ioas.mock_domain_limit.ioas_auto_destroy ...
#            OK  iommufd_ioas.mock_domain_limit.ioas_auto_destroy
ok 84 iommufd_ioas.mock_domain_limit.ioas_auto_destroy
#  RUN           iommufd_ioas.mock_domain_limit.ioas_destroy ...
#            OK  iommufd_ioas.mock_domain_limit.ioas_destroy
ok 85 iommufd_ioas.mock_domain_limit.ioas_destroy
#  RUN           iommufd_ioas.mock_domain_limit.alloc_hwpt_nested ...
#            OK  iommufd_ioas.mock_domain_limit.alloc_hwpt_nested
ok 86 iommufd_ioas.mock_domain_limit.alloc_hwpt_nested
#  RUN           iommufd_ioas.mock_domain_limit.hwpt_attach ...
#            OK  iommufd_ioas.mock_domain_limit.hwpt_attach
ok 87 iommufd_ioas.mock_domain_limit.hwpt_attach
#  RUN           iommufd_ioas.mock_domain_limit.ioas_area_destroy ...
#            OK  iommufd_ioas.mock_domain_limit.ioas_area_destroy
ok 88 iommufd_ioas.mock_domain_limit.ioas_area_destroy
#  RUN           iommufd_ioas.mock_domain_limit.ioas_area_auto_destroy ...
#            OK  iommufd_ioas.mock_domain_limit.ioas_area_auto_destroy
ok 89 iommufd_ioas.mock_domain_limit.ioas_area_auto_destroy
#  RUN           iommufd_ioas.mock_domain_limit.get_hw_info ...
#            OK  iommufd_ioas.mock_domain_limit.get_hw_info
ok 90 iommufd_ioas.mock_domain_limit.get_hw_info
#  RUN           iommufd_ioas.mock_domain_limit.area ...
#            OK  iommufd_ioas.mock_domain_limit.area
ok 91 iommufd_ioas.mock_domain_limit.area
#  RUN           iommufd_ioas.mock_domain_limit.unmap_fully_contained_areas ...
#            OK  iommufd_ioas.mock_domain_limit.unmap_fully_contained_areas
ok 92 iommufd_ioas.mock_domain_limit.unmap_fully_contained_areas
#  RUN           iommufd_ioas.mock_domain_limit.area_auto_iova ...
#            OK  iommufd_ioas.mock_domain_limit.area_auto_iova
ok 93 iommufd_ioas.mock_domain_limit.area_auto_iova
#  RUN           iommufd_ioas.mock_domain_limit.area_allowed ...
#            OK  iommufd_ioas.mock_domain_limit.area_allowed
ok 94 iommufd_ioas.mock_domain_limit.area_allowed
#  RUN           iommufd_ioas.mock_domain_limit.copy_area ...
#            OK  iommufd_ioas.mock_domain_limit.copy_area
ok 95 iommufd_ioas.mock_domain_limit.copy_area
#  RUN           iommufd_ioas.mock_domain_limit.iova_ranges ...
#            OK  iommufd_ioas.mock_domain_limit.iova_ranges
ok 96 iommufd_ioas.mock_domain_limit.iova_ranges
#  RUN           iommufd_ioas.mock_domain_limit.access_domain_destory ...
#            OK  iommufd_ioas.mock_domain_limit.access_domain_destory
ok 97 iommufd_ioas.mock_domain_limit.access_domain_destory
#  RUN           iommufd_ioas.mock_domain_limit.access_pin ...
#            OK  iommufd_ioas.mock_domain_limit.access_pin
ok 98 iommufd_ioas.mock_domain_limit.access_pin
#  RUN           iommufd_ioas.mock_domain_limit.access_pin_unmap ...
#            OK  iommufd_ioas.mock_domain_limit.access_pin_unmap
ok 99 iommufd_ioas.mock_domain_limit.access_pin_unmap
#  RUN           iommufd_ioas.mock_domain_limit.access_rw ...
#            OK  iommufd_ioas.mock_domain_limit.access_rw
ok 100 iommufd_ioas.mock_domain_limit.access_rw
#  RUN           iommufd_ioas.mock_domain_limit.access_rw_unaligned ...
#            OK  iommufd_ioas.mock_domain_limit.access_rw_unaligned
ok 101 iommufd_ioas.mock_domain_limit.access_rw_unaligned
#  RUN           iommufd_ioas.mock_domain_limit.fork_gone ...
#            OK  iommufd_ioas.mock_domain_limit.fork_gone
ok 102 iommufd_ioas.mock_domain_limit.fork_gone
#  RUN           iommufd_ioas.mock_domain_limit.fork_present ...
#            OK  iommufd_ioas.mock_domain_limit.fork_present
ok 103 iommufd_ioas.mock_domain_limit.fork_present
#  RUN           iommufd_ioas.mock_domain_limit.ioas_option_huge_pages ...
#            OK  iommufd_ioas.mock_domain_limit.ioas_option_huge_pages
ok 104 iommufd_ioas.mock_domain_limit.ioas_option_huge_pages
#  RUN           iommufd_ioas.mock_domain_limit.ioas_iova_alloc ...
#            OK  iommufd_ioas.mock_domain_limit.ioas_iova_alloc
ok 105 iommufd_ioas.mock_domain_limit.ioas_iova_alloc
#  RUN           iommufd_ioas.mock_domain_limit.ioas_align_change ...
#            OK  iommufd_ioas.mock_domain_limit.ioas_align_change
ok 106 iommufd_ioas.mock_domain_limit.ioas_align_change
#  RUN           iommufd_ioas.mock_domain_limit.copy_sweep ...
#            OK  iommufd_ioas.mock_domain_limit.copy_sweep
ok 107 iommufd_ioas.mock_domain_limit.copy_sweep
#  RUN           iommufd_mock_domain.one_domain.basic ...
#            OK  iommufd_mock_domain.one_domain.basic
ok 108 iommufd_mock_domain.one_domain.basic
#  RUN           iommufd_mock_domain.one_domain.ro_unshare ...
#            OK  iommufd_mock_domain.one_domain.ro_unshare
ok 109 iommufd_mock_domain.one_domain.ro_unshare
#  RUN           iommufd_mock_domain.one_domain.all_aligns ...
#            OK  iommufd_mock_domain.one_domain.all_aligns
ok 110 iommufd_mock_domain.one_domain.all_aligns
#  RUN           iommufd_mock_domain.one_domain.all_aligns_copy ...
#            OK  iommufd_mock_domain.one_domain.all_aligns_copy
ok 111 iommufd_mock_domain.one_domain.all_aligns_copy
#  RUN           iommufd_mock_domain.one_domain.user_copy ...
#            OK  iommufd_mock_domain.one_domain.user_copy
ok 112 iommufd_mock_domain.one_domain.user_copy
#  RUN           iommufd_mock_domain.one_domain.replace ...
#            OK  iommufd_mock_domain.one_domain.replace
ok 113 iommufd_mock_domain.one_domain.replace
#  RUN           iommufd_mock_domain.one_domain.alloc_hwpt ...
#            OK  iommufd_mock_domain.one_domain.alloc_hwpt
ok 114 iommufd_mock_domain.one_domain.alloc_hwpt
#  RUN           iommufd_mock_domain.two_domains.basic ...
#            OK  iommufd_mock_domain.two_domains.basic
ok 115 iommufd_mock_domain.two_domains.basic
#  RUN           iommufd_mock_domain.two_domains.ro_unshare ...
#            OK  iommufd_mock_domain.two_domains.ro_unshare
ok 116 iommufd_mock_domain.two_domains.ro_unshare
#  RUN           iommufd_mock_domain.two_domains.all_aligns ...
#            OK  iommufd_mock_domain.two_domains.all_aligns
ok 117 iommufd_mock_domain.two_domains.all_aligns
#  RUN           iommufd_mock_domain.two_domains.all_aligns_copy ...
#            OK  iommufd_mock_domain.two_domains.all_aligns_copy
ok 118 iommufd_mock_domain.two_domains.all_aligns_copy
#  RUN           iommufd_mock_domain.two_domains.user_copy ...
#            OK  iommufd_mock_domain.two_domains.user_copy
ok 119 iommufd_mock_domain.two_domains.user_copy
#  RUN           iommufd_mock_domain.two_domains.replace ...
#            OK  iommufd_mock_domain.two_domains.replace
ok 120 iommufd_mock_domain.two_domains.replace
#  RUN           iommufd_mock_domain.two_domains.alloc_hwpt ...
#            OK  iommufd_mock_domain.two_domains.alloc_hwpt
ok 121 iommufd_mock_domain.two_domains.alloc_hwpt
#  RUN           iommufd_mock_domain.one_domain_hugepage.basic ...
#            OK  iommufd_mock_domain.one_domain_hugepage.basic
ok 122 iommufd_mock_domain.one_domain_hugepage.basic
#  RUN           iommufd_mock_domain.one_domain_hugepage.ro_unshare ...
#            OK  iommufd_mock_domain.one_domain_hugepage.ro_unshare
ok 123 iommufd_mock_domain.one_domain_hugepage.ro_unshare
#  RUN           iommufd_mock_domain.one_domain_hugepage.all_aligns ...
#            OK  iommufd_mock_domain.one_domain_hugepage.all_aligns
ok 124 iommufd_mock_domain.one_domain_hugepage.all_aligns
#  RUN           iommufd_mock_domain.one_domain_hugepage.all_aligns_copy ...
#            OK  iommufd_mock_domain.one_domain_hugepage.all_aligns_copy
ok 125 iommufd_mock_domain.one_domain_hugepage.all_aligns_copy
#  RUN           iommufd_mock_domain.one_domain_hugepage.user_copy ...
#            OK  iommufd_mock_domain.one_domain_hugepage.user_copy
ok 126 iommufd_mock_domain.one_domain_hugepage.user_copy
#  RUN           iommufd_mock_domain.one_domain_hugepage.replace ...
#            OK  iommufd_mock_domain.one_domain_hugepage.replace
ok 127 iommufd_mock_domain.one_domain_hugepage.replace
#  RUN           iommufd_mock_domain.one_domain_hugepage.alloc_hwpt ...
#            OK  iommufd_mock_domain.one_domain_hugepage.alloc_hwpt
ok 128 iommufd_mock_domain.one_domain_hugepage.alloc_hwpt
#  RUN           iommufd_mock_domain.two_domains_hugepage.basic ...
#            OK  iommufd_mock_domain.two_domains_hugepage.basic
ok 129 iommufd_mock_domain.two_domains_hugepage.basic
#  RUN           iommufd_mock_domain.two_domains_hugepage.ro_unshare ...
#            OK  iommufd_mock_domain.two_domains_hugepage.ro_unshare
ok 130 iommufd_mock_domain.two_domains_hugepage.ro_unshare
#  RUN           iommufd_mock_domain.two_domains_hugepage.all_aligns ...
#            OK  iommufd_mock_domain.two_domains_hugepage.all_aligns
ok 131 iommufd_mock_domain.two_domains_hugepage.all_aligns
#  RUN           iommufd_mock_domain.two_domains_hugepage.all_aligns_copy ...
#            OK  iommufd_mock_domain.two_domains_hugepage.all_aligns_copy
ok 132 iommufd_mock_domain.two_domains_hugepage.all_aligns_copy
#  RUN           iommufd_mock_domain.two_domains_hugepage.user_copy ...
#            OK  iommufd_mock_domain.two_domains_hugepage.user_copy
ok 133 iommufd_mock_domain.two_domains_hugepage.user_copy
#  RUN           iommufd_mock_domain.two_domains_hugepage.replace ...
#            OK  iommufd_mock_domain.two_domains_hugepage.replace
ok 134 iommufd_mock_domain.two_domains_hugepage.replace
#  RUN           iommufd_mock_domain.two_domains_hugepage.alloc_hwpt ...
#            OK  iommufd_mock_domain.two_domains_hugepage.alloc_hwpt
ok 135 iommufd_mock_domain.two_domains_hugepage.alloc_hwpt
#  RUN           iommufd_dirty_tracking.domain_dirty128k.enforce_dirty ...
#            OK  iommufd_dirty_tracking.domain_dirty128k.enforce_dirty
ok 136 iommufd_dirty_tracking.domain_dirty128k.enforce_dirty
#  RUN           iommufd_dirty_tracking.domain_dirty128k.set_dirty_tracking ...
#            OK  iommufd_dirty_tracking.domain_dirty128k.set_dirty_tracking
ok 137 iommufd_dirty_tracking.domain_dirty128k.set_dirty_tracking
#  RUN           iommufd_dirty_tracking.domain_dirty128k.device_dirty_capability ...
#            OK  iommufd_dirty_tracking.domain_dirty128k.device_dirty_capability
ok 138 iommufd_dirty_tracking.domain_dirty128k.device_dirty_capability
#  RUN           iommufd_dirty_tracking.domain_dirty128k.get_dirty_bitmap ...
#            OK  iommufd_dirty_tracking.domain_dirty128k.get_dirty_bitmap
ok 139 iommufd_dirty_tracking.domain_dirty128k.get_dirty_bitmap
#  RUN           iommufd_dirty_tracking.domain_dirty128k.get_dirty_bitmap_no_clear ...
#            OK  iommufd_dirty_tracking.domain_dirty128k.get_dirty_bitmap_no_clear
ok 140 iommufd_dirty_tracking.domain_dirty128k.get_dirty_bitmap_no_clear
#  RUN           iommufd_dirty_tracking.domain_dirty256k.enforce_dirty ...
#            OK  iommufd_dirty_tracking.domain_dirty256k.enforce_dirty
ok 141 iommufd_dirty_tracking.domain_dirty256k.enforce_dirty
#  RUN           iommufd_dirty_tracking.domain_dirty256k.set_dirty_tracking ...
#            OK  iommufd_dirty_tracking.domain_dirty256k.set_dirty_tracking
ok 142 iommufd_dirty_tracking.domain_dirty256k.set_dirty_tracking
#  RUN           iommufd_dirty_tracking.domain_dirty256k.device_dirty_capability ...
#            OK  iommufd_dirty_tracking.domain_dirty256k.device_dirty_capability
ok 143 iommufd_dirty_tracking.domain_dirty256k.device_dirty_capability
#  RUN           iommufd_dirty_tracking.domain_dirty256k.get_dirty_bitmap ...
#            OK  iommufd_dirty_tracking.domain_dirty256k.get_dirty_bitmap
ok 144 iommufd_dirty_tracking.domain_dirty256k.get_dirty_bitmap
#  RUN           iommufd_dirty_tracking.domain_dirty256k.get_dirty_bitmap_no_clear ...
#            OK  iommufd_dirty_tracking.domain_dirty256k.get_dirty_bitmap_no_clear
ok 145 iommufd_dirty_tracking.domain_dirty256k.get_dirty_bitmap_no_clear
#  RUN           iommufd_dirty_tracking.domain_dirty640k.enforce_dirty ...
#            OK  iommufd_dirty_tracking.domain_dirty640k.enforce_dirty
ok 146 iommufd_dirty_tracking.domain_dirty640k.enforce_dirty
#  RUN           iommufd_dirty_tracking.domain_dirty640k.set_dirty_tracking ...
#            OK  iommufd_dirty_tracking.domain_dirty640k.set_dirty_tracking
ok 147 iommufd_dirty_tracking.domain_dirty640k.set_dirty_tracking
#  RUN           iommufd_dirty_tracking.domain_dirty640k.device_dirty_capability ...
#            OK  iommufd_dirty_tracking.domain_dirty640k.device_dirty_capability
ok 148 iommufd_dirty_tracking.domain_dirty640k.device_dirty_capability
#  RUN           iommufd_dirty_tracking.domain_dirty640k.get_dirty_bitmap ...
#            OK  iommufd_dirty_tracking.domain_dirty640k.get_dirty_bitmap
ok 149 iommufd_dirty_tracking.domain_dirty640k.get_dirty_bitmap
#  RUN           iommufd_dirty_tracking.domain_dirty640k.get_dirty_bitmap_no_clear ...
#            OK  iommufd_dirty_tracking.domain_dirty640k.get_dirty_bitmap_no_clear
ok 150 iommufd_dirty_tracking.domain_dirty640k.get_dirty_bitmap_no_clear
#  RUN           iommufd_dirty_tracking.domain_dirty128M.enforce_dirty ...
#            OK  iommufd_dirty_tracking.domain_dirty128M.enforce_dirty
ok 151 iommufd_dirty_tracking.domain_dirty128M.enforce_dirty
#  RUN           iommufd_dirty_tracking.domain_dirty128M.set_dirty_tracking ...
#            OK  iommufd_dirty_tracking.domain_dirty128M.set_dirty_tracking
ok 152 iommufd_dirty_tracking.domain_dirty128M.set_dirty_tracking
#  RUN           iommufd_dirty_tracking.domain_dirty128M.device_dirty_capability ...
#            OK  iommufd_dirty_tracking.domain_dirty128M.device_dirty_capability
ok 153 iommufd_dirty_tracking.domain_dirty128M.device_dirty_capability
#  RUN           iommufd_dirty_tracking.domain_dirty128M.get_dirty_bitmap ...
#            OK  iommufd_dirty_tracking.domain_dirty128M.get_dirty_bitmap
ok 154 iommufd_dirty_tracking.domain_dirty128M.get_dirty_bitmap
#  RUN           iommufd_dirty_tracking.domain_dirty128M.get_dirty_bitmap_no_clear ...
#            OK  iommufd_dirty_tracking.domain_dirty128M.get_dirty_bitmap_no_clear
ok 155 iommufd_dirty_tracking.domain_dirty128M.get_dirty_bitmap_no_clear
#  RUN           iommufd_dirty_tracking.domain_dirty128M_huge.enforce_dirty ...
#            OK  iommufd_dirty_tracking.domain_dirty128M_huge.enforce_dirty
ok 156 iommufd_dirty_tracking.domain_dirty128M_huge.enforce_dirty
#  RUN           iommufd_dirty_tracking.domain_dirty128M_huge.set_dirty_tracking ...
#            OK  iommufd_dirty_tracking.domain_dirty128M_huge.set_dirty_tracking
ok 157 iommufd_dirty_tracking.domain_dirty128M_huge.set_dirty_tracking
#  RUN           iommufd_dirty_tracking.domain_dirty128M_huge.device_dirty_capability ...
#            OK  iommufd_dirty_tracking.domain_dirty128M_huge.device_dirty_capability
ok 158 iommufd_dirty_tracking.domain_dirty128M_huge.device_dirty_capability
#  RUN           iommufd_dirty_tracking.domain_dirty128M_huge.get_dirty_bitmap ...
# iommufd.c:1896:get_dirty_bitmap:Expected 0 (0) == _test_ioctl_ioas_map( self->fd, ioas_id, self->buffer, variant->buffer_size, &__iova, IOMMU_IOAS_MAP_FIXED_IOVA | IOMMU_IOAS_MAP_WRITEABLE | IOMMU_IOAS_MAP_READABLE) (-1)
# get_dirty_bitmap: Test terminated by assertion
#          FAIL  iommufd_dirty_tracking.domain_dirty128M_huge.get_dirty_bitmap
not ok 159 iommufd_dirty_tracking.domain_dirty128M_huge.get_dirty_bitmap
#  RUN           iommufd_dirty_tracking.domain_dirty128M_huge.get_dirty_bitmap_no_clear ...
# iommufd.c:1933:get_dirty_bitmap_no_clear:Expected 0 (0) == _test_ioctl_ioas_map( self->fd, ioas_id, self->buffer, variant->buffer_size, &__iova, IOMMU_IOAS_MAP_FIXED_IOVA | IOMMU_IOAS_MAP_WRITEABLE | IOMMU_IOAS_MAP_READABLE) (-1)
# get_dirty_bitmap_no_clear: Test terminated by assertion
#          FAIL  iommufd_dirty_tracking.domain_dirty128M_huge.get_dirty_bitmap_no_clear
not ok 160 iommufd_dirty_tracking.domain_dirty128M_huge.get_dirty_bitmap_no_clear
#  RUN           iommufd_dirty_tracking.domain_dirty256M.enforce_dirty ...
#            OK  iommufd_dirty_tracking.domain_dirty256M.enforce_dirty
ok 161 iommufd_dirty_tracking.domain_dirty256M.enforce_dirty
#  RUN           iommufd_dirty_tracking.domain_dirty256M.set_dirty_tracking ...
#            OK  iommufd_dirty_tracking.domain_dirty256M.set_dirty_tracking
ok 162 iommufd_dirty_tracking.domain_dirty256M.set_dirty_tracking
#  RUN           iommufd_dirty_tracking.domain_dirty256M.device_dirty_capability ...
#            OK  iommufd_dirty_tracking.domain_dirty256M.device_dirty_capability
ok 163 iommufd_dirty_tracking.domain_dirty256M.device_dirty_capability
#  RUN           iommufd_dirty_tracking.domain_dirty256M.get_dirty_bitmap ...
#            OK  iommufd_dirty_tracking.domain_dirty256M.get_dirty_bitmap
ok 164 iommufd_dirty_tracking.domain_dirty256M.get_dirty_bitmap
#  RUN           iommufd_dirty_tracking.domain_dirty256M.get_dirty_bitmap_no_clear ...
#            OK  iommufd_dirty_tracking.domain_dirty256M.get_dirty_bitmap_no_clear
ok 165 iommufd_dirty_tracking.domain_dirty256M.get_dirty_bitmap_no_clear
#  RUN           iommufd_dirty_tracking.domain_dirty256M_huge.enforce_dirty ...
#            OK  iommufd_dirty_tracking.domain_dirty256M_huge.enforce_dirty
ok 166 iommufd_dirty_tracking.domain_dirty256M_huge.enforce_dirty
#  RUN           iommufd_dirty_tracking.domain_dirty256M_huge.set_dirty_tracking ...
#            OK  iommufd_dirty_tracking.domain_dirty256M_huge.set_dirty_tracking
ok 167 iommufd_dirty_tracking.domain_dirty256M_huge.set_dirty_tracking
#  RUN           iommufd_dirty_tracking.domain_dirty256M_huge.device_dirty_capability ...
#            OK  iommufd_dirty_tracking.domain_dirty256M_huge.device_dirty_capability
ok 168 iommufd_dirty_tracking.domain_dirty256M_huge.device_dirty_capability
#  RUN           iommufd_dirty_tracking.domain_dirty256M_huge.get_dirty_bitmap ...
# iommufd.c:1896:get_dirty_bitmap:Expected 0 (0) == _test_ioctl_ioas_map( self->fd, ioas_id, self->buffer, variant->buffer_size, &__iova, IOMMU_IOAS_MAP_FIXED_IOVA | IOMMU_IOAS_MAP_WRITEABLE | IOMMU_IOAS_MAP_READABLE) (-1)
# get_dirty_bitmap: Test terminated by assertion
#          FAIL  iommufd_dirty_tracking.domain_dirty256M_huge.get_dirty_bitmap
not ok 169 iommufd_dirty_tracking.domain_dirty256M_huge.get_dirty_bitmap
#  RUN           iommufd_dirty_tracking.domain_dirty256M_huge.get_dirty_bitmap_no_clear ...
# iommufd.c:1933:get_dirty_bitmap_no_clear:Expected 0 (0) == _test_ioctl_ioas_map( self->fd, ioas_id, self->buffer, variant->buffer_size, &__iova, IOMMU_IOAS_MAP_FIXED_IOVA | IOMMU_IOAS_MAP_WRITEABLE | IOMMU_IOAS_MAP_READABLE) (-1)
# get_dirty_bitmap_no_clear: Test terminated by assertion
#          FAIL  iommufd_dirty_tracking.domain_dirty256M_huge.get_dirty_bitmap_no_clear
not ok 170 iommufd_dirty_tracking.domain_dirty256M_huge.get_dirty_bitmap_no_clear
#  RUN           vfio_compat_mock_domain.Ver1v2.simple_close ...
#            OK  vfio_compat_mock_domain.Ver1v2.simple_close
ok 171 vfio_compat_mock_domain.Ver1v2.simple_close
#  RUN           vfio_compat_mock_domain.Ver1v2.option_huge_pages ...
#            OK  vfio_compat_mock_domain.Ver1v2.option_huge_pages
ok 172 vfio_compat_mock_domain.Ver1v2.option_huge_pages
#  RUN           vfio_compat_mock_domain.Ver1v2.get_info ...
#            OK  vfio_compat_mock_domain.Ver1v2.get_info
ok 173 vfio_compat_mock_domain.Ver1v2.get_info
#  RUN           vfio_compat_mock_domain.Ver1v2.map ...
#            OK  vfio_compat_mock_domain.Ver1v2.map
ok 174 vfio_compat_mock_domain.Ver1v2.map
#  RUN           vfio_compat_mock_domain.Ver1v2.huge_map ...
#            OK  vfio_compat_mock_domain.Ver1v2.huge_map
ok 175 vfio_compat_mock_domain.Ver1v2.huge_map
#  RUN           vfio_compat_mock_domain.Ver1v0.simple_close ...
#            OK  vfio_compat_mock_domain.Ver1v0.simple_close
ok 176 vfio_compat_mock_domain.Ver1v0.simple_close
#  RUN           vfio_compat_mock_domain.Ver1v0.option_huge_pages ...
#            OK  vfio_compat_mock_domain.Ver1v0.option_huge_pages
ok 177 vfio_compat_mock_domain.Ver1v0.option_huge_pages
#  RUN           vfio_compat_mock_domain.Ver1v0.get_info ...
#            OK  vfio_compat_mock_domain.Ver1v0.get_info
ok 178 vfio_compat_mock_domain.Ver1v0.get_info
#  RUN           vfio_compat_mock_domain.Ver1v0.map ...
#            OK  vfio_compat_mock_domain.Ver1v0.map
ok 179 vfio_compat_mock_domain.Ver1v0.map
#  RUN           vfio_compat_mock_domain.Ver1v0.huge_map ...
#            OK  vfio_compat_mock_domain.Ver1v0.huge_map
ok 180 vfio_compat_mock_domain.Ver1v0.huge_map
# FAILED: 176 / 180 tests passed.
# Totals: pass:176 fail:4 xfail:0 xpass:0 skip:0 error:0

[Index of Archives]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux