ping?

On Tue, 1 Apr 2025 at 22:37, Christophe Lyon <christophe.l...@linaro.org> wrote:
>
> After commit r15-8947-g8ed2d5d219e999, which added new tests using
> gcov, the CI noticed failures because it was calling 'gcov' instead of
> $target-gcov.
>
> This is because the CI scripts override GXX_UNDER_TEST, but still run
> the testsuite in-tree, and gcc-transform-out-of-tree only depends on
> TESTING_IN_BUILD_TREE but the definition of GCOV uses GCC_UNDER_TEST,
> GXX_UNDER_TEST or GDC_UNDER_TEST (assuming their default values when
> TESTING_IN_BUILD_TREE).
>
> To handle such a case, this patch adds support for a new variable,
> GCOV_UNDER_TEST, which overrides the current behavior if defined, and
> has an effect similar to overriding GCC_UNDER_TEST etc...
>
> Unfortunately, the change needs to be duplicated in several places,
> which use either GCC_UNDER_TEST, GXX_UNDER_TEST or GDC_UNDER_TEST.
>
> Tested g++.dg/gcov/gcov.exp and now g++.dg/gcov/gcov-22.C passes
> (calling <installdir>/bin/$target-gcov as instructed by the CI
> scripts).  No change observed on gcc.misc-tests/gcov.exp, and I could
> not test gdc.dg/gcov.exp and gnat.dg/gcov/gcov.exp.
>
> gcc/testsuite/ChangeLog:
>
>         * g++.dg/gcov/gcov.exp: Handle GCOV_UNDER_TEST.
>         * gcc.misc-tests/gcov.exp: Likewise.
>         * gdc.dg/gcov.exp: Likewise.
>         * gnat.dg/gcov/gcov.exp: Likewise.
> ---
>  gcc/testsuite/g++.dg/gcov/gcov.exp    | 15 +++++++++++----
>  gcc/testsuite/gcc.misc-tests/gcov.exp | 15 +++++++++++----
>  gcc/testsuite/gdc.dg/gcov.exp         | 15 +++++++++++----
>  gcc/testsuite/gnat.dg/gcov/gcov.exp   | 15 +++++++++++----
>  4 files changed, 44 insertions(+), 16 deletions(-)
>
> diff --git a/gcc/testsuite/g++.dg/gcov/gcov.exp 
> b/gcc/testsuite/g++.dg/gcov/gcov.exp
> index 50f60c4a011..d85bf125d16 100644
> --- a/gcc/testsuite/g++.dg/gcov/gcov.exp
> +++ b/gcc/testsuite/g++.dg/gcov/gcov.exp
> @@ -21,12 +21,19 @@ load_lib g++-dg.exp
>  load_lib gcov.exp
>
>  global GXX_UNDER_TEST
> +global GCOV_UNDER_TEST
>
> -# Find gcov in the same directory as $GXX_UNDER_TEST.
> -if { ![is_remote host] && [string match "*/*" [lindex $GXX_UNDER_TEST 0]] } {
> -    set GCOV [file dirname [lindex $GXX_UNDER_TEST 
> 0]]/[gcc-transform-out-of-tree gcov]
> +# Find gcov in the same directory as $GXX_UNDER_TEST. under
> +# GCOV_UNDER_TEST is defined.
> +
> +if ![info exists GCOV_UNDER_TEST] {
> +    if { ![is_remote host] && [string match "*/*" [lindex $GXX_UNDER_TEST 
> 0]] } {
> +       set GCOV [file dirname [lindex $GXX_UNDER_TEST 
> 0]]/[gcc-transform-out-of-tree gcov]
> +    } else {
> +       set GCOV [gcc-transform-out-of-tree gcov]
> +    }
>  } else {
> -    set GCOV [gcc-transform-out-of-tree gcov]
> +    set GCOV $GCOV_UNDER_TEST
>  }
>
>  # Initialize harness.
> diff --git a/gcc/testsuite/gcc.misc-tests/gcov.exp 
> b/gcc/testsuite/gcc.misc-tests/gcov.exp
> index c8f20e1e70e..4278b625c0b 100644
> --- a/gcc/testsuite/gcc.misc-tests/gcov.exp
> +++ b/gcc/testsuite/gcc.misc-tests/gcov.exp
> @@ -21,12 +21,19 @@ load_lib gcc-dg.exp
>  load_lib gcov.exp
>
>  global GCC_UNDER_TEST
> +global GCOV_UNDER_TEST
>
> -# For now find gcov in the same directory as $GCC_UNDER_TEST.
> -if { ![is_remote host] && [string match "*/*" [lindex $GCC_UNDER_TEST 0]] } {
> -    set GCOV [file dirname [lindex $GCC_UNDER_TEST 
> 0]]/[gcc-transform-out-of-tree gcov]
> +# For now find gcov in the same directory as $GCC_UNDER_TEST, unless
> +# GCOV_UNDER_TEST is defined..
> +
> +if ![info exists GCOV_UNDER_TEST] {
> +    if { ![is_remote host] && [string match "*/*" [lindex $GCC_UNDER_TEST 
> 0]] } {
> +       set GCOV [file dirname [lindex $GCC_UNDER_TEST 
> 0]]/[gcc-transform-out-of-tree gcov]
> +    } else {
> +       set GCOV [gcc-transform-out-of-tree gcov]
> +    }
>  } else {
> -    set GCOV [gcc-transform-out-of-tree gcov]
> +    set GCOV $GCOV_UNDER_TEST
>  }
>
>  # Initialize harness.
> diff --git a/gcc/testsuite/gdc.dg/gcov.exp b/gcc/testsuite/gdc.dg/gcov.exp
> index a65d0000d34..3f0234e9f2f 100644
> --- a/gcc/testsuite/gdc.dg/gcov.exp
> +++ b/gcc/testsuite/gdc.dg/gcov.exp
> @@ -21,12 +21,19 @@ load_lib gdc-dg.exp
>  load_lib gcov.exp
>
>  global GDC_UNDER_TEST
> +global GCOV_UNDER_TEST
>
> -# For now find gcov in the same directory as $GDC_UNDER_TEST.
> -if { ![is_remote host] && [string match "*/*" [lindex $GDC_UNDER_TEST 0]] } {
> -    set GCOV [file dirname [lindex $GDC_UNDER_TEST 
> 0]]/[gcc-transform-out-of-tree gcov]
> +# For now find gcov in the same directory as $GDC_UNDER_TEST, unless
> +# GCOV_UNDER_TEST is defined.
> +
> +if ![info exists GCOV_UNDER_TEST] {
> +    if { ![is_remote host] && [string match "*/*" [lindex $GDC_UNDER_TEST 
> 0]] } {
> +       set GCOV [file dirname [lindex $GDC_UNDER_TEST 
> 0]]/[gcc-transform-out-of-tree gcov]
> +    } else {
> +       set GCOV [gcc-transform-out-of-tree gcov]
> +    }
>  } else {
> -    set GCOV [gcc-transform-out-of-tree gcov]
> +    set GCOV $GCOV_UNDER_TEST
>  }
>
>  # Initialize harness.
> diff --git a/gcc/testsuite/gnat.dg/gcov/gcov.exp 
> b/gcc/testsuite/gnat.dg/gcov/gcov.exp
> index 4fa887d5bad..d5977a85e8a 100644
> --- a/gcc/testsuite/gnat.dg/gcov/gcov.exp
> +++ b/gcc/testsuite/gnat.dg/gcov/gcov.exp
> @@ -21,12 +21,19 @@ load_lib gnat-dg.exp
>  load_lib gcov.exp
>
>  global GCC_UNDER_TEST
> +global GCOV_UNDER_TEST
>
> -# For now find gcov in the same directory as $GCC_UNDER_TEST.
> -if { ![is_remote host] && [string match "*/*" [lindex $GCC_UNDER_TEST 0]] } {
> -    set GCOV [file dirname [lindex $GCC_UNDER_TEST 0]]/gcov
> +# For now find gcov in the same directory as $GCC_UNDER_TEST, unless
> +# GCOV_UNDER_TEST is defined..
> +
> +if ![info exists GCOV_UNDER_TEST] {
> +    if { ![is_remote host] && [string match "*/*" [lindex $GCC_UNDER_TEST 
> 0]] } {
> +       set GCOV [file dirname [lindex $GCC_UNDER_TEST 0]]/gcov
> +    } else {
> +       set GCOV gcov
> +    }
>  } else {
> -    set GCOV gcov
> +    set GCOV $GCOV_UNDER_TEST
>  }
>
>  # Initialize harness.
> --
> 2.34.1
>

Reply via email to