On 3/25/24 3:30 PM, Harald Anlauf wrote:
On 3/25/24 12:53 PM, Harald Anlauf wrote:
I noticed by chance that we have quite a lot of improperly specified do-do
directives in the testsuite.

% grep "dg-do  run" gcc/testsuite/gfortran.dg/ -rl|wc -l
83


I think this is on purpose.
The idea to use a "feature" in dejagnu to only iterate once and not
over all possible options. So execution time can be lowered a bit.

But I don't know if this hack still works, it definitely did work some years 
ago.

Cheers,
Manfred

Is this "feature" documented somewhere?  I don't see it on

https://gcc.gnu.org/onlinedocs/gcc-13.2.0/gccint/Directives.html

Given that the dg-directives are important and possibly fragile,
and since we had issues in the past, can we check that a test
that was added works the way intended?

Note that with two blanks instead of just one a testcase does not get executed.

Does anybody want to earn the honors to change the directives and
check for "fallout" in the testsuite?

Cheers,
Harald


One failure after fixing all the spaces ( sed is our friend ).

FAIL: gfortran.dg/inline_matmul_1.f90   -O0   scan-tree-dump-times optimized 
"_gfortran_matmul" 0

This does actually point to an issue with the testcase:
it only works properly with optimization enabled.

Manual inspection of this test and the expected dump suggests
that e.g. -O1 could have been added to the dg-options directive.

Shouldn't we fix at least the dg-options of that testcase?

Cheers,
Harald


I restored the one test that appeared to fail so that it had the two
spaces 'trick'.  When run in the test suite, it is compiled with -O
which does invoke the optimization.  I manually checked the tree dump
with this option and it indeed has all the _gfortran_matmul calls removed.

I am inclined to leave these all untouched with the two spaces in place.

  From the test log:

PASS: gfortran.dg/inline_matmul_1.f90   -O  execution test
PASS: gfortran.dg/inline_matmul_1.f90   -O   scan-tree-dump-times
optimized "_gfortran_matmul" 0

Alright, then leave it that way.

I find it somewhat unsatisfactory though, to have a behavior of the
testsuite harness that is so intranparent.

If it is a simple oversight that the behavior of double space was
never documented, it could simply be fixed, for the sake of everybody.

The take-home message for me is - whenever I write a testcase that
relies on this behavior - to add a comment in the header that this
is intended behavior, and set all compiler flags appropriately...

Cheers,
Harald



With two spaces there are 9 tests run at -O, with one space there are 54 variations executed. Specifying the optimization option in the dg-options also runs 54 variations. It appears that the "feature" was done on purpose, but it is frustrating that this is not documented anywhere.

I do remember discussions way back about some tests taking a long time to run and needing a way to speed up the overall testing. I will look over the documentation and see if we can get this addressed.

For my own test cases, I have always specified the options I want and for front-end work, optimizations don't usually matter except in this case. I don't have time to go through all 83 tests.

From my system here:

Testing of trunk complete..... one space

real    4m56.294s
user    35m51.082s
sys     12m51.283s


Testing of trunk complete..... two spaces

real    4m44.421s
user    34m3.215s
sys     12m38.778s

Not a huge difference.

Jerry


Reply via email to