143 lines
2.4 KiB
Plaintext
143 lines
2.4 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
|
|
|
|
%FAIL Identical constants, PAR assign
|
|
a[0],a[0] := 3,4
|
|
|
|
%PASS Self-assign
|
|
a[0] := a[0]
|
|
a[1] := a[1]
|
|
|
|
%PASS Self-assign, PAR assign
|
|
a[0],a[1] := a[0],a[1]
|
|
|
|
%PASS PAR assign swap
|
|
a[0],a[1] := a[1],a[0]
|
|
|
|
%PASS Same constant, different array
|
|
a[0] := 3
|
|
b[0] := 4
|
|
|
|
%FAIL Identical variables
|
|
x := 3
|
|
x := 4
|
|
|
|
%FAIL Identical variables, PAR assign
|
|
x,x := 3,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
|
|
|
|
%PASS Overlapping constants in reading
|
|
a[1] := a[0]
|
|
a[2] := a[0]
|
|
|
|
%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
|
|
|
|
%PASS Modulo variable (v.d.) and normal variable (safe)
|
|
a[x REM y] := 3
|
|
a[y] := 4
|
|
|
|
%FAIL Overlap with items in nested replication
|
|
a[0] := 3
|
|
PAR i = 0 FOR 6
|
|
a[i] := 4
|
|
|
|
%PASS Near-overlap with items in nested replication
|
|
a[0] := 3
|
|
PAR i = 1 FOR 6
|
|
a[i] := 4
|
|
|
|
%FAIL Overlap with replicator start
|
|
x := 3
|
|
PAR i = x FOR 6
|
|
a[i] := 4
|
|
|
|
%FAIL Overlap with replicator count
|
|
x := 3
|
|
PAR i = 1 FOR x
|
|
a[i] := 4
|
|
|
|
%PASS Branch inside parallel
|
|
IF
|
|
x < 0
|
|
y := 0
|
|
TRUE
|
|
y := 2
|
|
%PASS PAR inside branch inside parallel
|
|
IF
|
|
x < 0
|
|
PAR
|
|
x := 3
|
|
y := 4
|
|
TRUE
|
|
PAR
|
|
x := 2
|
|
y := 3
|
|
|
|
%
|