Re: [PATCH] test: Account for variations in error messages

Kris Van Hees <[email protected]>
Newsgroups dev.linux.lists.dtrace
Message-ID <aOaq+M6NZIDj/[email protected]>
On Tue, Oct 07, 2025 at 06:39:50PM -0400, [email protected] wrote:
> From: Eugene Loh <[email protected]>
> 
> Clearly,
>     test/unittest/enum/err.*RepeatIdentifiers.d
>     test/unittest/types/err.*dupenum.d
> are impacted, but so are
>     test/unittest/offsetof/err.D_UNKNOWN.OffsetofNULL.d
>     test/unittest/types/err.D_UNKNOWN.dupstruct.d
>     test/unittest/union/err.D_DECL_INCOMPLETE.circular.d
>     test/unittest/union/err.D_DECL_INCOMPLETE.order.d
>     test/unittest/union/err.D_DECL_INCOMPLETE.simple.d
> due to symlinks to libctf.r.p.  And dupstruct needed a fix.
> 
> Signed-off-by: Eugene Loh <[email protected]>

Sad that we need to do this, but...

Reviewed-by: Kris Van Hees <[email protected]>

> ---
>  .../enum/err.D_DECL_IDRED.RepeatIdentifiers.r |  2 --
>  ...tIdentifiers.d => err.RepeatIdentifiers.d} |  7 +++----
>  test/unittest/enum/err.RepeatIdentifiers.r    |  2 ++
>  ...ntifiers.r.p => err.RepeatIdentifiers.r.p} |  0
>  .../unittest/types/err.D_DECL_IDRED.dupenum.r |  2 --
>  ...r.D_DECL_IDRED.dupenum.d => err.dupenum.d} |  4 +++-
>  test/unittest/types/err.dupenum.r             |  2 ++
>  ...DECL_IDRED.dupenum.r.p => err.dupenum.r.p} |  0
>  test/utils/libctf.r.p                         | 19 +++++++++++++++++++
>  9 files changed, 29 insertions(+), 9 deletions(-)
>  delete mode 100644 test/unittest/enum/err.D_DECL_IDRED.RepeatIdentifiers.r
>  rename test/unittest/enum/{err.D_DECL_IDRED.RepeatIdentifiers.d => err.RepeatIdentifiers.d} (78%)
>  create mode 100644 test/unittest/enum/err.RepeatIdentifiers.r
>  rename test/unittest/enum/{err.D_DECL_IDRED.RepeatIdentifiers.r.p => err.RepeatIdentifiers.r.p} (100%)
>  delete mode 100644 test/unittest/types/err.D_DECL_IDRED.dupenum.r
>  rename test/unittest/types/{err.D_DECL_IDRED.dupenum.d => err.dupenum.d} (74%)
>  create mode 100644 test/unittest/types/err.dupenum.r
>  rename test/unittest/types/{err.D_DECL_IDRED.dupenum.r.p => err.dupenum.r.p} (100%)
> 
> diff --git a/test/unittest/enum/err.D_DECL_IDRED.RepeatIdentifiers.r b/test/unittest/enum/err.D_DECL_IDRED.RepeatIdentifiers.r
> deleted file mode 100644
> index 424d6b077..000000000
> --- a/test/unittest/enum/err.D_DECL_IDRED.RepeatIdentifiers.r
> +++ /dev/null
> @@ -1,2 +0,0 @@
> --- @@stderr --
> -dtrace: failed to compile script test/unittest/enum/err.D_DECL_IDRED.RepeatIdentifiers.d: [D_DECL_IDRED] line 24: identifier redeclared: GREEN
> diff --git a/test/unittest/enum/err.D_DECL_IDRED.RepeatIdentifiers.d b/test/unittest/enum/err.RepeatIdentifiers.d
> similarity index 78%
> rename from test/unittest/enum/err.D_DECL_IDRED.RepeatIdentifiers.d
> rename to test/unittest/enum/err.RepeatIdentifiers.d
> index 43837c78a..0dfd7b86c 100644
> --- a/test/unittest/enum/err.D_DECL_IDRED.RepeatIdentifiers.d
> +++ b/test/unittest/enum/err.RepeatIdentifiers.d
> @@ -1,6 +1,6 @@
>  /*
>   * Oracle Linux DTrace.
> - * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
> + * Copyright (c) 2006, 2025, 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.
>   */
> @@ -11,11 +11,10 @@
>   * error.
>   *
>   * SECTION: Type and Constant Definitions/Enumerations
> - *
> - * NOTES:
> - *
>   */
>  
> +/* @@runtest-opts: -xerrtags */
> +
>  #pragma D option quiet
>  
>  enum colors {
> diff --git a/test/unittest/enum/err.RepeatIdentifiers.r b/test/unittest/enum/err.RepeatIdentifiers.r
> new file mode 100644
> index 000000000..860ffb5c7
> --- /dev/null
> +++ b/test/unittest/enum/err.RepeatIdentifiers.r
> @@ -0,0 +1,2 @@
> +-- @@stderr --
> +dtrace: failed to compile script test/unittest/enum/err.RepeatIdentifiers.d: expected error
> diff --git a/test/unittest/enum/err.D_DECL_IDRED.RepeatIdentifiers.r.p b/test/unittest/enum/err.RepeatIdentifiers.r.p
> similarity index 100%
> rename from test/unittest/enum/err.D_DECL_IDRED.RepeatIdentifiers.r.p
> rename to test/unittest/enum/err.RepeatIdentifiers.r.p
> diff --git a/test/unittest/types/err.D_DECL_IDRED.dupenum.r b/test/unittest/types/err.D_DECL_IDRED.dupenum.r
> deleted file mode 100644
> index 0b6369e52..000000000
> --- a/test/unittest/types/err.D_DECL_IDRED.dupenum.r
> +++ /dev/null
> @@ -1,2 +0,0 @@
> --- @@stderr --
> -dtrace: failed to compile script test/unittest/types/err.D_DECL_IDRED.dupenum.d: [D_DECL_IDRED] line 18: identifier redeclared: x
> diff --git a/test/unittest/types/err.D_DECL_IDRED.dupenum.d b/test/unittest/types/err.dupenum.d
> similarity index 74%
> rename from test/unittest/types/err.D_DECL_IDRED.dupenum.d
> rename to test/unittest/types/err.dupenum.d
> index dfc74f250..22001e5d6 100644
> --- a/test/unittest/types/err.D_DECL_IDRED.dupenum.d
> +++ b/test/unittest/types/err.dupenum.d
> @@ -1,6 +1,6 @@
>  /*
>   * Oracle Linux DTrace.
> - * Copyright (c) 2006, Oracle and/or its affiliates. All rights reserved.
> + * Copyright (c) 2006, 2025, 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.
>   */
> @@ -12,6 +12,8 @@
>   * SECTION: Type and Constant Definitions/Enumerations
>   */
>  
> +/* @@runtest-opts: -xerrtags */
> +
>  enum foo {
>  	x = 3,
>  	x = 4
> diff --git a/test/unittest/types/err.dupenum.r b/test/unittest/types/err.dupenum.r
> new file mode 100644
> index 000000000..153985568
> --- /dev/null
> +++ b/test/unittest/types/err.dupenum.r
> @@ -0,0 +1,2 @@
> +-- @@stderr --
> +dtrace: failed to compile script test/unittest/types/err.dupenum.d: expected error
> diff --git a/test/unittest/types/err.D_DECL_IDRED.dupenum.r.p b/test/unittest/types/err.dupenum.r.p
> similarity index 100%
> rename from test/unittest/types/err.D_DECL_IDRED.dupenum.r.p
> rename to test/unittest/types/err.dupenum.r.p
> diff --git a/test/utils/libctf.r.p b/test/utils/libctf.r.p
> index a2b4602cf..c81e1b709 100755
> --- a/test/utils/libctf.r.p
> +++ b/test/utils/libctf.r.p
> @@ -1,7 +1,26 @@
>  #!/usr/bin/gawk -f
>  # Licensed under the Universal Permissive License v 1.0 as shown at
>  # http://oss.oracle.com/licenses/upl.
> +
> +# Possible "enumerator" label.
> +/Duplicate member, enumerator, or variable name/ {
> +    sub(/member, enumerator, or variable/, "member or variable");
> +}
> +
> +# Possible trailing '.'.
>  /Duplicate member or variable name\.$/ { sub(/\.$/, ""); }
>  /Member name not found\.$/ { sub(/\.$/, ""); }
> +
> +# Could be union or struct.
>  /enum union pirate:/ { sub(/enum union pirate/, "enum struct pirate"); }
> +
> +# Older or newer libctf diags.
> +/\[D_DECL_IDRED\] line [1-9][0-9]*: identifier redeclared: [a-zA-Z]*$/ {
> +    sub(/\[D_DECL_IDRED\] line [1-9][0-9]*: .*$/, "expected error");
> +}
> +/\[D_UNKNOWN\] line [1-9][0-9]*: failed to define enumerator '[a-zA-Z]*': Duplicate member or variable name$/ {
> +    sub(/\[D_UNKNOWN\] line [1-9][0-9]*: .*$/, "expected error");
> +}
> +
> +# Print.
>  { print; }
> -- 
> 2.47.3
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.