Re: ndctl tests usable?

From: Dan Williams
Date: Tue Apr 26 2022 - 12:32:40 EST


On Tue, Apr 26, 2022 at 9:15 AM Michal Suchánek <msuchanek@xxxxxxx> wrote:
>
> On Tue, Apr 26, 2022 at 08:51:25AM -0700, Dan Williams wrote:
> > On Tue, Apr 26, 2022 at 5:39 AM Michal Suchánek <msuchanek@xxxxxxx> wrote:
> > >
> > > Hello,
> > >
> > > there is some testsuite included with ndctl, and when following the
> > > instructions to build it most tests fail or are skipped:
> > >
> > > [ 95s] Ok: 3
> > > [ 95s] Expected Fail: 0
> > > [ 95s] Fail: 5
> > > [ 95s] Unexpected Pass: 0
> > > [ 95s] Skipped: 15
> > > [ 95s] Timeout: 0
> > >
> > > Is this the expected outcome or is this a problem with the ndctl build?
> > >
> > > Attaching test run log.
> >
> > I see a few missing prerequisites:
> >
> > [ 78s] /usr/src/packages/BUILD/ndctl-73/test/pmem-errors.sh: line
> > 64: mkfs.ext4: command not found
> > [ 95s] /usr/src/packages/BUILD/ndctl-73/test/security.sh: line 25:
> > jq: command not found
>
> Indeed, with those installed I get much more tests passing:
>
> [ 148s] Ok: 13
> [ 148s] Expected Fail: 0
> [ 148s] Fail: 4
> [ 148s] Unexpected Pass: 0
> [ 148s] Skipped: 6
> [ 148s] Timeout: 0
>
> >
> > This report:
> >
> > [ 51s] 1/23 ndctl:ndctl / libndctl SKIP
> > 0.02s exit status 77
> >
> > ...seems to indicate that the nfit_test modules did not appear to load
> > correctly. I never expected that the nfit_test modules would be
> > redistributable, so I was surprised to see them being installed by an
> > actual package "nfit_test-kmp-default-0_k5.17.4_1-6.1". The reason
> > they are not redistributable is because they require replacing the
> > production build of the kernel provided modules libnvdimm.ko,
> > nd_pmem.ko, etc... What I expect is happening is that the production
> > version of libnvdimm.ko is already loaded (or is the only one on the
>
> AFAICT neither is the case, that's why I dump the module information in
> the log.

The modinfo just tells you what modules are available, but it does not
necessarily indicate which modules are actively loaded in the system
which is what ndctl_test_init() validates.