> -----Original Message-----
> From: Jakub Jelinek <[email protected]>
> Sent: Saturday, March 15, 2025 12:34
> To: Robert Dubner <[email protected]>
> Cc: 'GCC Mailing List' <[email protected]>; 'James K. Lowden'
> <[email protected]>; 'Richard Biener'
<[email protected]>
> Subject: Re: COBOL test cases
>
> On Sat, Mar 15, 2025 at 11:02:59AM -0500, Robert Dubner wrote:
> > I am struggling with the learning curves, here. I am trying to
> > understand dejagnu, and I am trying to understand tcl, and I am trying
> > to understand the testsuite chain of commands and files that result,
> > somehow, in the programs in testsuite/cobol.dg being executed.
> > Dealing with three new technologies is slowing me down considerably.
> > I am looking for some help to leapfrog that.
> >
> > We have about 800 programs that definitively have no IP issues
> > preventing their use in the GCC repository.
> >
> > But the vast bulk of them are based on capturing stdout and comparing
> > that to a known-good file.
> >
> > I am completely prepared to create a test-0001.cob source code file
> > for the repo. I can prepare a matching test-0001.expected-output file
> > for the repo.
>
> The normal dejagnu way is to use dg-output for that.
> So, if you have test-0001.cob and test-0001.expected-output, you could
do
> for i in *.cob; do \ sed 's/\([].*()[]\)/\\\1/g;s/^/*> { dg-output
> {/;s/$/(\\n|\\r\\n|\\r)} }/;$s/.\{12\}} }$/} }/' \ < $i.expected-output
>>
> $i.cob; done to turn the expected output into dg-output directives.
> Maybe I've missed some characters that also need to be backslash
prefixed,
> in that case they'd go next to the .*() part early in the regexp.
Okay. Interesting. Hang on a minute....
... tried a test. It'll work.
Thanks!
>
> Of course, if the output is huge, perhaps we should write some dg-
> directive for specifying file with expected output and compare against
> that rather than the dg-output directives.
> But if it is just a couple dozens of lines, I think dg-output could be
> fine.
>
> > I see the stdout from each executed program is captured in the
> > cobol.log file. But it doesn't do me much good, there.
> >
> > Is there some way that the output of { dg-do run } can be directed to
> > designated test-0001.stdout and test-0001.stderr files? If so, I can
> > fairly easily add boilerplate to the end of the COBOL test program to
> > do the comparison.
> >
> > Otherwise I am going to have start rewriting those hundreds of
> > programs to somehow test themselves and produce the go/no-go response.
>
> Jakub