Browse Source

+ Added bufstream example

michael 20 years ago
parent
commit
affeb1c46e
4 changed files with 99 additions and 3 deletions
  1. 2 2
      fcl/tests/Makefile
  2. 1 1
      fcl/tests/Makefile.fpc
  3. 1 0
      fcl/tests/README
  4. 95 0
      fcl/tests/testbs.pp

+ 2 - 2
fcl/tests/Makefile

@@ -1,5 +1,5 @@
 #
-# Don't edit, this file is generated by FPCMake Version 1.1 [2004/12/20]
+# Don't edit, this file is generated by FPCMake Version 1.1 [2004/12/31]
 #
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
@@ -219,7 +219,7 @@ ifeq ($(UNITSDIR),)
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
-override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi
+override TARGET_PROGRAMS+=stringl dparser fstream mstream list threads testrtf cfgtest xmldump htdump testez tidea b64test b64test2 b64enc b64dec restest testz testz2 istream doecho testol testcont txmlreg testreg tstelcmd testapp testcgi testbs
 ifeq ($(OS_TARGET),linux)
 override TARGET_PROGRAMS+=sockcli isockcli dsockcli socksvr isocksvr dsocksvr testhres testnres testsres testrhre testrnre testrsre testur
 endif

+ 1 - 1
fcl/tests/Makefile.fpc

@@ -7,7 +7,7 @@ programs=stringl dparser fstream mstream list threads testrtf \
          cfgtest xmldump htdump testez tidea \
          b64test b64test2 b64enc b64dec restest testz testz2 \
          istream doecho testol testcont txmlreg testreg tstelcmd \
-         testapp testcgi
+         testapp testcgi testbs
 programs_win32=showver testproc testhres testnres testsres testrhre \
                testrnre testrsre testur
 programs_linux=sockcli isockcli dsockcli socksvr isocksvr dsocksvr \

+ 1 - 0
fcl/tests/README

@@ -59,3 +59,4 @@ tstelgtk.pp  Test of eventlog unit, FPGTK version. Not built by default. (MVC)
 testur.pp    Test of TURIParser class. (MVC)
 testapp.pp   Test of TCustomApplication. (MVC)
 testcgi.pp   Test of TCGIApplication class. (MVC)
+testbs.pp    Test of TBufStream buffered stream (MVC)

+ 95 - 0
fcl/tests/testbs.pp

@@ -0,0 +1,95 @@
+{
+    $Id$
+    This file is part of the Free Component Library.
+    Copyright (c) 1999-2000 by the Free Pascal development team
+
+    Test for TBufstream.
+    
+    See the file COPYING.FPC, included in this distribution,
+    for details about the copyright.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+{$mode objfpc}
+{$H+}
+program testbs;
+
+
+uses
+  Classes, SysUtils
+  { add your units here }, bufstream;
+
+Var
+  MBSize     : Integer = 1024*100;
+  SBCapacity : Integer = 1024*16;
+
+procedure TestRead(Buffer : PChar; ACapacity : Integer);
+  
+Var
+  F2 : TFileStream;
+  B : TReadBufSTream;
+  C : Integer;
+
+begin
+  B:=TReadBufStream.Create(TFileStream.Create(PAramStr(0),fmOpenRead),ACapacity);
+  Try
+    B.SourceOwner:=True;
+    F2:=TFileStream.Create(ChangeFileExt(PAramStr(0),'.tr'),fmCreate);
+    Try
+      Repeat
+        C:=B.Read(Buffer^,MBSize);
+        F2.Write(Buffer^,C);
+      Until (C<MBSize);
+    Finally
+      F2.Free;
+    end;
+  finally
+    B.Free;
+  end;
+end;
+
+procedure TestWrite(Buffer : PChar; ACapacity : Integer);
+
+Var
+  F : TFileStream;
+  B : TWriteBufSTream;
+  C : Integer;
+
+begin
+  F:=TFileStream.Create(PAramStr(0),fmOpenRead);
+  Try
+    B:=TWriteBufStream.Create(TFileStream.Create(ChangeFileExt(PAramStr(0),'.tw'),fmCreate),ACapacity);
+    Try
+      B.SourceOwner:=True;
+      Repeat
+        C:=F.Read(Buffer^,MBSize);
+        B.Write(Buffer^,C);
+      Until (C<MBSize);
+    Finally
+      B.Free;
+    end;
+  finally
+    F.Free;
+  end;
+end;
+
+Var
+  Buffer : PChar;
+
+begin
+  If ParamCount>0 then
+    MBSize:=StrToIntDef(ParamStr(1),MBSize);
+  If ParamCount>1 then
+    SBCapacity:=StrToIntDef(ParamStr(2),SBCapacity);
+  GetMem(Buffer,MBSize);
+  Try
+    TestRead(Buffer,SBCapacity);
+    TestWrite(Buffer,SBCapacity);
+  Finally
+    FreeMem(Buffer);
+  end;
+end.
+