5 USES ServerLoop
,Chat
,SysUtils
,MemStream
,NetAddr
,opcode
;
10 procedure ST1(msg
:tSMsg
; data
:boolean);
11 procedure ST2(msg
:tSMsg
; data
:boolean);
12 procedure ST3(msg
:tSMsg
; data
:boolean);
14 procedure HardTimeout
;
17 procedure t
.ST1(msg
:tSMsg
; data
:boolean);
20 write('TestFS: ST1 reply from FS: ');
21 if not data
then begin
23 s
.init(GetMem(56),0,56);
28 end else writeln('unexpected data');
30 procedure t
.ST2(msg
:tSMsg
; data
:boolean);
33 write('TestFS: ST2 reply from FS: ');
35 writeln(msg
.stream
.ReadByte
,'-',msg
.stream
.ReadByte
);
36 s
.init(GetMem(56),0,56);
38 s
.WriteByte(opcode
.upClose
);
41 end else writeln('ack');
43 procedure t
.ST3(msg
:tSMsg
; data
:boolean);
45 write('TestFS: ST3 reply from FS: ');
46 if data
then writeln('unepected data') else begin
48 UnShedule(@HardTimeout
);
49 ch
.DisposeHook
:=@Rekt
;
56 writeln('TestFS: rekt');
57 FreeMem(@self
,sizeof(self
));
60 procedure t
.HardTimeout
;
62 writeln('TestFS: hardtimeout');
63 ch
.DisposeHook
:=@Rekt
;
75 assert(OptParamCount(oi
)=1,opt
+'(rcpt:tNetAddr)');
76 writeln('TestFS: rcpt '+paramstr(oi
+1));
77 new(o
); with o
^ do begin
78 ch
.Init(paramstr(oi
+1));
80 Shedule(7000,@HardTimeout
);
81 s
.init(GetMem(56),0,56);
83 s
.WriteByte(opcode
.upFileServer
);