On Fri, 5 Apr 2024, Jakub Jelinek wrote:

> On Fri, Feb 23, 2024 at 12:18:00PM +0100, Jørgen Kvalsvik wrote:
> > This is a mostly straight port from the gcov-19.c tests from the C test
> > suite. The only notable differences from C to D are that D flips the
> > true/false outcomes for loop headers, and the D front end ties loop and
> > ternary conditions to slightly different locus.
> > 
> > The test for >64 conditions warning is disabled as it either needs
> > support from the testing framework or a something similar to #pragma GCC
> > diagnostic push to not cause a test failure from detecting a warning.
> > 
> > gcc/testsuite/ChangeLog:
> > 
> >     * gdc.dg/gcov.exp: New test.
> >     * gdc.dg/gcov1.d: New test.
> 
> Unfortunately, this doesn't work.
> I see
> PASS: gdc.dg/gcov1.d   execution test
> ERROR: (DejaGnu) proc "run-gcov conditions { --conditions gcov1.d }" does not 
> exist.
> The error code is TCL LOOKUP COMMAND run-gcov
> The info on the error is:
> invalid command name "run-gcov"
>     while executing
> "::tcl_unknown run-gcov conditions { --conditions gcov1.d }"
>     ("uplevel" body line 1)
>     invoked from within
> "uplevel 1 ::tcl_unknown $args"
> ERROR: gdc.dg/gcov1.d  : error executing dg-final: invalid command name 
> "run-gcov"
> both on x86_64-linux and i686-linux.
> The problem is that the test hasn't been added to a new directory, but
> to a directory already covered by a different *.exp file - dg.exp.
> Now, usually either one has a test directory like gcc.misc-tests where
> there are many *.exp files but each *.exp file globs for its own tests,
> or there is one *.exp per directory and covers everything in there.
> By having both dg.exp and gcov.exp in the same directory with dg.exp
> covering all *.d files in there and gcov gcov*.d in there, the gcov*.d
> tests are tested twice, once using the dg.exp driver and once using gcov.exp
> driver.  With the latter, they do work properly, with the former they don't
> because gcov.exp lib file isn't loaded and so run-gcov isn't available.
> 
> The following patch fixes that similarly how g++.dg/modules/modules.exp,
> gcc.target/s390/s390.exp or gcc.target/i386/i386.exp deal with that,
> by pruning some tests based on glob patterns from the list.
> 
> Tested on x86_64-linux with make -j32 check-d, ok for trunk?

OK.

Richard.

> 2024-04-05  Jakub Jelinek  <ja...@redhat.com>
> 
>       * gdc.dg/dg.exp: Prune gcov*.d from the list of tests to run.
>       * gdc.dg/gcov.exp: Update copyright years.
> 
> --- gcc/testsuite/gdc.dg/dg.exp.jj    2024-01-03 22:33:38.249693029 +0100
> +++ gcc/testsuite/gdc.dg/dg.exp       2024-04-05 10:20:13.518823037 +0200
> @@ -30,7 +30,8 @@ dg-init
>  
>  # Main loop.
>  gdc-dg-runtest [lsort \
> -       [glob -nocomplain $srcdir/$subdir/*.d ] ] "" $DEFAULT_DFLAGS
> +       [prune [glob -nocomplain $srcdir/$subdir/*.d ] \
> +           $srcdir/$subdir/gcov*.d ] ] "" $DEFAULT_DFLAGS
>  
>  # All done.
>  dg-finish
> --- gcc/testsuite/gdc.dg/gcov.exp.jj  2024-04-04 21:45:56.025155257 +0200
> +++ gcc/testsuite/gdc.dg/gcov.exp     2024-04-05 10:20:23.678682559 +0200
> @@ -1,4 +1,4 @@
> -#   Copyright (C) 1997-2023 Free Software Foundation, Inc.
> +#   Copyright (C) 1997-2024 Free Software Foundation, Inc.
>  
>  # This program is free software; you can redistribute it and/or modify
>  # it under the terms of the GNU General Public License as published by
> 
>       Jakub
> 
> 

-- 
Richard Biener <rguent...@suse.de>
SUSE Software Solutions Germany GmbH,
Frankenstrasse 146, 90461 Nuernberg, Germany;
GF: Ivo Totev, Andrew McDonald, Werner Knoblich; (HRB 36809, AG Nuernberg)

Reply via email to