comp.lang.ada
 help / color / mirror / Atom feed
From: Paul Rubin <no.email@nospam.invalid>
Subject: Re: Ada and software testing
Date: Wed, 14 Jul 2021 12:56:08 -0700	[thread overview]
Message-ID: <87lf68y8iv.fsf@nightsong.com> (raw)
In-Reply-To: scgv5m$obu$1@gioia.aioe.org

"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> writes:
> But if it does not and I/O completes without losing the processor, the
> callback is called recursively *before* popping the queue and the
> *same* portion of data is sent again.

This is a garden variety concurrency bug that you're right, wouldn't
normally be found with conventional fuzzing, but might be findable with
stress testing.  A more rigorous approach would involve model checking.

This type of problem happens in C programs all the time as well, and
doesn't really signify anything about the effectiveness of fuzz testing.
Fuzzing is very effective against C programs, but tentatively maybe less
so against Ada programs, because of Ada's more thorough type checking.

> [The fix is to make recursive calls void]

Hopefully there would be some locks between the tasks, though in that
case the problem would show up as deadlock.

  reply	other threads:[~2021-07-14 19:56 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-12  0:49 Ada and software testing Paul Rubin
2021-07-12  8:40 ` Dmitry A. Kazakov
2021-07-14 19:56   ` Paul Rubin [this message]
2021-07-12 16:14 ` Gautier write-only address
2021-07-12 16:41   ` Dmitry A. Kazakov
2021-07-14 19:32   ` Paul Rubin
2021-07-14 19:51     ` Dmitry A. Kazakov
2021-07-14 20:02       ` Paul Rubin
2021-07-15  7:27         ` Dmitry A. Kazakov
2021-07-16 10:01 ` G.B.
2021-07-16 10:21   ` Paul Rubin
2021-07-28 15:28     ` Paul Butcher
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox