tock-mirror/testcases/automatic/usage-check-1.occ.test

78 lines
1.3 KiB
Plaintext

-- This file tests simple array uses without replication
-- Four unknown variables are available; x, y, z.
-- Two arrays are automatically declared; a (size 10) and b (size 12)
PROC p(INT x, y, z)
[10]INT a:
[12]INT b:
PAR
%%
:
PROC m()
SKIP
:
%PASS Distinct constants
a[0] := 3
a[1] := 4
a[4] := 5
%FAIL Identical constants
a[0] := 3
a[0] := 4
%PASS Same constant, different array
a[0] := 3
b[0] := 4
%FAIL Variable and a constant
a[0] := 3
a[x] := 4
%PASS Out of bounds variable overlap #1
a[x * 10] := 3
a[(y * 9) + 1] := 4
%PASS Out of bounds variable overlap #2
a[x * 11] := 3
a[(y * 10) + 1] := 4
%FAIL In bounds variable overlap
a[x * 9] := 3
a[(y * 8) + 1] := 4
%PASS Overlap with constants, but in sequence
SEQ
a[0] := 4
a[0] := 5
a[1] := 6
%FAIL Overlap with constants in nested PAR
PAR
a[0] := 4
a[0] := 5
a[1] := 6
%FAIL Two variables
a[x] := 3
a[y] := 5
%PASS Modulo variable (c.d.) and a constant, safe
a[x REM 3] := 3
a[3] := 4
%FAIL Modulo variable (c.d.) and a constant, unsafe
a[x REM 3] := 3
a[2] := 4
%FAIL Modulo variable (v.d.) and a constant
a[x REM y] := 3
a[0] := 4
%FAIL Modulo variable (v.d.) and normal variable (unsafe)
a[x REM y] := 3
a[x + 1] := 4
%