diff --git a/Logger.SysLogHandler.pp b/Logger.SysLogHandler.pp
index 4e247c1..ad6efca 100644
--- a/Logger.SysLogHandler.pp
+++ b/Logger.SysLogHandler.pp
@@ -46,6 +46,7 @@ interface
uses
Classes,
+ SysUtils,
Logger.HandlerInterface;
const
@@ -96,6 +97,7 @@ type
published
property UnixFacility: longint read FUnixFacility write SetFacility;
end;
+ EPlatformNotSupported = class(Exception) end;
procedure closelog; cdecl; external;
procedure openlog(__ident: PChar; __option: longint; __facilit: longint);
@@ -107,11 +109,21 @@ implementation
constructor SysLogHandler.Create(const LoggingFacility: longint);
begin
+ {$IFDEF WIN}
+ Raise EPlatformNotSupported.Create ('SysLogHandler is not supported under Windows.') at
+ get_caller_addr(get_frame),
+ get_caller_frame(get_frame);
+ {$ENDIF WIN}
FUnixFacility := LoggingFacility;
end;
procedure SysLogHandler.SetFacility(const UnixFacility: longint);
begin
+ {$IFDEF WIN}
+ Raise EPlatformNotSupported.Create ('SysLogHandler is not supported under Windows.') at
+ get_caller_addr(get_frame),
+ get_caller_frame(get_frame);
+ {$ENDIF WIN}
FUnixFacility := UnixFacility;
end;
diff --git a/tests/ConsoleHandlerTest.pp b/tests/ConsoleHandlerTest.pp
new file mode 100644
index 0000000..dab8776
--- /dev/null
+++ b/tests/ConsoleHandlerTest.pp
@@ -0,0 +1,82 @@
+{*******************************************************}
+
+{ Renegade BBS }
+
+{ Copyright (c) 1990-2013 The Renegade Dev Team }
+{ Copyleft (ↄ) 2016-2017 Renegade BBS }
+
+{ This file is part of Renegade BBS }
+
+{ Renegade is free software: you can redistribute it }
+{ and/or modify it under the terms of the GNU General }
+{ Public License as published by the Free Software }
+{ Foundation, either version 3 of the License, or }
+{ (at your option) any later version. }
+
+{ Renegade 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. See the GNU General Public }
+{ License for more details. }
+
+{ You should have received a copy of the GNU General }
+{ Public License along with Renegade. If not, see }
+{ . }
+
+{*******************************************************}
+{ _______ __ }
+{ | _ .-----.-----.-----.-----.---.-.--| .-----. }
+{ |. l | -__| | -__| _ | _ | _ | -__| }
+{ |. _ |_____|__|__|_____|___ |___._|_____|_____| }
+{ |: | | |_____| }
+{ |::.|:. | }
+{ `--- ---' }
+{*******************************************************}
+{$mode objfpc}
+{$codepage utf8}
+{$h+}
+{ namespace Renegade.Logger }
+{ Program to test the Logger.ConsoleHandler class }
+Program ConsoleHandlerTest;
+
+Uses
+ Classes,
+ SysUtils,
+ Renegade.Logger,
+ Logger.ConsoleHandler,
+ Logger.LoggerInterface;
+
+const
+ Message = 'This is a log message';
+ CurrentClass = 'ConsoleHandler';
+var
+ Handler : ConsoleHandler;
+ Logger : RTLogger;
+ Context : array [1..4] of ansistring = (CurrentClass, 'True', 'Testing', 'True');
+begin
+
+ Handler := ConsoleHandler.Create;
+ Logger := RTLogger.Create(Handler);
+ Logger.Emergency(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Alert(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Critical(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Error(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Warning(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Notice(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Info(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Debug(Message, [Context[1], Context[2], Context[3], Context[4]]);
+
+ Logger.Log(LOG_EMERG, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_ALERT, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_CRIT, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_ERR, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_WARNING, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_NOTICE, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_INFO, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_DEBUG, Message, [Context[1], Context[2], Context[3], Context[4]]);
+
+ Logger.LOG(LOG_UNKNOWN, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ //RenameFile('renegade.log', CurrentClass + 'StreamTest.log');
+
+end.
+
diff --git a/tests/FileHandlerTest.pp b/tests/FileHandlerTest.pp
new file mode 100644
index 0000000..95e7bd6
--- /dev/null
+++ b/tests/FileHandlerTest.pp
@@ -0,0 +1,82 @@
+{*******************************************************}
+
+{ Renegade BBS }
+
+{ Copyright (c) 1990-2013 The Renegade Dev Team }
+{ Copyleft (ↄ) 2016-2017 Renegade BBS }
+
+{ This file is part of Renegade BBS }
+
+{ Renegade is free software: you can redistribute it }
+{ and/or modify it under the terms of the GNU General }
+{ Public License as published by the Free Software }
+{ Foundation, either version 3 of the License, or }
+{ (at your option) any later version. }
+
+{ Renegade 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. See the GNU General Public }
+{ License for more details. }
+
+{ You should have received a copy of the GNU General }
+{ Public License along with Renegade. If not, see }
+{ . }
+
+{*******************************************************}
+{ _______ __ }
+{ | _ .-----.-----.-----.-----.---.-.--| .-----. }
+{ |. l | -__| | -__| _ | _ | _ | -__| }
+{ |. _ |_____|__|__|_____|___ |___._|_____|_____| }
+{ |: | | |_____| }
+{ |::.|:. | }
+{ `--- ---' }
+{*******************************************************}
+{$mode objfpc}
+{$codepage utf8}
+{$h+}
+{ namespace Renegade.Logger }
+{ Program to test the Logger.FileHandler class }
+Program FileHandlerTest;
+
+Uses
+ Classes,
+ SysUtils,
+ Renegade.Logger,
+ Logger.FileHandler,
+ Logger.LoggerInterface;
+
+const
+ Message = 'This is a log message';
+ CurrentClass = 'FileHandler';
+var
+ Handler : FileHandler;
+ Logger : RTLogger;
+ Context : array [1..4] of ansistring = (CurrentClass, 'True', 'Testing', 'True');
+begin
+
+ Handler := FileHandler.Create('renegade.log');
+ Logger := RTLogger.Create(Handler);
+ Logger.Emergency(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Alert(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Critical(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Error(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Warning(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Notice(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Info(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Debug(Message, [Context[1], Context[2], Context[3], Context[4]]);
+
+ Logger.Log(LOG_EMERG, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_ALERT, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_CRIT, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_ERR, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_WARNING, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_NOTICE, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_INFO, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_DEBUG, Message, [Context[1], Context[2], Context[3], Context[4]]);
+
+ Logger.LOG(LOG_UNKNOWN, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ RenameFile('renegade.log', CurrentClass + 'Test.log');
+
+end.
+
diff --git a/tests/Makefile.fpc b/tests/Makefile.fpc
new file mode 100644
index 0000000..7935996
--- /dev/null
+++ b/tests/Makefile.fpc
@@ -0,0 +1,23 @@
+#
+# Makefile.fpc for hash units example
+#
+
+[target]
+programs=NullHandlerTest ConsoleHandlerTest FileHandlerTest RecordHandlerReadTest RecordHandlerTest StreamHandlerFileTest StreamHandlerStreamTest StreamHandlerStreamTStreamTest SysLogHandlerTest
+
+[require]
+packages=
+
+[install]
+fpcpackage=y
+
+[compiler]
+options=-Fu..
+
+[default]
+fpcdir=${FPCDIR}
+
+
+
+
+
diff --git a/tests/NullHandlerTest.pp b/tests/NullHandlerTest.pp
new file mode 100644
index 0000000..abb65dc
--- /dev/null
+++ b/tests/NullHandlerTest.pp
@@ -0,0 +1,81 @@
+{*******************************************************}
+
+{ Renegade BBS }
+
+{ Copyright (c) 1990-2013 The Renegade Dev Team }
+{ Copyleft (ↄ) 2016-2017 Renegade BBS }
+
+{ This file is part of Renegade BBS }
+
+{ Renegade is free software: you can redistribute it }
+{ and/or modify it under the terms of the GNU General }
+{ Public License as published by the Free Software }
+{ Foundation, either version 3 of the License, or }
+{ (at your option) any later version. }
+
+{ Renegade 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. See the GNU General Public }
+{ License for more details. }
+
+{ You should have received a copy of the GNU General }
+{ Public License along with Renegade. If not, see }
+{ . }
+
+{*******************************************************}
+{ _______ __ }
+{ | _ .-----.-----.-----.-----.---.-.--| .-----. }
+{ |. l | -__| | -__| _ | _ | _ | -__| }
+{ |. _ |_____|__|__|_____|___ |___._|_____|_____| }
+{ |: | | |_____| }
+{ |::.|:. | }
+{ `--- ---' }
+{*******************************************************}
+{$mode objfpc}
+{$codepage utf8}
+{$h+}
+{ namespace Renegade.Logger }
+{ Program to test the Logger.NullHandler class }
+Program NullHandlerTest;
+
+Uses
+ Classes,
+ SysUtils,
+ Renegade.Logger,
+ Logger.NullHandler,
+ Logger.LoggerInterface;
+
+const
+ Message = 'This is a log message';
+ CurrentClass = 'NullHandler';
+var
+ Handler : NullHandler;
+ Logger : RTLogger;
+ Context : array [1..4] of ansistring = (CurrentClass, 'True', 'Testing', 'True');
+begin
+
+ Handler := NullHandler.Create;
+ Logger := RTLogger.Create(Handler);
+ Logger.Emergency(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Alert(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Critical(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Error(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Warning(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Notice(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Info(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Debug(Message, [Context[1], Context[2], Context[3], Context[4]]);
+
+ Logger.Log(LOG_EMERG, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_ALERT, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_CRIT, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_ERR, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_WARNING, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_NOTICE, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_INFO, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_DEBUG, Message, [Context[1], Context[2], Context[3], Context[4]]);
+
+ Logger.LOG(LOG_UNKNOWN, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ //RenameFile('renegade.log', CurrentClass + 'Test.log');
+end.
+
diff --git a/tests/LoggerRecordRead.pp b/tests/RecordHandlerReadTest.pp
similarity index 95%
rename from tests/LoggerRecordRead.pp
rename to tests/RecordHandlerReadTest.pp
index f962756..71f5dfd 100644
--- a/tests/LoggerRecordRead.pp
+++ b/tests/RecordHandlerReadTest.pp
@@ -41,12 +41,14 @@
Program to read data we wrote to renegade.log
using Logger.RecordHandler.
}
-program LoggerRecordRead;
+program RecordHandlerReadTest;
uses
SysUtils,
Classes;
+const
+ LogFile = 'RecordHandlerTest.log';
type
TLogRecord = record
Level: byte;
@@ -57,14 +59,15 @@ type
Context: string[255];
LogDateTime: TDateTime;
end;
+
var
LogRecord: TLogRecord;
FileRecord: file of TLogRecord;
i: byte;
begin
- if FileExists('renegade.log') then
+ if FileExists(LogFile) then
begin
- AssignFile(FileRecord, 'renegade.log');
+ AssignFile(FileRecord, LogFile);
Reset(FileRecord);
diff --git a/tests/RecordHandlerTest.pp b/tests/RecordHandlerTest.pp
new file mode 100644
index 0000000..8f8b260
--- /dev/null
+++ b/tests/RecordHandlerTest.pp
@@ -0,0 +1,81 @@
+{*******************************************************}
+
+{ Renegade BBS }
+
+{ Copyright (c) 1990-2013 The Renegade Dev Team }
+{ Copyleft (ↄ) 2016-2017 Renegade BBS }
+
+{ This file is part of Renegade BBS }
+
+{ Renegade is free software: you can redistribute it }
+{ and/or modify it under the terms of the GNU General }
+{ Public License as published by the Free Software }
+{ Foundation, either version 3 of the License, or }
+{ (at your option) any later version. }
+
+{ Renegade 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. See the GNU General Public }
+{ License for more details. }
+
+{ You should have received a copy of the GNU General }
+{ Public License along with Renegade. If not, see }
+{ . }
+
+{*******************************************************}
+{ _______ __ }
+{ | _ .-----.-----.-----.-----.---.-.--| .-----. }
+{ |. l | -__| | -__| _ | _ | _ | -__| }
+{ |. _ |_____|__|__|_____|___ |___._|_____|_____| }
+{ |: | | |_____| }
+{ |::.|:. | }
+{ `--- ---' }
+{*******************************************************}
+{$mode objfpc}
+{$codepage utf8}
+{$h+}
+{ namespace Renegade.Logger }
+{ Program to test the Logger.RecordHandler class }
+Program RecordHandlerTest;
+
+Uses
+ Classes,
+ SysUtils,
+ Renegade.Logger,
+ Logger.RecordHandler,
+ Logger.LoggerInterface;
+
+const
+ Message = 'This is a log message';
+ CurrentClass = 'RecordHandler';
+var
+ Handler : RecordHandler;
+ Logger : RTLogger;
+ Context : array [1..4] of ansistring = (CurrentClass, 'True', 'Testing', 'True');
+begin
+
+ Handler := RecordHandler.Create;
+ Logger := RTLogger.Create(Handler);
+ Logger.Emergency(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Alert(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Critical(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Error(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Warning(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Notice(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Info(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Debug(Message, [Context[1], Context[2], Context[3], Context[4]]);
+
+ Logger.Log(LOG_EMERG, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_ALERT, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_CRIT, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_ERR, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_WARNING, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_NOTICE, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_INFO, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_DEBUG, Message, [Context[1], Context[2], Context[3], Context[4]]);
+
+ Logger.LOG(LOG_UNKNOWN, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ RenameFile('renegade.log', CurrentClass + 'Test.log');
+end.
+
diff --git a/tests/StreamHandlerFileTest.pp b/tests/StreamHandlerFileTest.pp
new file mode 100644
index 0000000..3073a3d
--- /dev/null
+++ b/tests/StreamHandlerFileTest.pp
@@ -0,0 +1,81 @@
+{*******************************************************}
+
+{ Renegade BBS }
+
+{ Copyright (c) 1990-2013 The Renegade Dev Team }
+{ Copyleft (ↄ) 2016-2017 Renegade BBS }
+
+{ This file is part of Renegade BBS }
+
+{ Renegade is free software: you can redistribute it }
+{ and/or modify it under the terms of the GNU General }
+{ Public License as published by the Free Software }
+{ Foundation, either version 3 of the License, or }
+{ (at your option) any later version. }
+
+{ Renegade 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. See the GNU General Public }
+{ License for more details. }
+
+{ You should have received a copy of the GNU General }
+{ Public License along with Renegade. If not, see }
+{ . }
+
+{*******************************************************}
+{ _______ __ }
+{ | _ .-----.-----.-----.-----.---.-.--| .-----. }
+{ |. l | -__| | -__| _ | _ | _ | -__| }
+{ |. _ |_____|__|__|_____|___ |___._|_____|_____| }
+{ |: | | |_____| }
+{ |::.|:. | }
+{ `--- ---' }
+{*******************************************************}
+{$mode objfpc}
+{$codepage utf8}
+{$h+}
+{ namespace Renegade.Logger }
+{ Program to test the Logger.NullHandler class }
+Program StreamHandlerFileTest;
+
+Uses
+ Classes,
+ SysUtils,
+ Renegade.Logger,
+ Logger.StreamHandler,
+ Logger.LoggerInterface;
+
+const
+ Message = 'This is a log message';
+ CurrentClass = 'StreamHandler';
+var
+ Handler : StreamHandler;
+ Logger : RTLogger;
+ Context : array [1..4] of ansistring = (CurrentClass, 'True', 'Testing', 'True');
+begin
+
+ Handler := StreamHandler.Create('renegade.log');
+ Logger := RTLogger.Create(Handler);
+ Logger.Emergency(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Alert(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Critical(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Error(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Warning(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Notice(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Info(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Debug(Message, [Context[1], Context[2], Context[3], Context[4]]);
+
+ Logger.Log(LOG_EMERG, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_ALERT, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_CRIT, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_ERR, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_WARNING, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_NOTICE, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_INFO, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_DEBUG, Message, [Context[1], Context[2], Context[3], Context[4]]);
+
+ Logger.LOG(LOG_UNKNOWN, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ RenameFile('renegade.log', CurrentClass + 'FileTest.log');
+end.
+
diff --git a/tests/StreamHandlerStreamTStreamTest.pp b/tests/StreamHandlerStreamTStreamTest.pp
new file mode 100644
index 0000000..12e68ca
--- /dev/null
+++ b/tests/StreamHandlerStreamTStreamTest.pp
@@ -0,0 +1,87 @@
+{*******************************************************}
+
+{ Renegade BBS }
+
+{ Copyright (c) 1990-2013 The Renegade Dev Team }
+{ Copyleft (ↄ) 2016-2017 Renegade BBS }
+
+{ This file is part of Renegade BBS }
+
+{ Renegade is free software: you can redistribute it }
+{ and/or modify it under the terms of the GNU General }
+{ Public License as published by the Free Software }
+{ Foundation, either version 3 of the License, or }
+{ (at your option) any later version. }
+
+{ Renegade 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. See the GNU General Public }
+{ License for more details. }
+
+{ You should have received a copy of the GNU General }
+{ Public License along with Renegade. If not, see }
+{ . }
+
+{*******************************************************}
+{ _______ __ }
+{ | _ .-----.-----.-----.-----.---.-.--| .-----. }
+{ |. l | -__| | -__| _ | _ | _ | -__| }
+{ |. _ |_____|__|__|_____|___ |___._|_____|_____| }
+{ |: | | |_____| }
+{ |::.|:. | }
+{ `--- ---' }
+{*******************************************************}
+{$mode objfpc}
+{$codepage utf8}
+{$h+}
+{ namespace Renegade.Logger }
+{ Program to test the Logger.StreamHandler class }
+{ using TMemoryStream to show how you can use any }
+{ custom TStream implementation. }
+Program StreamHandlerStreamTStreamTest;
+
+Uses
+ Classes,
+ SysUtils,
+ Renegade.Logger,
+ Logger.StreamHandler,
+ Logger.LoggerInterface;
+
+const
+ Message = 'This is a log message';
+ CurrentClass = 'StreamHandler';
+var
+ Handler : StreamHandler;
+ MemoryStream : TMemoryStream; // Test using a TMemoryStream
+ Logger : RTLogger;
+ Context : array [1..4] of ansistring = (CurrentClass, 'True', 'Testing', 'True');
+begin
+
+ MemoryStream := TMemoryStream.Create;
+ Handler := StreamHandler.Create(MemoryStream);
+ Logger := RTLogger.Create(Handler);
+ Logger.Emergency(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Alert(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Critical(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Error(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Warning(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Notice(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Info(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Debug(Message, [Context[1], Context[2], Context[3], Context[4]]);
+
+ Logger.Log(LOG_EMERG, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_ALERT, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_CRIT, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_ERR, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_WARNING, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_NOTICE, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_INFO, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_DEBUG, Message, [Context[1], Context[2], Context[3], Context[4]]);
+
+ Logger.LOG(LOG_UNKNOWN, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ //RenameFile('renegade.log', CurrentClass + 'StreamTest.log');
+ MemoryStream.SaveToFile(CurrentClass + 'StreamTStreamTest.log');
+ MemoryStream.Free;
+end.
+
diff --git a/tests/StreamHandlerStreamTest.pp b/tests/StreamHandlerStreamTest.pp
new file mode 100644
index 0000000..81b6fe2
--- /dev/null
+++ b/tests/StreamHandlerStreamTest.pp
@@ -0,0 +1,83 @@
+{*******************************************************}
+
+{ Renegade BBS }
+
+{ Copyright (c) 1990-2013 The Renegade Dev Team }
+{ Copyleft (ↄ) 2016-2017 Renegade BBS }
+
+{ This file is part of Renegade BBS }
+
+{ Renegade is free software: you can redistribute it }
+{ and/or modify it under the terms of the GNU General }
+{ Public License as published by the Free Software }
+{ Foundation, either version 3 of the License, or }
+{ (at your option) any later version. }
+
+{ Renegade 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. See the GNU General Public }
+{ License for more details. }
+
+{ You should have received a copy of the GNU General }
+{ Public License along with Renegade. If not, see }
+{ . }
+
+{*******************************************************}
+{ _______ __ }
+{ | _ .-----.-----.-----.-----.---.-.--| .-----. }
+{ |. l | -__| | -__| _ | _ | _ | -__| }
+{ |. _ |_____|__|__|_____|___ |___._|_____|_____| }
+{ |: | | |_____| }
+{ |::.|:. | }
+{ `--- ---' }
+{*******************************************************}
+{$mode objfpc}
+{$codepage utf8}
+{$h+}
+{ namespace Renegade.Logger }
+{ Program to test the Logger.StreamHandler class using TStream }
+Program StreamHandlerStreamTest;
+
+Uses
+ Classes,
+ SysUtils,
+ Renegade.Logger,
+ Logger.StreamHandler,
+ Logger.LoggerInterface;
+
+const
+ Message = 'This is a log message';
+ CurrentClass = 'StreamHandler';
+var
+ Handler : StreamHandler;
+ FileStream : TFileStream; // Test using a TFileStream
+ Logger : RTLogger;
+ Context : array [1..4] of ansistring = (CurrentClass, 'True', 'Testing', 'True');
+begin
+
+ FileStream := TFileStream.Create('renegade.log', fmOpenWrite or fmCreate);
+ Handler := StreamHandler.Create(FileStream);
+ Logger := RTLogger.Create(Handler);
+ Logger.Emergency(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Alert(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Critical(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Error(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Warning(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Notice(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Info(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Debug(Message, [Context[1], Context[2], Context[3], Context[4]]);
+
+ Logger.Log(LOG_EMERG, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_ALERT, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_CRIT, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_ERR, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_WARNING, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_NOTICE, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_INFO, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_DEBUG, Message, [Context[1], Context[2], Context[3], Context[4]]);
+
+ Logger.LOG(LOG_UNKNOWN, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ RenameFile('renegade.log', CurrentClass + 'StreamTest.log');
+end.
+
diff --git a/tests/SysLogHandlerTest.pp b/tests/SysLogHandlerTest.pp
new file mode 100644
index 0000000..c941dcf
--- /dev/null
+++ b/tests/SysLogHandlerTest.pp
@@ -0,0 +1,83 @@
+{*******************************************************}
+
+{ Renegade BBS }
+
+{ Copyright (c) 1990-2013 The Renegade Dev Team }
+{ Copyleft (ↄ) 2016-2017 Renegade BBS }
+
+{ This file is part of Renegade BBS }
+
+{ Renegade is free software: you can redistribute it }
+{ and/or modify it under the terms of the GNU General }
+{ Public License as published by the Free Software }
+{ Foundation, either version 3 of the License, or }
+{ (at your option) any later version. }
+
+{ Renegade 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. See the GNU General Public }
+{ License for more details. }
+
+{ You should have received a copy of the GNU General }
+{ Public License along with Renegade. If not, see }
+{ . }
+
+{*******************************************************}
+{ _______ __ }
+{ | _ .-----.-----.-----.-----.---.-.--| .-----. }
+{ |. l | -__| | -__| _ | _ | _ | -__| }
+{ |. _ |_____|__|__|_____|___ |___._|_____|_____| }
+{ |: | | |_____| }
+{ |::.|:. | }
+{ `--- ---' }
+{*******************************************************}
+{$mode objfpc}
+{$codepage utf8}
+{$h+}
+{ namespace Renegade.Logger }
+{ Program to test the Logger.SysLogHandler class }
+Program SysLogHandlerTest;
+
+Uses
+ Classes,
+ SysUtils,
+ Renegade.Logger,
+ Logger.SysLogHandler,
+ Logger.LoggerInterface;
+
+const
+ Message = 'This is a log message';
+ CurrentClass = 'SysLogHandler';
+var
+ Handler : SysLogHandler;
+ Logger : RTLogger;
+ Context : array [1..4] of ansistring = (CurrentClass, 'True', 'Testing', 'True');
+begin
+
+
+ Handler := SysLogHandler.Create(LOG_DAEMON); // man syslog for others
+ Logger := RTLogger.Create(Handler);
+ Logger.Emergency(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Alert(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Critical(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Error(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Warning(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Notice(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Info(Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Debug(Message, [Context[1], Context[2], Context[3], Context[4]]);
+
+ Logger.Log(LOG_EMERG, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_ALERT, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_CRIT, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_ERR, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_WARNING, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_NOTICE, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_INFO, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ Logger.Log(LOG_DEBUG, Message, [Context[1], Context[2], Context[3], Context[4]]);
+
+ Logger.LOG(LOG_UNKNOWN, Message, [Context[1], Context[2], Context[3], Context[4]]);
+ //RenameFile('renegade.log', CurrentClass + 'StreamTest.log');
+ // tail -f /var/log/syslog for results.
+end.
+
diff --git a/tests/autogen.sh b/tests/autogen.sh
new file mode 100755
index 0000000..ba88cf5
--- /dev/null
+++ b/tests/autogen.sh
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+fpcBase=$1
+
+if [ "$fpcBase" == "" ]; then
+ echo "Need an FPC base to fpc sources"
+ echo "Usually /usr/lib{32,64}/fpc/{fpc-version}/ on Linux machines."
+ echo "or C:\FPC\..\.. on Windows machines."
+ exit 255
+fi
+[ -f "Makefile" ] && rm Makefile
+FPCDIR="$fpcBase" fpcmake
+
diff --git a/tests/create_record_handler_data.sh b/tests/create_record_handler_data.sh
new file mode 100755
index 0000000..31a04cf
--- /dev/null
+++ b/tests/create_record_handler_data.sh
@@ -0,0 +1,13 @@
+#!/bin/bash
+if [ ! -f "RecordHandlerTest" ]; then
+ echo " Run ./autogen.sh [fpc/unit/base] and then run make"
+ echo " and run this program again"
+ exit 255;
+fi
+echo ""
+seq 1 100 | while read i
+do
+echo -en "\r\033[K Current Record : $i";
+#./RecordHandlerTest
+sleep 2 # Computer is to fast, need a delay.
+done