Re: [PATCH linux-kselftest/test v2] ext4: add kunit test for decoding extended timestamps

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

 



On 10/18/19 9:27 AM, Theodore Y. Ts'o wrote:
On Fri, Oct 18, 2019 at 02:40:50AM +0000, Tim.Bird@xxxxxxxx wrote:
We're just talking past each other.  My original e-mail was a rebuttal
to your assertion that any test that was data-driven or non-deterministic
was a fuzzer.  I still believe that's just not the case.  This is independent
of the mechanics or speed of how the data is input.
Apologies, I was still focused on the original context of this thread,
which was about suggested improvements to Iurii's ext4 kunit test, or
perhaps adding new features to Kunit.

I also conceded (multiple times) that externally data-driven
techniques are probably more aptly applied to non-unit tests. I've
heard your pitch about speed, and I'm sympathetic.  My point is that
I believe there is a place for data-driven tests.
As such what this current test does is data driven right. What we are
discussing is how the data is supplied? In this case it is embedded.

I guess I would put it differently.  The key goal is it should be
really easy for developers to run, create, and extend tests.
Data-driven tests is certainly one technique to make it easier to
extend tests, and indeed fs/ext4/inode-test.c is data-driven with the
goal to make it easier to add additional tests.

Again I would make the distinction that "how the data supplied".
Embedded in the test vs. having the flexibility to accept external
test data. From what I can tell,  I didn't see anybody say that the
embedded data is it and nothing more needed.

Instead of adding the ability to read, the suggestion is for modifying
the data. This gets real tedious and don't think anybody will take the
time to do it. On the other hand, is there a few test data files to run
with, it makes it easier to exercise different cases.

Having the data for the test be external is certainly one option, and
there will be cases where it will make sense.  However, the overhead
in creating the parser for the data, and additional complexity
required to get the test data to be fed to the test program means that
that benefits need to be pretty large in order to balance the
additional costs of having an external data file, especially for
Kunit.

Let's explore it further before deciding whether is useful or not.

In terms of the abstract question, is there a place for data-driven
tests, I'm in complete agreement with you.  I've used this many times
personally, especially when writing tests which are implemented in
terms of shell scripts.  Examples of this include e2fsprogs's
regression test suite and xfstests.  I don't consider that a terribly
interesting question though; I view that as on the same order as "is
the sky blue?" or "are apple pies yummy?"

The more interesting, and more concrete question is whether there is a
place for external data-driven tests in Kunit, and there I am *much*
more skeptical.
This is what I am interested in exploring. I do think it will add value.
I can see some use-cases that could benefit from this.

I am not suggesting that this should happen soon. This is something that
can be looked into for the future. I have a few use-cases in mind that
could benefit.

btw. I am by no means suggesting to that this test going in is dependent
on the external data. I already sent my Reviewed-by for the v6 and
planning to pull it into linux-kselftest test for 5.5-rc1.

thanks,
-- Shuah






[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