[DTrace-devel] [PATCH] test: Clean up flowindent test
Kris Van Hees
kris.van.hees at oracle.com
Thu Feb 22 19:59:03 UTC 2024
On Tue, Feb 20, 2024 at 05:43:27PM -0500, eugene.loh--- via DTrace-devel wrote:
> From: Eugene Loh <eugene.loh at oracle.com>
>
> The flowindent test was marked XFAIL, claiming that
> "flowindent is broken," but arguably the situation is more
> nuanced than that.
>
> The flowindent formatting is perhaps always going to be not completely
> robust. Each call to dt_consume_cpu() resets flowindent state. This
> is "necessarily" so, since data from different CPUs can be very difficult
> (for multiple reasons) to interweave in any sensible fashion.
>
> Therefore, adapt the test to jump less between CPUs. For example,
> trace only the target process: /pid == $target/.
>
> Further, improve the chances of a CPU finishing writing to its
> buffer before the consumer tries to read the buffer. E.g., employ
> a switchrate: -xswitchrate=1s. Since this consumer throttling
> takes a moment to kick in, do not worry about the first few probe
> firings -- see tst.flowindent.r.p.
>
> While we're at it, remove the unneeded tick probes.
>
> Finally, not only update the .r results file, but also add such a
> file for aarch64.
>
> Signed-off-by: Eugene Loh <eugene.loh at oracle.com>
Reviewed-by: Kris Van Hees <kris.van.hees at oracle.com>
> ---
> .../unittest/options/tst.flowindent.aarch64.r | 160 ++++++++++++++++++
> test/unittest/options/tst.flowindent.d | 22 +--
> test/unittest/options/tst.flowindent.r | 44 -----
> test/unittest/options/tst.flowindent.r.p | 7 +
> test/unittest/options/tst.flowindent.x86_64.r | 160 ++++++++++++++++++
> 5 files changed, 331 insertions(+), 62 deletions(-)
> create mode 100644 test/unittest/options/tst.flowindent.aarch64.r
> delete mode 100644 test/unittest/options/tst.flowindent.r
> create mode 100755 test/unittest/options/tst.flowindent.r.p
> create mode 100644 test/unittest/options/tst.flowindent.x86_64.r
>
> diff --git a/test/unittest/options/tst.flowindent.aarch64.r b/test/unittest/options/tst.flowindent.aarch64.r
> new file mode 100644
> index 00000000..7e745280
> --- /dev/null
> +++ b/test/unittest/options/tst.flowindent.aarch64.r
> @@ -0,0 +1,160 @@
> + => read syscall: 40
> +
> + -> __arm64_sys_read fbt: 40
> +
> + <- __arm64_sys_read fbt: 41
> +
> + <= read syscall: 41
> +
> + => read syscall: 42
> +
> + -> __arm64_sys_read fbt: 42
> +
> + <- __arm64_sys_read fbt: 43
> +
> + <= read syscall: 43
> +
> + => read syscall: 44
> +
> + -> __arm64_sys_read fbt: 44
> +
> + <- __arm64_sys_read fbt: 45
> +
> + <= read syscall: 45
> +
> + => read syscall: 46
> +
> + -> __arm64_sys_read fbt: 46
> +
> + <- __arm64_sys_read fbt: 47
> +
> + <= read syscall: 47
> +
> + => read syscall: 48
> +
> + -> __arm64_sys_read fbt: 48
> +
> + <- __arm64_sys_read fbt: 49
> +
> + <= read syscall: 49
> +
> + => read syscall: 50
> +
> + -> __arm64_sys_read fbt: 50
> +
> + <- __arm64_sys_read fbt: 51
> +
> + <= read syscall: 51
> +
> + => read syscall: 52
> +
> + -> __arm64_sys_read fbt: 52
> +
> + <- __arm64_sys_read fbt: 53
> +
> + <= read syscall: 53
> +
> + => read syscall: 54
> +
> + -> __arm64_sys_read fbt: 54
> +
> + <- __arm64_sys_read fbt: 55
> +
> + <= read syscall: 55
> +
> + => read syscall: 56
> +
> + -> __arm64_sys_read fbt: 56
> +
> + <- __arm64_sys_read fbt: 57
> +
> + <= read syscall: 57
> +
> + => read syscall: 58
> +
> + -> __arm64_sys_read fbt: 58
> +
> + <- __arm64_sys_read fbt: 59
> +
> + <= read syscall: 59
> +
> + => read syscall: 60
> +
> + -> __arm64_sys_read fbt: 60
> +
> + <- __arm64_sys_read fbt: 61
> +
> + <= read syscall: 61
> +
> + => read syscall: 62
> +
> + -> __arm64_sys_read fbt: 62
> +
> + <- __arm64_sys_read fbt: 63
> +
> + <= read syscall: 63
> +
> + => read syscall: 64
> +
> + -> __arm64_sys_read fbt: 64
> +
> + <- __arm64_sys_read fbt: 65
> +
> + <= read syscall: 65
> +
> + => read syscall: 66
> +
> + -> __arm64_sys_read fbt: 66
> +
> + <- __arm64_sys_read fbt: 67
> +
> + <= read syscall: 67
> +
> + => read syscall: 68
> +
> + -> __arm64_sys_read fbt: 68
> +
> + <- __arm64_sys_read fbt: 69
> +
> + <= read syscall: 69
> +
> + => read syscall: 70
> +
> + -> __arm64_sys_read fbt: 70
> +
> + <- __arm64_sys_read fbt: 71
> +
> + <= read syscall: 71
> +
> + => read syscall: 72
> +
> + -> __arm64_sys_read fbt: 72
> +
> + <- __arm64_sys_read fbt: 73
> +
> + <= read syscall: 73
> +
> + => read syscall: 74
> +
> + -> __arm64_sys_read fbt: 74
> +
> + <- __arm64_sys_read fbt: 75
> +
> + <= read syscall: 75
> +
> + => read syscall: 76
> +
> + -> __arm64_sys_read fbt: 76
> +
> + <- __arm64_sys_read fbt: 77
> +
> + <= read syscall: 77
> +
> + => read syscall: 78
> +
> + -> __arm64_sys_read fbt: 78
> +
> + <- __arm64_sys_read fbt: 79
> +
> + <= read syscall: 79
> +
> diff --git a/test/unittest/options/tst.flowindent.d b/test/unittest/options/tst.flowindent.d
> index 8f8c2102..1ce1e26f 100644
> --- a/test/unittest/options/tst.flowindent.d
> +++ b/test/unittest/options/tst.flowindent.d
> @@ -1,10 +1,9 @@
> /*
> * Oracle Linux DTrace.
> - * Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved.
> + * Copyright (c) 2022, 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.
> */
> -/* @@xfail: flowindent is broken */
>
> /*
> * ASSERTION: The -xflowindent option enables entry/return matching output.
> @@ -12,7 +11,7 @@
> * SECTION: Options and Tunables/Consumer Options
> */
>
> -/* @@runtest-opts: -xflowindent -Z */
> +/* @@runtest-opts: -xflowindent -Z -xswitchrate=1s */
> /* @@timeout: 15 */
> /* @@trigger: readwholedir */
>
> @@ -20,11 +19,10 @@ BEGIN
> {
> i = 0;
> j = 0;
> - k = 0;
> }
>
> syscall::read:
> -/i < 10/
> +/pid == $target/
> {
> printf("syscall: %d\n", i++);
> }
> @@ -32,19 +30,7 @@ syscall::read:
> fbt:vmlinux:SyS_read:,
> fbt:vmlinux:__arm64_sys_read:,
> fbt:vmlinux:__x64_sys_read:
> -/j < 10/
> +/pid == $target/
> {
> printf("fbt: %d\n", j++);
> }
> -
> -profile:::tick-1sec
> -/k < 4/
> -{
> - printf("profile: %d\n", k++);
> -}
> -
> -profile:::tick-10sec
> -/i > 9 && j > 9 && k > 3/
> -{
> - exit(0);
> -}
> diff --git a/test/unittest/options/tst.flowindent.r b/test/unittest/options/tst.flowindent.r
> deleted file mode 100644
> index aae92b2e..00000000
> --- a/test/unittest/options/tst.flowindent.r
> +++ /dev/null
> @@ -1,44 +0,0 @@
> -FUNCTION
> - => read syscall: 0
> -
> - -> __x64_sys_read fbt: 0
> -
> - <- __x64_sys_read fbt: 1
> -
> - <= read syscall: 1
> -
> - => read syscall: 2
> -
> - -> __x64_sys_read fbt: 2
> -
> - <- __x64_sys_read fbt: 3
> -
> - <= read syscall: 3
> -
> - => read syscall: 4
> -
> - -> __x64_sys_read fbt: 4
> -
> - <- __x64_sys_read fbt: 5
> -
> - <= read syscall: 5
> -
> - => read syscall: 6
> -
> - -> __x64_sys_read fbt: 6
> -
> - <- __x64_sys_read fbt: 7
> -
> - <= read syscall: 7
> -
> - => read syscall: 8
> -
> - -> __x64_sys_read fbt: 8
> -
> - <- __x64_sys_read fbt: 9
> -
> - <= read syscall: 9
> -
> -
> --- @@stderr --
> -dtrace: script 'test/unittest/options/tst.flowindent.d' matched 7 probes
> diff --git a/test/unittest/options/tst.flowindent.r.p b/test/unittest/options/tst.flowindent.r.p
> new file mode 100755
> index 00000000..1c648960
> --- /dev/null
> +++ b/test/unittest/options/tst.flowindent.r.p
> @@ -0,0 +1,7 @@
> +#!/usr/bin/gawk -f
> +
> +# Report only from 40 to 80.
> +BEGIN { report = 0 }
> +$NF == 40 { report = 1 }
> +$NF == 80 { report = 0 }
> +report == 1 { print }
> diff --git a/test/unittest/options/tst.flowindent.x86_64.r b/test/unittest/options/tst.flowindent.x86_64.r
> new file mode 100644
> index 00000000..53800726
> --- /dev/null
> +++ b/test/unittest/options/tst.flowindent.x86_64.r
> @@ -0,0 +1,160 @@
> + => read syscall: 40
> +
> + -> __x64_sys_read fbt: 40
> +
> + <- __x64_sys_read fbt: 41
> +
> + <= read syscall: 41
> +
> + => read syscall: 42
> +
> + -> __x64_sys_read fbt: 42
> +
> + <- __x64_sys_read fbt: 43
> +
> + <= read syscall: 43
> +
> + => read syscall: 44
> +
> + -> __x64_sys_read fbt: 44
> +
> + <- __x64_sys_read fbt: 45
> +
> + <= read syscall: 45
> +
> + => read syscall: 46
> +
> + -> __x64_sys_read fbt: 46
> +
> + <- __x64_sys_read fbt: 47
> +
> + <= read syscall: 47
> +
> + => read syscall: 48
> +
> + -> __x64_sys_read fbt: 48
> +
> + <- __x64_sys_read fbt: 49
> +
> + <= read syscall: 49
> +
> + => read syscall: 50
> +
> + -> __x64_sys_read fbt: 50
> +
> + <- __x64_sys_read fbt: 51
> +
> + <= read syscall: 51
> +
> + => read syscall: 52
> +
> + -> __x64_sys_read fbt: 52
> +
> + <- __x64_sys_read fbt: 53
> +
> + <= read syscall: 53
> +
> + => read syscall: 54
> +
> + -> __x64_sys_read fbt: 54
> +
> + <- __x64_sys_read fbt: 55
> +
> + <= read syscall: 55
> +
> + => read syscall: 56
> +
> + -> __x64_sys_read fbt: 56
> +
> + <- __x64_sys_read fbt: 57
> +
> + <= read syscall: 57
> +
> + => read syscall: 58
> +
> + -> __x64_sys_read fbt: 58
> +
> + <- __x64_sys_read fbt: 59
> +
> + <= read syscall: 59
> +
> + => read syscall: 60
> +
> + -> __x64_sys_read fbt: 60
> +
> + <- __x64_sys_read fbt: 61
> +
> + <= read syscall: 61
> +
> + => read syscall: 62
> +
> + -> __x64_sys_read fbt: 62
> +
> + <- __x64_sys_read fbt: 63
> +
> + <= read syscall: 63
> +
> + => read syscall: 64
> +
> + -> __x64_sys_read fbt: 64
> +
> + <- __x64_sys_read fbt: 65
> +
> + <= read syscall: 65
> +
> + => read syscall: 66
> +
> + -> __x64_sys_read fbt: 66
> +
> + <- __x64_sys_read fbt: 67
> +
> + <= read syscall: 67
> +
> + => read syscall: 68
> +
> + -> __x64_sys_read fbt: 68
> +
> + <- __x64_sys_read fbt: 69
> +
> + <= read syscall: 69
> +
> + => read syscall: 70
> +
> + -> __x64_sys_read fbt: 70
> +
> + <- __x64_sys_read fbt: 71
> +
> + <= read syscall: 71
> +
> + => read syscall: 72
> +
> + -> __x64_sys_read fbt: 72
> +
> + <- __x64_sys_read fbt: 73
> +
> + <= read syscall: 73
> +
> + => read syscall: 74
> +
> + -> __x64_sys_read fbt: 74
> +
> + <- __x64_sys_read fbt: 75
> +
> + <= read syscall: 75
> +
> + => read syscall: 76
> +
> + -> __x64_sys_read fbt: 76
> +
> + <- __x64_sys_read fbt: 77
> +
> + <= read syscall: 77
> +
> + => read syscall: 78
> +
> + -> __x64_sys_read fbt: 78
> +
> + <- __x64_sys_read fbt: 79
> +
> + <= read syscall: 79
> +
> --
> 2.18.4
>
>
> _______________________________________________
> DTrace-devel mailing list
> DTrace-devel at oss.oracle.com
> https://oss.oracle.com/mailman/listinfo/dtrace-devel
More information about the DTrace-devel
mailing list