Message ID | Z9RIiXPkywRwi9aD@tucnak |
---|---|
State | New |
Headers | show |
Series | cobol: Don't run cobol tests with -m32 or -mx32 [PR119290] | expand |
> Am 14.03.2025 um 16:19 schrieb Jakub Jelinek <jakub@redhat.com>: > > Hi! > > The following patch adds cobol effective target and uses it to guard main > loop in cobol.dg/dg.exp, so that we don't run the tests on unsupported > multilibs. > > Tested on x86_64-linux with > make check-cobol RUNTESTFLAGS='--target_board=unix\{-m32,-m64\} dg.exp' > which previously had all FAILs in the -m32 case and now doesn't report > any PASSes/FAILs/XFAILs/XPASSes etc, while for -m64 the testsuite is run > normally. > > Ok for trunk? Ok Thanks, Richard > 2025-03-14 Jakub Jelinek <jakub@redhat.com> > > PR cobol/119290 > * lib/target-supports.exp (check_compile): Use *.cob extension for > "*> COBOL" comment. > * lib/cobol-dg.exp (check_effective_target_cobol): New procedure. > * cobol.dg/dg.exp: Guard main loop with [check_effective_target_cobol] > test. > > --- gcc/testsuite/lib/target-supports.exp.jj 2025-03-11 18:35:10.585437197 +0100 > +++ gcc/testsuite/lib/target-supports.exp 2025-03-14 16:10:31.502112001 +0100 > @@ -38,6 +38,7 @@ > # "// ObjC++" for ObjC++ > # "// Go" for Go > # "// Rust" for Rust > +# "*> COBOL" for COBOL > # and "(* Modula-2" for Modula-2 > # If the tool is ObjC/ObjC++ then we overide the extension to .m/.mm to > # allow for ObjC/ObjC++ specific flags. > @@ -72,6 +73,7 @@ proc check_compile {basename type conten > "*/\\* ObjC*" { set src ${basename}[pid].m } > "*// Go*" { set src ${basename}[pid].go } > "*// Rust*" { set src ${basename}[pid].rs } > + "*\\*> COBOL*" { set src ${basename}[pid].cob } > "*(\\* Modula-2*" { set src ${basename}[pid].mod } > default { > switch -- $tool { > --- gcc/testsuite/lib/cobol-dg.exp.jj 2025-03-12 21:56:44.255767086 +0100 > +++ gcc/testsuite/lib/cobol-dg.exp 2025-03-14 16:10:53.183816106 +0100 > @@ -83,3 +83,14 @@ proc cobol-dg-runtest { testcases flags > torture-finish > } > } > + > +proc check_effective_target_cobol {} { > + # Check if the COBOL FE can compile trivial programs. > + return [check_no_compiler_messages cobol assembly { > +*> COBOL > +IDENTIFICATION DIVISION. > +PROGRAM-ID. pass. > +PROCEDURE DIVISION. > + STOP RUN. > + }] > +} > --- gcc/testsuite/cobol.dg/dg.exp.jj 2025-03-12 21:56:44.252767127 +0100 > +++ gcc/testsuite/cobol.dg/dg.exp 2025-03-14 16:05:47.315990276 +0100 > @@ -34,8 +34,10 @@ set cobol_test_path $srcdir/$subdir > set all_flags $DEFAULT_COBFLAGS > > # Main loop. > -cobol-dg-runtest [lsort \ > +if [check_effective_target_cobol] { > + cobol-dg-runtest [lsort \ > [glob -nocomplain $srcdir/$subdir/*.cob ] ] "" $all_flags > +} > > # All done. > dg-finish > > Jakub >
--- gcc/testsuite/lib/target-supports.exp.jj 2025-03-11 18:35:10.585437197 +0100 +++ gcc/testsuite/lib/target-supports.exp 2025-03-14 16:10:31.502112001 +0100 @@ -38,6 +38,7 @@ # "// ObjC++" for ObjC++ # "// Go" for Go # "// Rust" for Rust +# "*> COBOL" for COBOL # and "(* Modula-2" for Modula-2 # If the tool is ObjC/ObjC++ then we overide the extension to .m/.mm to # allow for ObjC/ObjC++ specific flags. @@ -72,6 +73,7 @@ proc check_compile {basename type conten "*/\\* ObjC*" { set src ${basename}[pid].m } "*// Go*" { set src ${basename}[pid].go } "*// Rust*" { set src ${basename}[pid].rs } + "*\\*> COBOL*" { set src ${basename}[pid].cob } "*(\\* Modula-2*" { set src ${basename}[pid].mod } default { switch -- $tool { --- gcc/testsuite/lib/cobol-dg.exp.jj 2025-03-12 21:56:44.255767086 +0100 +++ gcc/testsuite/lib/cobol-dg.exp 2025-03-14 16:10:53.183816106 +0100 @@ -83,3 +83,14 @@ proc cobol-dg-runtest { testcases flags torture-finish } } + +proc check_effective_target_cobol {} { + # Check if the COBOL FE can compile trivial programs. + return [check_no_compiler_messages cobol assembly { +*> COBOL +IDENTIFICATION DIVISION. +PROGRAM-ID. pass. +PROCEDURE DIVISION. + STOP RUN. + }] +} --- gcc/testsuite/cobol.dg/dg.exp.jj 2025-03-12 21:56:44.252767127 +0100 +++ gcc/testsuite/cobol.dg/dg.exp 2025-03-14 16:05:47.315990276 +0100 @@ -34,8 +34,10 @@ set cobol_test_path $srcdir/$subdir set all_flags $DEFAULT_COBFLAGS # Main loop. -cobol-dg-runtest [lsort \ +if [check_effective_target_cobol] { + cobol-dg-runtest [lsort \ [glob -nocomplain $srcdir/$subdir/*.cob ] ] "" $all_flags +} # All done. dg-finish