1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- program addrtest;
- {$mode objfpc}{$H+}
- uses
- fpsockets;
- const
- IN4Val = '127.0.0.1';
- IN6Val = '132:42::1';
- IN6ValAlt = '132:42:0::1';
- Function TestIN4Addr: String;
- var
- Addr: TNetworkAddress;
- begin
- Result:='';
- Addr:=IN4Address(IN4Val);
- if (Addr.AddressType<>atIN4) or (Addr.Address<>IN4Val) then
- Exit('Error with IN4Address Constructor function');
- end;
- Function TestIN6Addr: String;
- var
- Addr: TNetworkAddress;
- begin
- Result:='';
- Addr:=IN6Address(IN6Val);
- if (Addr.AddressType<>atIN6) or (Addr.Address<>IN6Val) then
- Exit('Error with IN6Address Constructor function');
- end;
- Function TestAddrDispatch: String;
- var
- Addr: TNetworkAddress;
- begin
- Result:='';
- Addr:=INAddr(IN4Val);
- if (Addr.AddressType<>atIN4) or (Addr.Address<>IN4Val) then
- Exit('Error with INAddr Constructor function');
- Addr:=INAddr(IN6Val);
- if (Addr.AddressType<>atIN6) or (Addr.Address<>IN6Val) then
- Exit('Error with INAddr Constructor function');
- Addr:=IN4Val;
- if (Addr.AddressType<>atIN4) or (Addr.Address<>IN4Val) then
- Exit('Error with Address Assignment Operator');
- Addr:=IN6Val;
- if (Addr.AddressType<>atIN6) or (Addr.Address<>IN6Val) then
- Exit('Error with Address Assignment Operator');
- end;
- Function TestIN6Equality: String;
- var
- A1, A2: TNetworkAddress;
- begin
- Result:='';
- if not IN6Equal(IN6Val, IN6ValAlt) then
- Exit('IN6 Comparison failed');
- A1:=IN6Address(IN6Val);
- A2:=IN6Address(IN6ValAlt);
- if not (A1 = A2) then
- Exit('IN6 = Comparison failed');
- if A1 <> A2 then
- Exit('IN6 <> Comparison failed');
- end;
- Procedure DoTest(aTest,aResult : String);
- begin
- if aResult<>'' then
- begin
- writeln(aTest,' failed : ',aResult);
- Halt(1);
- end
- else
- Writeln(aTest,' OK.');
- end;
- begin
- DoTest('TestIN4Addr',TestIN4Addr);
- DoTest('TestIN6Addr',TestIN6Addr);
- DoTest('TestAddrDispatch',TestAddrDispatch);
- DoTest('TestIN6Equality',TestIN6Equality);
- end.
|