[Libguestfs] [PATCH nbdkit 1/2] tests/test-python-plugin.py: Allow test to use large disks

Nir Soffer nsoffer at redhat.com
Tue Dec 21 22:47:59 UTC 2021


On Wed, Dec 22, 2021 at 12:36 AM Richard W.M. Jones <rjones at redhat.com> wrote:
>
> On Tue, Dec 21, 2021 at 10:25:35PM +0000, Richard W.M. Jones wrote:
> > On Wed, Dec 22, 2021 at 12:21:25AM +0200, Nir Soffer wrote:
> > > It would be help also if we can test extents argument, currently the
> > > plugin ignores the argument so we did not detect the issue with the
> > > wrong format string.
> >
> > OK, I'll take a look.
>
> I see - the plugin function is defined just to return the extents sent
> in (for testing):
>
>   def extents(h, count, offset, flags):
>       return cfg.get('extents', [])
>
> This means we don't test the parameters.  However to test those
> realistically I suppose we would really need to support sparse disks
> in this test plugin, which seems quite tricky.

I think what can work is this:

- pass the actual extents to the plugin

For example empty sparse file:

   extents = [(0, 10 * GiB, nbdkit.EXTENT_ZERO)]

Now when we request:

    extents(4*GB -1, 0, 0)

The plugin can return:

     return [(0, count, nbdkit.EXTENT_ZERO)]

The logic to return extents from the existing list is a little tricky. I have
similar code in a memory backend for imageio (in review):
https://github.com/oVirt/ovirt-imageio/pull/7/commits/9068f84c96f1239d841fbfe7e80296be7be0a245

And this is also the code for getting extents from imageio, posted here:
https://listman.redhat.com/archives/libguestfs/2021-December/msg00197.html




More information about the Libguestfs mailing list