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