mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-22 07:49:24 +02:00
81 lines
1.3 KiB
ObjectPascal
81 lines
1.3 KiB
ObjectPascal
{%OPT=-glh}
|
|
program tautom;
|
|
|
|
type wstr_varnt_record=record
|
|
s:widestring;
|
|
v:variant;
|
|
end;
|
|
|
|
wstr_varnt_object=object
|
|
s:wstr_varnt_record;
|
|
end;
|
|
|
|
wstr_array1=array[0..99] of wstr_varnt_record;
|
|
wstr_array2=array[0..99] of wstr_varnt_object;
|
|
|
|
|
|
procedure do_test;
|
|
|
|
var a,b:wstr_array1;
|
|
c,d:wstr_array2;
|
|
i:0..99;
|
|
|
|
|
|
begin
|
|
for i:=low(a) to high(a) do
|
|
begin
|
|
a[i].s:='Ninja';
|
|
a[i].v:='Samurai';
|
|
end;
|
|
|
|
b:=a;
|
|
|
|
for i:=low(a) to high(a) do
|
|
begin
|
|
if a[i].s<>'Ninja' then
|
|
halt(255);
|
|
if b[i].s<>'Ninja' then
|
|
halt(255);
|
|
if a[i].v<>'Samurai' then
|
|
halt(255);
|
|
if b[i].v<>'Samurai' then
|
|
halt(255);
|
|
end;
|
|
|
|
for i:=0 to 99 do
|
|
begin
|
|
c[i].s.s:=a[i].s;
|
|
c[i].s.v:=a[i].v;
|
|
end;
|
|
|
|
d:=c;
|
|
for i:=low(d) to high(d) do
|
|
begin
|
|
if c[i].s.s<>'Ninja' then
|
|
halt(255);
|
|
if d[i].s.s<>'Ninja' then
|
|
halt(255);
|
|
if c[i].s.v<>'Samurai' then
|
|
halt(255);
|
|
if d[i].s.v<>'Samurai' then
|
|
halt(255);
|
|
end;
|
|
end;
|
|
|
|
|
|
var before,after:sizeuint;
|
|
|
|
begin
|
|
with getfpcheapstatus do
|
|
before:=currheapused;
|
|
writeln('Used heap before ',before);
|
|
|
|
do_test;
|
|
|
|
with getfpcheapstatus do
|
|
after:=currheapused;
|
|
writeln('Used heap after ',after);
|
|
if before<>after then
|
|
exitcode:=255;
|
|
end.
|