@@ -483,3 +483,62 @@ AT_CHECK([cobj prog.cob], [0])
483
483
AT_CHECK([java prog], [0], [02])
484
484
485
485
AT_CLEANUP
486
+
487
+ AT_SETUP([Readable string literals])
488
+ # Older compilers converts string literals "���{��" in COBOL source code
489
+ # to `CobolUtil.toBytes((byte)0x93, (byte)0xfa, (byte)0x96, (byte)0x7b, (byte)0x8c, (byte)0xea)` in Java source code.
490
+ # The following tests check that the compiler converts the string literals to readable ones.
491
+
492
+ AT_DATA([prog1.cob], [
493
+ IDENTIFICATION DIVISION.
494
+ PROGRAM-ID. prog1.
495
+ DATA DIVISION.
496
+ WORKING-STORAGE SECTION.
497
+ 01 F0 PIC X(30) VALUE "����1".
498
+ PROCEDURE DIVISION.
499
+ MOVE "����2" TO F0.
500
+ DISPLAY "����3".
501
+ ])
502
+
503
+ AT_CHECK([cobj prog1.cob])
504
+ AT_CHECK([grep '����1' < prog1.java > /dev/null])
505
+ AT_CHECK([grep '����2' < prog1.java > /dev/null])
506
+ AT_CHECK([grep '����3' < prog1.java > /dev/null])
507
+
508
+ # '�@' is the first multi-byte Shift-JIS character with respect to the byte order
509
+ # see http://charset.7jp.net/sjis.html
510
+ AT_DATA([prog2.cob], [
511
+ IDENTIFICATION DIVISION.
512
+ PROGRAM-ID. prog2.
513
+ DATA DIVISION.
514
+ WORKING-STORAGE SECTION.
515
+ 01 F0 PIC X(30) VALUE "�@1".
516
+ PROCEDURE DIVISION.
517
+ MOVE "�@2" TO F0.
518
+ DISPLAY "�@3".
519
+ ])
520
+
521
+ AT_CHECK([cobj prog2.cob])
522
+ AT_CHECK([grep '�@1' < prog2.java > /dev/null])
523
+ AT_CHECK([grep '�@2' < prog2.java > /dev/null])
524
+ AT_CHECK([grep '�@3' < prog2.java > /dev/null])
525
+
526
+ # '�' is the last printable Shift-JIS character with respect to the byte order.
527
+ # See http://charset.7jp.net/sjis.html
528
+ AT_DATA([prog3.cob], [
529
+ IDENTIFICATION DIVISION.
530
+ PROGRAM-ID. prog3.
531
+ DATA DIVISION.
532
+ WORKING-STORAGE SECTION.
533
+ 01 F0 PIC X(30) VALUE "�1".
534
+ PROCEDURE DIVISION.
535
+ MOVE "�2" TO F0.
536
+ DISPLAY "�3".
537
+ ])
538
+
539
+ AT_CHECK([cobj prog3.cob])
540
+ AT_CHECK([grep '�1' < prog3.java > /dev/null])
541
+ AT_CHECK([grep '�2' < prog3.java > /dev/null])
542
+ AT_CHECK([grep '�3' < prog3.java > /dev/null])
543
+
544
+ AT_CLEANUP
0 commit comments