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
 default: all
 MAKEFILETARGETS=linux go32v2 win32 os2 freebsd beos netbsd amiga atari sunos qnx netware openbsd wdosx palmos macos darwin emx watcom morphos netwlibc
 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))
 UNITSDIR:=$(wildcard $(FPCDIR)/units/$(OS_TARGET))
 endif
 endif
 PACKAGESDIR:=$(wildcard $(FPCDIR) $(FPCDIR)/packages/base $(FPCDIR)/packages/extra)
 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)
 ifeq ($(OS_TARGET),linux)
 override TARGET_PROGRAMS+=sockcli isockcli dsockcli socksvr isocksvr dsocksvr testhres testnres testsres testrhre testrnre testrsre testur
 override TARGET_PROGRAMS+=sockcli isockcli dsockcli socksvr isocksvr dsocksvr testhres testnres testsres testrhre testrnre testrsre testur
 endif
 endif

+ 1 - 1
fcl/tests/Makefile.fpc

@@ -7,7 +7,7 @@ programs=stringl dparser fstream mstream list threads testrtf \
          cfgtest xmldump htdump testez tidea \
          cfgtest xmldump htdump testez tidea \
          b64test b64test2 b64enc b64dec restest testz testz2 \
          b64test b64test2 b64enc b64dec restest testz testz2 \
          istream doecho testol testcont txmlreg testreg tstelcmd \
          istream doecho testol testcont txmlreg testreg tstelcmd \
-         testapp testcgi
+         testapp testcgi testbs
 programs_win32=showver testproc testhres testnres testsres testrhre \
 programs_win32=showver testproc testhres testnres testsres testrhre \
                testrnre testrsre testur
                testrnre testrsre testur
 programs_linux=sockcli isockcli dsockcli socksvr isocksvr dsocksvr \
 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)
 testur.pp    Test of TURIParser class. (MVC)
 testapp.pp   Test of TCustomApplication. (MVC)
 testapp.pp   Test of TCustomApplication. (MVC)
 testcgi.pp   Test of TCGIApplication class. (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.
+