> From: Jason Gunthorpe <jgg@xxxxxxxxxx> > Sent: Thursday, February 23, 2023 5:03 AM > > This can now be covered since we have a full struct device. > > Signed-off-by: Jason Gunthorpe <jgg@xxxxxxxxxx> > --- > tools/testing/selftests/iommu/iommufd.c | 13 ++++++++++++- > 1 file changed, 12 insertions(+), 1 deletion(-) > > diff --git a/tools/testing/selftests/iommu/iommufd.c > b/tools/testing/selftests/iommu/iommufd.c > index 0c4bbd4079a425..69cb79d6a0711d 100644 > --- a/tools/testing/selftests/iommu/iommufd.c > +++ b/tools/testing/selftests/iommu/iommufd.c > @@ -187,6 +187,7 @@ FIXTURE(iommufd_ioas) > int fd; > uint32_t ioas_id; > uint32_t domain_id; > + uint32_t hwpt_id; > uint64_t base_iova; > }; > > @@ -212,7 +213,7 @@ FIXTURE_SETUP(iommufd_ioas) > } > > for (i = 0; i != variant->mock_domains; i++) { > - test_cmd_mock_domain(self->ioas_id, NULL, &self- > >domain_id); > + test_cmd_mock_domain(self->ioas_id, &self->domain_id, > &self->hwpt_id); I didn't get how this works. self->domain_id now means device_id but other references still take it as a domain, e.g.: TEST_F(iommufd_ioas, ioas_destroy) { if (self->domain_id) { /* IOAS cannot be freed while a domain is on it */ EXPECT_ERRNO(EBUSY, _test_ioctl_destroy(self->fd, self->ioas_id)); } else { /* Can allocate and manually free an IOAS table */ test_ioctl_destroy(self->ioas_id); } }