[DTrace-devel] [PATCH 16/22] test: Fix the speculative tests that checked bufsize

Kris Van Hees kris.van.hees at oracle.com
Sat Sep 14 18:00:59 UTC 2024


On Thu, Aug 29, 2024 at 01:22:13AM -0400, eugene.loh at oracle.com wrote:
> From: Eugene Loh <eugene.loh at oracle.com>
> 
> Ever since speculations were reimplemented, these tests simply were
> not testing what they claimed to test.  Among other things:
> 
> 1)  There is a simple dependence on bufsize that is independent of
> speculations.  So speculations have no special role in bufsize tests.
> 
> 2)  The messages in the print statements were not taxing bufsize.
> (A single default string would be enough to exhaust 60 bytes, but
> the producer wasn't passing the consumer these strings at all.
> The bufsize is being set by the implicit ERROR probe.)
> 
> 3)  The various size ranges described in the comments do not exist
> and were not being tested anyhow.
> 
> So remove these tests, and just rely on the other bufsize tests.
> 
> To be fair, there seemed to have been no other "negative bufsize"
> test, but add a more straightforward such test and add it to where
> the other bufsize tests are.
> 
> Signed-off-by: Eugene Loh <eugene.loh at oracle.com>

Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>

> ---
>  test/unittest/options/err.bufsize-negative.d  | 24 +++++++
>  test/unittest/options/err.bufsize-negative.r  |  2 +
>  .../speculation/err.BufSizeVariations1.d      | 67 -------------------
>  .../speculation/err.BufSizeVariations2.d      | 67 -------------------
>  .../speculation/err.NegativeBufSize.d         | 67 -------------------
>  .../speculation/err.NegativeBufSize.r         |  2 -
>  6 files changed, 26 insertions(+), 203 deletions(-)
>  create mode 100644 test/unittest/options/err.bufsize-negative.d
>  create mode 100644 test/unittest/options/err.bufsize-negative.r
>  delete mode 100644 test/unittest/speculation/err.BufSizeVariations1.d
>  delete mode 100644 test/unittest/speculation/err.BufSizeVariations2.d
>  delete mode 100644 test/unittest/speculation/err.NegativeBufSize.d
>  delete mode 100644 test/unittest/speculation/err.NegativeBufSize.r
> 
> diff --git a/test/unittest/options/err.bufsize-negative.d b/test/unittest/options/err.bufsize-negative.d
> new file mode 100644
> index 00000000..ac194dc8
> --- /dev/null
> +++ b/test/unittest/options/err.bufsize-negative.d
> @@ -0,0 +1,24 @@
> +/*
> + * Oracle Linux DTrace.
> + * Copyright (c) 2024, Oracle and/or its affiliates. All rights reserved.
> + * Licensed under the Universal Permissive License v 1.0 as shown at
> + * http://oss.oracle.com/licenses/upl.
> + */
> +
> +/*
> + * ASSERTION: The -xbufsize option sets the trace buffer size.
> + *
> + * SECTION: Options and Tunables/Consumer Options
> + */
> +
> +/* @@runtest-opts: -xbufsize=-1 */
> +
> +BEGIN
> +{
> +	exit(0);
> +}
> +
> +ERROR
> +{
> +	exit(1);
> +}
> diff --git a/test/unittest/options/err.bufsize-negative.r b/test/unittest/options/err.bufsize-negative.r
> new file mode 100644
> index 00000000..ea3089e9
> --- /dev/null
> +++ b/test/unittest/options/err.bufsize-negative.r
> @@ -0,0 +1,2 @@
> +-- @@stderr --
> +dtrace: failed to set -x bufsize: Invalid value for specified option
> diff --git a/test/unittest/speculation/err.BufSizeVariations1.d b/test/unittest/speculation/err.BufSizeVariations1.d
> deleted file mode 100644
> index c6e29b78..00000000
> --- a/test/unittest/speculation/err.BufSizeVariations1.d
> +++ /dev/null
> @@ -1,67 +0,0 @@
> -/*
> - * Oracle Linux DTrace.
> - * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
> - * Licensed under the Universal Permissive License v 1.0 as shown at
> - * http://oss.oracle.com/licenses/upl.
> - */
> -
> -/*
> - * ASSERTION:
> - * Verify the behavior of variations in bufsize.
> - *
> - * SECTION: Speculative Tracing/Options and Tuning;
> - *	Options and Tunables/bufsize
> - *
> - * NOTES: This test behaves differently depending on the values
> - * assigned to bufsize.
> - * 1. 0 > bufsize.
> - * 2. 0 == bufsize.
> - * 3. 0 < bufsize <= 7
> - * 4. 8 <= bufsize <= 31
> - * 5. 32 <= bufsize <= 47
> - * 6. 48 <= bufsize <= 71
> - * 7. 72 <= bufsize
> - */
> -
> -#pragma D option quiet
> -#pragma D option bufsize=41
> -
> -BEGIN
> -{
> -	self->speculateFlag = 0;
> -	self->commitFlag = 0;
> -	self->spec = speculation();
> -	printf("Speculative buffer ID: %d\n", self->spec);
> -}
> -
> -BEGIN
> -{
> -	speculate(self->spec);
> -	printf("Lots of data\n");
> -	printf("Has to be crammed into this buffer\n");
> -	printf("Until it overflows\n");
> -	printf("And causes flops\n");
> -	self->speculateFlag++;
> -
> -}
> -
> -BEGIN
> -/1 <= self->speculateFlag/
> -{
> -	commit(self->spec);
> -	self->commitFlag++;
> -}
> -
> -BEGIN
> -/1 <= self->commitFlag/
> -{
> -	printf("Statement was executed\n");
> -	exit(0);
> -}
> -
> -BEGIN
> -/1 > self->commitFlag/
> -{
> -	printf("Statement wasn't executed\n");
> -	exit(1);
> -}
> diff --git a/test/unittest/speculation/err.BufSizeVariations2.d b/test/unittest/speculation/err.BufSizeVariations2.d
> deleted file mode 100644
> index 8094cd0b..00000000
> --- a/test/unittest/speculation/err.BufSizeVariations2.d
> +++ /dev/null
> @@ -1,67 +0,0 @@
> -/*
> - * Oracle Linux DTrace.
> - * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
> - * Licensed under the Universal Permissive License v 1.0 as shown at
> - * http://oss.oracle.com/licenses/upl.
> - */
> -
> -/*
> - * ASSERTION:
> - * Verify the behavior of variations in bufsize.
> - *
> - * SECTION: Speculative Tracing/Options and Tuning;
> - *	    Options and Tunables/bufsize
> - *
> - * NOTES: This test behaves differently depending on the values
> - * assigned to bufsize.
> - * 1. 0 > bufsize.
> - * 2. 0 == bufsize.
> - * 3. 0 < bufsize <= 7
> - * 4. 8 <= bufsize <= 31
> - * 5. 32 <= bufsize <= 47
> - * 6. 48 <= bufsize <= 71
> - * 7. 72 <= bufsize
> - */
> -
> -#pragma D option quiet
> -#pragma D option bufsize=4
> -
> -BEGIN
> -{
> -	self->speculateFlag = 0;
> -	self->commitFlag = 0;
> -	self->spec = speculation();
> -	printf("Speculative buffer ID: %d\n", self->spec);
> -}
> -
> -BEGIN
> -{
> -	speculate(self->spec);
> -	printf("Lots of data\n");
> -	printf("Has to be crammed into this buffer\n");
> -	printf("Until it overflows\n");
> -	printf("And causes flops\n");
> -	self->speculateFlag++;
> -
> -}
> -
> -BEGIN
> -/1 <= self->speculateFlag/
> -{
> -	commit(self->spec);
> -	self->commitFlag++;
> -}
> -
> -BEGIN
> -/1 <= self->commitFlag/
> -{
> -	printf("Statement was executed\n");
> -	exit(0);
> -}
> -
> -BEGIN
> -/1 > self->commitFlag/
> -{
> -	printf("Statement wasn't executed\n");
> -	exit(1);
> -}
> diff --git a/test/unittest/speculation/err.NegativeBufSize.d b/test/unittest/speculation/err.NegativeBufSize.d
> deleted file mode 100644
> index a0154ccb..00000000
> --- a/test/unittest/speculation/err.NegativeBufSize.d
> +++ /dev/null
> @@ -1,67 +0,0 @@
> -/*
> - * Oracle Linux DTrace.
> - * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
> - * Licensed under the Universal Permissive License v 1.0 as shown at
> - * http://oss.oracle.com/licenses/upl.
> - */
> -
> -/*
> - * ASSERTION:
> - * Verify the behavior of variations in bufsize.
> - *
> - * SECTION: Speculative Tracing/Options and Tuning;
> - *	Options and Tunables/bufsize
> - *
> - * NOTES: This test behaves differently depending on the values
> - * assigned to bufsize.
> - * 1. 0 > bufsize.
> - * 2. 0 == bufsize.
> - * 3. 0 < bufsize <= 7
> - * 4. 8 <= bufsize <= 31
> - * 5. 32 <= bufsize <= 47
> - * 6. 48 <= bufsize <= 71
> - * 7. 72 <= bufsize
> - */
> -
> -#pragma D option quiet
> -#pragma D option bufsize=-72
> -
> -BEGIN
> -{
> -	self->speculateFlag = 0;
> -	self->commitFlag = 0;
> -	self->spec = speculation();
> -	printf("Speculative buffer ID: %d\n", self->spec);
> -}
> -
> -BEGIN
> -{
> -	speculate(self->spec);
> -	printf("Lots of data\n");
> -	printf("Has to be crammed into this buffer\n");
> -	printf("Until it overflows\n");
> -	printf("And causes flops\n");
> -	self->speculateFlag++;
> -
> -}
> -
> -BEGIN
> -/1 <= self->speculateFlag/
> -{
> -	commit(self->spec);
> -	self->commitFlag++;
> -}
> -
> -BEGIN
> -/1 <= self->commitFlag/
> -{
> -	printf("Statement was executed\n");
> -	exit(0);
> -}
> -
> -BEGIN
> -/1 > self->commitFlag/
> -{
> -	printf("Statement wasn't executed\n");
> -	exit(1);
> -}
> diff --git a/test/unittest/speculation/err.NegativeBufSize.r b/test/unittest/speculation/err.NegativeBufSize.r
> deleted file mode 100644
> index 9d7be6c0..00000000
> --- a/test/unittest/speculation/err.NegativeBufSize.r
> +++ /dev/null
> @@ -1,2 +0,0 @@
> --- @@stderr --
> -dtrace: failed to compile script test/unittest/speculation/err.NegativeBufSize.d: line 27: failed to set option 'bufsize' to '-72': Invalid value for specified option
> -- 
> 2.43.5
> 



More information about the DTrace-devel mailing list