Skip to content

Commit c39c20b

Browse files
authored
Added a test case about N characters (#208)
1 parent a970a65 commit c39c20b

File tree

5 files changed

+60
-8
lines changed

5 files changed

+60
-8
lines changed

libcobj/src/jp/osscons/opensourcecobol/libcobj/common/CobolUtil.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -649,11 +649,11 @@ public static int nationalCmps(
649649
CobolDataStorage s1, CobolDataStorage s2, int size, CobolDataStorage col) {
650650
int ret = 0;
651651
for (int i = 0; i < size && ret == 0; i += 2) {
652-
int b11 = s1.getByte(i);
653-
int b12 = s1.getByte(i + 1);
654-
int b21 = s2.getByte(i);
655-
int b22 = s2.getByte(i + 1);
656-
ret = (b11 << 8 | b12) - (b21 << 8 | b22);
652+
int b11 = Byte.toUnsignedInt(s1.getByte(i));
653+
int b12 = Byte.toUnsignedInt(s1.getByte(i + 1));
654+
int b21 = Byte.toUnsignedInt(s2.getByte(i));
655+
int b22 = Byte.toUnsignedInt(s2.getByte(i + 1));
656+
ret = ((b11 << 8) | b12) - ((b21 << 8) | b22);
657657
}
658658
return ret;
659659
}

tests/Makefile.am

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,8 @@ misc_DEPENDENCIES = \
185185
misc.src/display-numeric.at \
186186
misc.src/version-string-in-java.at \
187187
misc.src/comp3-compute.at \
188-
misc.src/index-file-status.at
188+
misc.src/index-file-status.at \
189+
misc.src/comp-n.at
189190

190191

191192
EXTRA_DIST = $(srcdir)/package.m4 \

tests/Makefile.in

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -726,7 +726,8 @@ misc_DEPENDENCIES = \
726726
misc.src/display-numeric.at \
727727
misc.src/version-string-in-java.at \
728728
misc.src/comp3-compute.at \
729-
misc.src/index-file-status.at
729+
misc.src/index-file-status.at \
730+
misc.src/comp-n.at
730731

731732
EXTRA_DIST = $(srcdir)/package.m4 \
732733
$(TESTS) \

tests/misc.at

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,5 @@ m4_include([display-numeric.at])
3737
m4_include([exit-perform-cycle.at])
3838
m4_include([version-string-in-java.at])
3939
m4_include([comp3-compute.at])
40-
m4_include([index-file-status.at])
40+
m4_include([index-file-status.at])
41+
m4_include([comp-n.at])

tests/misc.src/comp-n.at

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
AT_SETUP([Compare N characters])
2+
3+
AT_DATA([prog.cbl], [
4+
IDENTIFICATION DIVISION.
5+
PROGRAM-ID. prog.
6+
DATA DIVISION.
7+
WORKING-STORAGE SECTION.
8+
9+
01 C1-GRP.
10+
03 C1 PIC N(1).
11+
01 C1-VALUE-GRP.
12+
03 C1-1-VALUE PIC X VALUE LOW-VALUE.
13+
03 C1-2-VALUE PIC X VALUE LOW-VALUE.
14+
01 C2-GRP.
15+
03 C2 PIC N(1).
16+
01 C2-VALUE-GRP.
17+
03 C2-1-VALUE PIC X VALUE LOW-VALUE.
18+
03 C2-2-VALUE PIC X VALUE HIGH-VALUE.
19+
01 C3-GRP.
20+
03 C3 PIC N(1).
21+
01 C3-VALUE-GRP.
22+
03 C3-1-VALUE PIC X VALUE HIGH-VALUE.
23+
03 C3-2-VALUE PIC X VALUE LOW-VALUE.
24+
01 C4-GRP.
25+
03 C4 PIC N(1).
26+
01 C4-VALUE-GRP.
27+
03 C4-1-VALUE PIC X VALUE HIGH-VALUE.
28+
03 C4-2-VALUE PIC X VALUE HIGH-VALUE.
29+
PROCEDURE DIVISION.
30+
MOVE C1-VALUE-GRP TO C1-GRP.
31+
MOVE C2-VALUE-GRP TO C2-GRP.
32+
MOVE C3-VALUE-GRP TO C3-GRP.
33+
MOVE C4-VALUE-GRP TO C4-GRP.
34+
IF C1 NOT = C1 THEN DISPLAY "NG C1, C1".
35+
IF C1 = C2 THEN DISPLAY "NG C1, C2".
36+
IF C1 = C3 THEN DISPLAY "NG C1, C3".
37+
IF C1 = C4 THEN DISPLAY "NG C1, C4".
38+
IF C2 NOT = C2 THEN DISPLAY "NG C2, C2".
39+
IF C2 = C3 THEN DISPLAY "NG C2, C3".
40+
IF C2 = C4 THEN DISPLAY "NG C2, C4".
41+
IF C3 NOT = C3 THEN DISPLAY "NG C3, C3".
42+
IF C3 = C4 THEN DISPLAY "NG C3, C4".
43+
IF C4 NOT = C4 THEN DISPLAY "NG C4, C4".
44+
])
45+
46+
AT_CHECK([${COBJ} prog.cbl])
47+
AT_CHECK([java prog])
48+
49+
AT_CLEANUP

0 commit comments

Comments
 (0)