> -----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.

Reply via email to