summaryrefslogtreecommitdiff
path: root/storage/ndb/src/common/logger/listtest
diff options
context:
space:
mode:
Diffstat (limited to 'storage/ndb/src/common/logger/listtest')
-rw-r--r--storage/ndb/src/common/logger/listtest/LogHandlerListUnitTest.cpp164
-rw-r--r--storage/ndb/src/common/logger/listtest/LogHandlerListUnitTest.hpp40
-rw-r--r--storage/ndb/src/common/logger/listtest/Makefile14
3 files changed, 218 insertions, 0 deletions
diff --git a/storage/ndb/src/common/logger/listtest/LogHandlerListUnitTest.cpp b/storage/ndb/src/common/logger/listtest/LogHandlerListUnitTest.cpp
new file mode 100644
index 00000000000..7de9ee46479
--- /dev/null
+++ b/storage/ndb/src/common/logger/listtest/LogHandlerListUnitTest.cpp
@@ -0,0 +1,164 @@
+/* Copyright (C) 2003 MySQL AB
+
+ This program 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 2 of the License, or
+ (at your option) any later version.
+
+ 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. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+
+#include <ndb_global.h>
+
+#include "LogHandlerListUnitTest.hpp"
+
+#include <ConsoleLogHandler.hpp>
+#include <FileLogHandler.hpp>
+#include <SysLogHandler.hpp>
+
+#include <NdbOut.hpp>
+
+typedef bool (*TESTFUNC)(const char*);
+typedef struct
+{
+ const char* name;
+ TESTFUNC test;
+}Tests;
+
+static Tests testCases[] = { {"Add", &LogHandlerListUnitTest::testAdd},
+ {"Remove", &LogHandlerListUnitTest::testRemove},
+ {"Traverse Next", &LogHandlerListUnitTest::testTraverseNext}
+ };
+
+
+int testFailed = 0;
+
+int main(int argc, char* argv[])
+{
+ char str[256];
+ int testCount = (sizeof(testCases) / sizeof(Tests));
+ ndbout << "Starting " << testCount << " tests..." << endl;
+ for (int i = 0; i < testCount; i++)
+ {
+ ndbout << "-- " << " Test " << i + 1
+ << " [" << testCases[i].name << "] --" << endl;
+ BaseString::snprintf(str, 256, "%s %s %s %d", "Logging ",
+ testCases[i].name, " message ", i);
+ if (testCases[i].test(str))
+ {
+ ndbout << "-- Passed --" << endl;
+ }
+ else
+ {
+ ndbout << "-- Failed -- " << endl;
+ }
+
+ }
+ ndbout << endl << "-- " << testCount - testFailed << " passed, "
+ << testFailed << " failed --" << endl;
+
+ return 0;
+}
+
+bool
+LogHandlerListUnitTest::testAdd(const char* msg)
+{
+ bool rc = true;
+ LogHandlerList list;
+ int size = 10;
+ for (int i = 0; i < size; i++)
+ {
+ list.add(new ConsoleLogHandler());
+ }
+ if (list.size() != size)
+ {
+ rc = false;
+ }
+ ndbout << "List size: " << list.size() << endl;
+
+
+ return rc;
+}
+bool
+LogHandlerListUnitTest::testRemove(const char* msg)
+{
+ bool rc = true;
+
+ LogHandlerList list;
+ int size = 10;
+ LogHandler* pHandlers[10];
+ for (int i = 0; i < size; i++)
+ {
+ pHandlers[i] = new ConsoleLogHandler();
+ list.add(pHandlers[i]);
+ }
+
+ // Remove
+
+ for (int i = 0; i < size; i++)
+ {
+ if (!list.remove(pHandlers[i]))
+ {
+ ndbout << "Could not remove handler!" << endl;
+ }
+ else
+ {
+ ndbout << "List size: " << list.size() << endl;
+ }
+ }
+
+ return rc;
+
+}
+bool
+LogHandlerListUnitTest::testTraverseNext(const char* msg)
+{
+ bool rc = true;
+ LogHandlerList list;
+ int size = 10;
+ LogHandler* pHandlers[10];
+
+ for (int i = 0; i < size; i++)
+ {
+ char* str = new char[3];
+ pHandlers[i] = new ConsoleLogHandler();
+ BaseString::snprintf(str, 3, "%d", i);
+ pHandlers[i]->setDateTimeFormat(str);
+ list.add(pHandlers[i]);
+ }
+
+ ndbout << "List size: " << list.size() << endl;
+
+ LogHandler* pHandler = NULL;
+ int i = 0;
+ while ((pHandler = list.next()) != NULL)
+ {
+ ndbout << "Handler[" << i++ << "]:dateformat = "
+ << pHandler->getDateTimeFormat() << endl;
+ }
+
+ list.removeAll();
+
+ return rc;
+
+}
+
+void
+LogHandlerListUnitTest::error(const char* msg)
+{
+ testFailed++;
+ ndbout << "Test failed: " << msg << endl;
+}
+
+LogHandlerListUnitTest::LogHandlerListUnitTest()
+{
+}
+LogHandlerListUnitTest::~LogHandlerListUnitTest()
+{
+}
diff --git a/storage/ndb/src/common/logger/listtest/LogHandlerListUnitTest.hpp b/storage/ndb/src/common/logger/listtest/LogHandlerListUnitTest.hpp
new file mode 100644
index 00000000000..e98a2722b8d
--- /dev/null
+++ b/storage/ndb/src/common/logger/listtest/LogHandlerListUnitTest.hpp
@@ -0,0 +1,40 @@
+/* Copyright (C) 2003 MySQL AB
+
+ This program 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 2 of the License, or
+ (at your option) any later version.
+
+ 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. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+
+#ifndef LOGHANDLERLISTUNITTEST_H
+#define LOGHANDLERLISTUNITTEST_H
+
+#include "LogHandlerList.hpp"
+
+/**
+ * Unit test of LogHandlerList.
+ *
+ * @version #@ $Id: LogHandlerListUnitTest.hpp,v 1.1 2002/03/13 17:59:15 eyualex Exp $
+ */
+class LogHandlerListUnitTest
+{
+public:
+
+ static bool testAdd(const char* msg);
+ static bool testRemove(const char* msg);
+ static bool testTraverseNext(const char* msg);
+
+ void error(const char* msg);
+
+ LogHandlerListUnitTest();
+ ~LogHandlerListUnitTest();
+};
+#endif
diff --git a/storage/ndb/src/common/logger/listtest/Makefile b/storage/ndb/src/common/logger/listtest/Makefile
new file mode 100644
index 00000000000..4688a5e5a2f
--- /dev/null
+++ b/storage/ndb/src/common/logger/listtest/Makefile
@@ -0,0 +1,14 @@
+include .defs.mk
+
+TYPE :=
+
+BIN_TARGET := listtest
+BIN_TARGET_ARCHIVES := portlib logger general
+
+SOURCES := LogHandlerListUnitTest.cpp
+
+CCFLAGS_LOC += -I../ -I$(NDB_TOP)/include/logger -I$(NDB_TOP)/include/portlib
+
+include $(NDB_TOP)/Epilogue.mk
+
+