ISO8601OBJ = $(filter %.lo,$(ISO8601SRC:.cpp=.lo))
EXECPROGSRC = execprog.cpp execprog.h
EXECPROGOBJ = $(filter %.lo,$(EXECPROGSRC:.cpp=.lo))
-COMMCTXSRC = commctx.cpp commctx.h
-COMMCTXOBJ = $(filter %.lo,$(COMMCTXSRC:.cpp=.lo))
PTCOMMSRC = ptcomm.cpp ptcomm.h
PTCOMMOBJ = $(filter %.lo,$(PTCOMMSRC:.cpp=.lo))
+SMARTALISTSRC = smartalist.h
PLUGINLIBSTEST = pluginlib_test.cpp $(PLUGINLIBSSRC) $(UNITTESTSOBJ)
PLUGINLIBSTESTOBJ = $(filter %.lo,$(PLUGINLIBSTEST:.cpp=.lo))
ISO8601TEST = iso8601_test.cpp $(ISO8601SRC) $(UNITTESTSOBJ)
ISO8601TESTOBJ = $(filter %.lo,$(ISO8601TEST:.cpp=.lo))
+SMARTALISTTEST = smartalist_test.cpp $(SMARTALISTSRC) $(PLUGINLIBSOBJ) $(UNITTESTSOBJ)
+SMARTALISTTESTOBJ = $(filter %.lo,$(SMARTALISTTEST:.cpp=.lo))
TESTMETAPLUGINBACKENDSRC = test_metaplugin_backend.c
TESTMETAPLUGINBACKENDOBJ = $(TESTMETAPLUGINBACKENDSRC:.c=.lo)
# COMMONPLUGINOBJ = $(PLUGINLIBSOBJ) $(ISO8601OBJ) $(EXECPROGOBJ)
COMMONPLUGINOBJ = $(PLUGINLIBSOBJ) $(PTCOMMOBJ)
# COMMONPLUGINTESTS = pluginlib_test iso8601_test
-COMMONPLUGINTESTS = pluginlib_test
+COMMONPLUGINTESTS = pluginlib_test smartalist_test
.SUFFIXES: .c .cpp .lo
@echo "Building $@ ..."
$(NO_ECHO)$(LIBTOOL_LINK) --silent $(CXX) $(LDFLAGS) $(LIBCURL) $(LIBBAC) $(PLUGINLIBSTESTOBJ) -o $@
+smartalist_test: Makefile $(SMARTALISTTESTOBJ) $(SMARTALISTTESTOBJ)
+ @echo "Building $@ ..."
+ $(NO_ECHO)$(LIBTOOL_LINK) --silent $(CXX) $(LDFLAGS) $(LIBCURL) $(LIBBAC) $(SMARTALISTTESTOBJ) -o $@
+
iso8601_test: Makefile $(ISO8601TESTOBJ) $(ISO8601SRC)
@echo "Building $@ ..."
$(NO_ECHO)$(LIBTOOL_LINK) --silent $(CXX) $(LDFLAGS) $(LIBCURL) $(LIBBAC) $(PLUGINLIBSTESTOBJ) -o $@
$(LIBTOOL_INSTALL) $(INSTALL_PROGRAM) bpipe-fd.la $(DESTDIR)$(plugindir)
$(RMF) $(DESTDIR)$(plugindir)/bpipe-fd.la
-install-test-plugin: all
- $(MKDIR) $(DESTDIR)$(plugindir)
- $(LIBTOOL_INSTALL) $(INSTALL_PROGRAM) test-plugin-fd.la $(DESTDIR)$(plugindir)
- $(RMF) $(DESTDIR)$(plugindir)/test-plugin-fd.la
- $(LIBTOOL_INSTALL) $(INSTALL_PROGRAM) test-deltaseq-fd.la $(DESTDIR)$(plugindir)
- $(RMF) $(DESTDIR)$(plugindir)/test-deltaseq-fd.la
- $(LIBTOOL_INSTALL) $(INSTALL_PROGRAM) test-handlexacl-plugin-fd.la $(DESTDIR)$(plugindir)
- $(RMF) $(DESTDIR)$(plugindir)/test-handlexacl-plugin-fd.la
-
Makefile: Makefile.in $(topdir)/config.status
cd $(topdir) \
&& CONFIG_FILES=$(thisdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
Bacula® is a registered trademark of Kern Sibbald.
*/
-/*
- *
- * All rights reserved. IP transferred to Bacula Systems according to agreement.
+/**
+ * @file commctx.h
+ * @author Radosław Korzeniewski (radoslaw@korzeniewski.net)
+ * @brief Common definitions and utility functions for Inteos plugins - unittest.
+ * @version 1.1.0
+ * @date 2020-12-23
*
- * Common definitions and utility functions for Inteos plugins.
- * Functions defines a common framework used in our utilities and plugins.
- * Author: Radosław Korzeniewski, radekk@inteos.pl, Inteos Sp. z o.o.
*/
#include "pluginlib.h"
--- /dev/null
+/*
+ Bacula® - The Network Backup Solution
+
+ Copyright (C) 2007-2017 Bacula Systems SA
+ All rights reserved.
+
+ The main author of Bacula is Kern Sibbald, with contributions from many
+ others, a complete list can be found in the file AUTHORS.
+
+ Licensees holding a valid Bacula Systems SA license may use this file
+ and others of this release in accordance with the proprietary license
+ agreement provided in the LICENSE file. Redistribution of any part of
+ this release is not permitted.
+
+ Bacula® is a registered trademark of Kern Sibbald.
+*/
+/**
+ * @file smartalist_test.cpp
+ * @author Radosław Korzeniewski (radoslaw@korzeniewski.net)
+ * @brief Common definitions and utility functions for Inteos plugins - unittest.
+ * @version 1.1.0
+ * @date 2020-12-23
+ *
+ * @copyright Copyright (c) 2020 All rights reserved. IP transferred to Bacula Systems according to agreement.
+ */
+
+#include "pluginlib.h"
+#include "smartalist.h"
+#include "unittests.h"
+
+bFuncs *bfuncs;
+bInfo *binfo;
+
+static int referencenumber = 0;
+
+struct testclass
+{
+ testclass() { referencenumber++; };
+ ~testclass() { referencenumber--; };
+};
+
+int main()
+{
+ Unittests pluglib_test("smartalist_test");
+ testclass *ti;
+
+ // Pmsg0(0, "Initialize tests ...\n");
+
+ {
+ smart_alist<testclass> list;
+ ti = new testclass;
+ list.append(ti);
+ ok(referencenumber == 1, "check first insert");
+ }
+
+ ok(referencenumber == 0, "check first smart free");
+
+ constexpr const int refs = 100;
+ referencenumber = 0;
+
+ {
+ smart_alist<testclass> list;
+ for (int a = 0; a < refs; a++)
+ {
+ ti = new testclass;
+ list.append(ti);
+ }
+ ok(referencenumber == refs, "check bulk inserts");
+ }
+
+ ok(referencenumber == 0, "check smart free");
+
+
+ return report();
+}