> -----Original Message----- > From: Jakub Jelinek <ja...@redhat.com> > Sent: Saturday, March 15, 2025 13:38 > To: Robert Dubner <rdub...@symas.com> > Cc: GCC Mailing List <gcc@gcc.gnu.org>; James K. Lowden > <jklow...@schemamania.org>; Richard Biener <richard.guent...@gmail.com> > Subject: Re: COBOL test cases > > On Sat, Mar 15, 2025 at 12:20:14PM -0500, Robert Dubner wrote: > > Details. Easy-peasy. I'll probably create some python scripts for > > doing it in a more general way for my directory structures, where each > > test is in its own directory. > > > > And then for UAT I'll have to extract both the source code and > > expected results from the .AT files. That'll just be tedious, not hard. > > > > Additional issue, although it'll definitely be done later: > > > > I don't see any way of separately compiling two source modules and > > linking them together. I have a number of test cases involving > > linking together produced-from-c.o and produced-from-cobol.o modules, > > because I am testing whether they can link properly. And there are > > issues of cobol-to-cobol linking, since slightly different things > > happen when calling another program in a module, and calling one > compiled separately. > > > > Is there some way of doing that? > > Yes. See e.g. gcc/testsuite/gcc.dg/pr102892-{1,2}.c. > In one file you add > *> { dg-additional-sources "something-2.cob" } and in the other either *> > { dg-do compile } or even arrange for it to be skipped altogether. > When compiling the first test, it will just use dg-options from it and add > both the first and second test on the same command line. > The pr102892-1.c is in particular just dg-do link test (so it compiles and > links, but doesn't execute), so in testsuite/gcc/gcc.log then one can see > Executing on host: /home/jakub/src/gcc/obj36/gcc/xgcc - > B/home/jakub/src/gcc/obj36/gcc/ > /home/jakub/src/gcc/gcc/testsuite/gcc.dg/pr102892-1.c -fdiagnostics- > plain-output -O3 /home/jakub/src/gcc/gcc/testsuite/gcc.dg/pr102892-2.c > -dumpbase "" -lm -o pr102892-1.exe (timeout = 300) > spawn -ignore SIGHUP /home/jakub/src/gcc/obj36/gcc/xgcc - > B/home/jakub/src/gcc/obj36/gcc/ > /home/jakub/src/gcc/gcc/testsuite/gcc.dg/pr102892-1.c -fdiagnostics-plain- > output -O3 /home/jakub/src/gcc/gcc/testsuite/gcc.dg/pr102892-2.c -dumpbase > -lm -o pr102892-1.exe > PASS: gcc.dg/pr102892-1.c (test for excess errors) > Executing on host: /home/jakub/src/gcc/obj36/gcc/xgcc - > B/home/jakub/src/gcc/obj36/gcc/ > /home/jakub/src/gcc/gcc/testsuite/gcc.dg/pr102892-2.c -fdiagnostics- > plain-output -O3 -S -o pr102892-2.s (timeout = 300) > spawn -ignore SIGHUP /home/jakub/src/gcc/obj36/gcc/xgcc - > B/home/jakub/src/gcc/obj36/gcc/ > /home/jakub/src/gcc/gcc/testsuite/gcc.dg/pr102892-2.c -fdiagnostics-plain- > output -O3 -S -o pr102892-2.s > PASS: gcc.dg/pr102892-2.c (test for excess errors) > > Jakub
Excellent. Thank you and Richard both. This is very much appreciated. This has gone from daunting to just a learning exercise very quickly. And although I am working on "Test Test Case Number Zero" by hand, I am going to be able to build tools to handle the multitudes. This is exciting! Bob D.