Re: [PATCH v4] resource: add a simple test for walk_iomem_res_desc()
From: Chia-I Wu
Date: Wed Jun 05 2024 - 18:52:50 EST
On Wed, Jun 5, 2024 at 3:10 PM Andy Shevchenko
<andriy.shevchenko@xxxxxxxxxxxxxxx> wrote:
>
> On Wed, Jun 05, 2024 at 02:28:26PM -0700, Chia-I Wu wrote:
> > This mainly tests that find_next_iomem_res() does not miss resources.
>
> ...
>
> > v2: update subject, use DEFINE_RES_NAMED and hardcoded offsets
> > v3: really hardcode offsets, with 4KB intervals since 0x1000 is easier
> > to read than 0x400
>
> Right, but...
>
> > v4: use RESOURCE_SIZE_MAX, split allocate_resource and KUNIT_ASSERT_EQ,
> > and other cosmetic changes
>
> ...
>
> > + ret = allocate_resource(&iomem_resource, &root, 0x100000,
> > + 0, RESOURCE_SIZE_MAX, 0x100000, NULL, NULL);
>
> Just double check that limits.h is included.
>
> ...
>
> > + /* build the resource tree */
> > + res[0] = DEFINE_RES_NAMED(root.start + 0x0000, 0x1000, "SYSRAM 1",
> > + IORESOURCE_SYSTEM_RAM);
> > + res[1] = DEFINE_RES_NAMED(root.start + 0x1000, 0x1000, "OTHER", 0);
> > +
> > + res[2] = DEFINE_RES_NAMED(root.start + 0x3000, 0x1000, "NESTED", 0);
> > + res[3] = DEFINE_RES_NAMED(root.start + 0x3800, 0x0400, "SYSRAM 2",
> > + IORESOURCE_SYSTEM_RAM);
>
> ...here is overlap with the previous resource.
>
> And here is the gap to the next one, in case we make that overlapping gone.
>
> > + res[4] = DEFINE_RES_NAMED(root.start + 0x4000, 0x1000, "SYSRAM 3",
> > + IORESOURCE_SYSTEM_RAM);
>
> It wasn't the case in previous data. Please, elaborate what's going on here?
The test data is chosen to be
first interval: a matching resource (res[0])
second interval: a non-matching resource (res[1])
third interval: a hole
fourth interval: a matching resource (res[3]) nested in a
non-matching resource (res[2])
fifth interval: a matching resource (res[4])
The idea hasn't changed between revisions.
res[3] went from a half of res[2] to a quarter of res[2] in v4. I
guess it causes confusion if it is not viewed as a nested resource.
>
> ...
>
> And rather sending one version per 12h, take your time and think more about
> test data. What are we testing? Are the testing data correct? Shouldn't we also
> have negative test cases?
The current choice of test data covers the most common patterns. Do
you have other patterns you want to cover? I am new to the resource
code and that's why I am largely reactive to review feedback.
>
> --
> With Best Regards,
> Andy Shevchenko
>
>