Nir Soffer
2022-Feb-03 20:42 UTC
[Libguestfs] [PATCH libnbd] golang: tests: Fix error handling
On Thu, Feb 3, 2022 at 9:55 PM Richard W.M. Jones <rjones at redhat.com> wrote:> > On Thu, Feb 03, 2022 at 09:39:24PM +0200, Nir Soffer wrote: > > On Thu, Feb 3, 2022 at 9:24 PM Eric Blake <eblake at redhat.com> wrote: > > > > > > On Thu, Feb 03, 2022 at 08:07:52PM +0200, Nir Soffer wrote: > > > > Like lot of the C examples, the aio copy test ignores read and write > > > > errors in the completion callback, which can cause silent data > > > > corruption. The failure in the test is not critical, but this is a bad > > > > example that may be copied by developers to a real application. > > > > > > > > The test panics now if completion callback fails, similar to other Go > > > > examples. > > > > > > > > Signed-off-by: Nir Soffer <nsoffer at redhat.com> > > > > --- > > > > golang/libnbd_590_aio_copy_test.go | 12 ++++++++++-- > > > > 1 file changed, 10 insertions(+), 2 deletions(-) > > > > > > ACK. > > > > Thanks, pushed as b80780e980275a879c13d27aff1449f91f883ce6 > > > > > python/t/590-aio-copy.py and ocaml/tests/test_490_aio_copy.ml need the > > > same treatment. I'll post that with my v2 of the CVE fix. > > > > > > (It's nice that we've tried to share the same test numbers across > > > language bindings - it makes it a bit easier where we copy the same > > > coding paradigms across different languages) > > > > I wondered why we are using these numbers. I think using same pattern > > like {lang}/tests/{name}_test.{suffix} would be nicer. > > But we want to run them in order, or at least express that there is an > ordering to them.Tests ordering is an anti-pattern. Tests must not depend on each other so you can run any tests in any order. The only reason I can see for ordering tests is easier to use output when you compare failures, you know where to find the names. This can be done by the test runner (e.g sort tests before running them). Nir
Eric Blake
2022-Feb-03 20:52 UTC
[Libguestfs] [PATCH libnbd] golang: tests: Fix error handling
On Thu, Feb 03, 2022 at 10:42:09PM +0200, Nir Soffer wrote:> > > I wondered why we are using these numbers. I think using same pattern > > > like {lang}/tests/{name}_test.{suffix} would be nicer. > > > > But we want to run them in order, or at least express that there is an > > ordering to them. > > Tests ordering is an anti-pattern. Tests must not depend on each other > so you can run any tests in any order.They are independent, you should be able to run any of the tests in isolation (modulo however easy or hard it is to convince that language to run a subset of its testsuite). But our numbering still makes sense: if tests 1xx and 5xx both fail, we are better off debugging the failure in 1xx first, because we've hosed the core interaction with the language bindings, whereas 5xx is more the application usage built on top of what is assumed to be a working core. -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3266 Virtualization: qemu.org | libvirt.org