const str optimization
This commit is contained in:
@@ -5,50 +5,53 @@ unit TestCase1;
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, fpcunit, testutils, testregistry, AG.Logs{$IFDEF MSWINDOWS},Windows{$ENDIF};
|
||||
Classes, SysUtils, fpcunit, testutils, testregistry,
|
||||
AG.Logs{$IFDEF MSWINDOWS}, Windows{$ENDIF};
|
||||
|
||||
type
|
||||
|
||||
TTestCase1= class(TTestCase)
|
||||
TTestCase1 = class(TTestCase)
|
||||
published
|
||||
procedure TestHookUp;
|
||||
end;
|
||||
|
||||
implementation
|
||||
|
||||
procedure Test(s:string);
|
||||
procedure Test(s: string);
|
||||
begin
|
||||
Write(s);
|
||||
end;
|
||||
|
||||
procedure TTestCase1.TestHookUp;
|
||||
var
|
||||
MultiLog:TAGLog;
|
||||
Stream:TStream;
|
||||
s:TBytes;
|
||||
MultiLog: TAGLog;
|
||||
Stream: TStream;
|
||||
s: TBytes;
|
||||
begin
|
||||
MultiLog:=TAGMultiLog.Create(nil);
|
||||
(MultiLog as TAGMultiLog).Logs.Add(TAGNullLog.Create());
|
||||
(MultiLog as TAGMultiLog).Logs.Add(TAGDiskLog.Create('test.log'));
|
||||
(MultiLog as TAGMultiLog).Logs.Add(TAGRamLog.Create());
|
||||
{$IFDEF MSWINDOWS}(MultiLog as TAGMultiLog).Logs.Add(TAGCommandLineLog.Create(GetStdHandle(STD_OUTPUT_HANDLE))){$ENDIF};
|
||||
Stream:=nil;
|
||||
try
|
||||
Stream:=TFileStream.Create('test2.log',fmOpenRead+fmShareDenyNone);
|
||||
SetLength(s,Stream.Size);
|
||||
Stream.Read(s[0],Stream.Size);
|
||||
except
|
||||
SetLength(s,0);
|
||||
end;
|
||||
FreeAndNil(Stream);
|
||||
Stream:=TFileStream.Create('test2.log',fmCreate+fmOpenReadWrite+fmShareDenyWrite);
|
||||
Stream.Write(s[0],Length(s));
|
||||
(MultiLog as TAGMultiLog).Logs.Add(TAGStreamLog.Create(Stream));
|
||||
SetLength(s,0);
|
||||
(MultiLog as TAGMultiLog).Logs.Add(TAGCallBackLog.Create(@Test));
|
||||
MultiLog.Write('Str Test');
|
||||
MultiLog.Write('Str+Object Test',self);
|
||||
FreeAndNil(MultiLog);
|
||||
MultiLog := TAGMultiLog.Create(nil);
|
||||
(MultiLog as TAGMultiLog).Logs.Add(TAGNullLog.Create());
|
||||
(MultiLog as TAGMultiLog).Logs.Add(TAGDiskLog.Create('test.log'));
|
||||
(MultiLog as TAGMultiLog).Logs.Add(TAGRamLog.Create());
|
||||
{$IFDEF MSWINDOWS}
|
||||
(MultiLog as TAGMultiLog).Logs.Add(TAGCommandLineLog.Create(GetStdHandle(STD_OUTPUT_HANDLE)));
|
||||
{$ENDIF}
|
||||
Stream := nil;
|
||||
try
|
||||
Stream := TFileStream.Create('test2.log', fmOpenRead + fmShareDenyNone);
|
||||
SetLength(s, Stream.Size);
|
||||
Stream.Read(s[0], Stream.Size);
|
||||
except
|
||||
SetLength(s, 0);
|
||||
end;
|
||||
FreeAndNil(Stream);
|
||||
Stream := TFileStream.Create('test2.log', fmCreate + fmOpenReadWrite +
|
||||
fmShareDenyWrite);
|
||||
Stream.Write(s[0], Length(s));
|
||||
(MultiLog as TAGMultiLog).Logs.Add(TAGStreamLog.Create(Stream));
|
||||
SetLength(s, 0);
|
||||
(MultiLog as TAGMultiLog).Logs.Add(TAGCallBackLog.Create(@Test));
|
||||
MultiLog.Write('Str Test');
|
||||
MultiLog.Write('Str+Object Test', self);
|
||||
FreeAndNil(MultiLog);
|
||||
end;
|
||||
|
||||
|
||||
@@ -57,4 +60,3 @@ initialization
|
||||
|
||||
RegisterTest(TTestCase1);
|
||||
end.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user