@@ -3383,43 +3383,107 @@ LINE PG/LN A...B............................................................
33833383AT_CLEANUP
33843384
33853385
3386- AT_SETUP([missing periods])
3387- AT_KEYWORDS([misc cobol85 area-a missing-periods])
33883386
3389- # Check whether the first line is correcly handled:
3390- AT_DATA([prog.cob], [ IDENTIFICATION DIVISION.
3387+
3388+ AT_SETUP([pseudotext replacement trim spaces])
3389+ AT_KEYWORDS([misc copy replace])
3390+
3391+ # Note: we show the output in listing mode, which is wrong (see
3392+ # comment in #831), since no replacement happens at all. We keep
3393+ # advising devs to checkout the .i file generated by -g instead of
3394+ # listings to check which replacements are really done by the compiler
3395+
3396+ AT_DATA([ok.inc], [
3397+ 01 VARIABLE1 PIC X(01) VALUE "O1".
3398+ 01 VARI(03)ABLE2 PIC X(02) VALUE "O2".
3399+ 01 VARIABLE3 PIC X(04) VALUE "O3".
3400+ 01 VARI(05)ABLE4 PIC X(02) VALUE "O4".
3401+ ])
3402+ AT_DATA([prog.cob], [
3403+ IDENTIFICATION DIVISION.
33913404 PROGRAM-ID. prog.
33923405
33933406 DATA DIVISION.
33943407 WORKING-STORAGE SECTION.
3395- 01 DONE COMP-1 VALUE ZERO.
3396-
3408+ REPLACE == (04) == BY == (02) ==
3409+ == (05) == BY == ==.
3410+ COPY "ok.inc" REPLACING == (01) == BY == (02) ==
3411+ == (03) == BY == ==.
33973412 PROCEDURE DIVISION.
33983413 MAIN SECTION.
3399- PERFORM SEC-1.
3400- IF NOT DONE = 1
3401- DISPLAY "SEC-1 NOT EXECUTED"
3402- END-IF
3403- STOP RUN
3404- SEC-1 SECTION.
3405- MOVE 1 TO DONE
3406- GOBACK.
3414+ DISPLAY VARIABLE1 VARIABLE2 VARIABLE3 VARIABLE4.
3415+ GOBACK.
34073416])
34083417
3409- AT_CHECK([$COMPILE_ONLY prog.cob], [1], [],
3410- [prog.cob: in section 'MAIN':
3411- prog.cob:15: error: 'SEC-1' is not defined
3412- prog.cob:15: error: syntax error, unexpected SECTION
3418+ AT_CHECK([SOURCE_DATE_EPOCH=1011960000 $COMPILE -g -Wall -t prog.lst prog.cob])
3419+
3420+ AT_CHECK([$COBCRUN_DIRECT ./prog], [0], [O1O2O3O4
34133421])
3414- AT_CHECK([$COMPILE_ONLY -fformat=cobol85 -fmissing-period=error prog.cob], [1], [],
3415- [prog.cob: in section 'MAIN':
3416- prog.cob:15: error: optional period used
3422+
3423+ AT_CHECK([cat prog.lst], [0],
3424+ [GnuCOBOL 3.3-dev.0 prog.cob Fri Jan 25 2002 12:00:00 Page 0001
3425+
3426+ LINE PG/LN A...B............................................................
3427+
3428+ 000001
3429+ 000002 IDENTIFICATION DIVISION.
3430+ 000003 PROGRAM-ID. prog.
3431+ 000004
3432+ 000005 DATA DIVISION.
3433+ 000006 WORKING-STORAGE SECTION.
3434+ 000007 REPLACE == (04) == BY == (02) ==
3435+ 000008 == (05) == BY == ==.
3436+ 000009 COPY "ok.inc" REPLACING == (01) == BY == (02) ==
3437+ 000001C
3438+ 000002C 01 VARIABLE1 PIC X(01) VALUE "O1".
3439+ 000003C 01 VARI(03)ABLE2 PIC X(02) VALUE "O2".
3440+ 000004C 01 VARIABLE3 PIC X(04) VALUE "O3".
3441+ 000005C 01 VARI(05)ABLE4 PIC X(02) VALUE "O4".
3442+ 000009 == (03) == BY == ==.
3443+ 000010 PROCEDURE DIVISION.
3444+ 000011 MAIN SECTION.
3445+ 000012 DISPLAY VARIABLE1 VARIABLE2 VARIABLE3 VARIABLE4.
3446+ 000013 GOBACK.
3447+
3448+
3449+ 0 warnings in compilation group
3450+ 0 errors in compilation group
34173451])
3418- AT_CHECK([$COMPILE -fformat=cobol85 prog.cob], [0], [],
3419- [prog.cob: in section 'MAIN':
3420- prog.cob:15: warning: optional period used
3452+
3453+ AT_CLEANUP
3454+
3455+
3456+ AT_SETUP([bug 1071 with empty replaced text])
3457+ AT_KEYWORDS([copy replacing trailing])
3458+
3459+ AT_DATA([prog.cob], [>>SOURCE FREE
3460+ IDENTIFICATION DIVISION.
3461+ PROGRAM-ID. HELLO.
3462+
3463+ DATA DIVISION.
3464+ WORKING-STORAGE SECTION.
3465+ 01 result PIC 9(4).
3466+
3467+ PROCEDURE DIVISION.
3468+ COPY fab.
3469+ DISPLAY "The result is " result.
3470+ STOP RUN.
3471+ ])
3472+ AT_DATA([fab.cob], [>>SOURCE IS FREE
3473+ >>DEFINE 1aa AS 2
3474+ ADD 1 to result.
3475+ >>IF 1aa > 1
3476+ COPY fob REPLACING TRAILING ==a== BY ====.
3477+ >>END-IF
3478+ ])
3479+ AT_DATA([fob.cob], [DISPLAY resulta.
3480+ ])
3481+
3482+ AT_CHECK([$COMPILE --free prog.cob])
3483+
3484+ AT_CHECK([$COBCRUN_DIRECT ./prog], [0], [0001
3485+ The result is 0001
34213486])
3422- AT_CHECK([$COBCRUN_DIRECT ./prog], [0], [], [])
34233487
34243488AT_CLEANUP
34253489
0 commit comments