fpc/tests/tbs/tb0655.pp
2019-03-03 14:50:09 +00:00

116 lines
2.0 KiB
ObjectPascal

program tb0655;
uses
Variants;
var
s8: Int8 = $12;
u8: UInt8 = $98;
s16: Int16 = $1234;
u16: UInt16 = $9876;
s32: Int32 = $12345768;
u32: UInt32 = $98765432;
s64: Int64 = $1234567812345678;
u64: UInt64 = UInt64($9876543298765432);
v: Variant;
ov: OleVariant;
begin
v := s8;
if VarType(v) <> varShortInt then
Halt(1);
if Int8(v) <> s8 then
Halt(2);
v := u8;
if VarType(v) <> varByte then
Halt(3);
if UInt8(v) <> u8 then
Halt(4);
v := s16;
if VarType(v) <> varSmallInt then
Halt(5);
if Int16(v) <> s16 then
Halt(6);
v := u16;
if VarType(v) <> varWord then
Halt(7);
if UInt16(v) <> u16 then
Halt(8);
v := s32;
if VarType(v) <> varInteger then
Halt(9);
if Int32(v) <> s32 then
Halt(10);
v := u32;
if VarType(v) <> varLongWord then
Halt(11);
if UInt32(v) <> u32 then
Halt(12);
v := s64;
if VarType(v) <> varInt64 then
Halt(13);
if Int64(v) <> s64 then
Halt(14);
v := u64;
if VarType(v) <> varUInt64 then
Halt(15);
if UInt64(v) <> u64 then
Halt(16);
{ OleVariant has slightly different behaviour to Variant }
ov := s8;
if VarType(ov) <> varInteger then
Halt(17);
if Int8(ov) <> s8 then
Halt(18);
ov := u8;
if VarType(ov) <> varInteger then
Halt(19);
if UInt8(ov) <> u8 then
Halt(20);
ov := s16;
if VarType(ov) <> varInteger then
Halt(21);
if Int16(ov) <> s16 then
Halt(22);
ov := u16;
if VarType(ov) <> varInteger then
Halt(23);
if UInt16(ov) <> u16 then
Halt(24);
ov := s32;
if VarType(ov) <> varInteger then
Halt(25);
if Int32(ov) <> s32 then
Halt(26);
ov := u32;
if VarType(ov) <> varInteger then
Halt(27);
{ ! }
if UInt32(Int32(ov)) <> u32 then
Halt(28);
ov := s64;
if VarType(ov) <> varInt64 then
Halt(29);
if Int64(ov) <> s64 then
Halt(30);
ov := u64;
if VarType(ov) <> varUInt64 then
Halt(31);
if UInt64(ov) <> u64 then
Halt(32);
end.