aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2010-06-28 18:34:18 +0000
committerrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2010-06-28 18:34:18 +0000
commit4b7b8dd790147d834373bef43b57034fcec3d1a0 (patch)
tree5f64d6331a0260404d5b6d96513d0c28bb76b770 /tests
parent3894ede3a1a894660486867ee5af813d25d9aa6b (diff)
Backport unit test API to 1.4.
Review: https://reviewboard.asterisk.org/r/750/ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@272878 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'tests')
-rw-r--r--tests/Makefile32
-rw-r--r--tests/test_skel.c82
2 files changed, 114 insertions, 0 deletions
diff --git a/tests/Makefile b/tests/Makefile
new file mode 100644
index 000000000..712b4401b
--- /dev/null
+++ b/tests/Makefile
@@ -0,0 +1,32 @@
+#
+# Asterisk -- A telephony toolkit for Linux.
+#
+# Makefile for test modules
+#
+# Copyright (C) 1999-2010, Digium, Inc.
+#
+# This program is free software, distributed under the terms of
+# the GNU General Public License
+#
+
+-include ../menuselect.makeopts ../menuselect.makedeps ../makeopts
+
+MENUSELECT_CATEGORY=TESTS
+MENUSELECT_DESCRIPTION=Test Modules
+
+ALL_C_MODS:=$(patsubst %.c,%,$(wildcard test_*.c))
+ALL_CC_MODS:=$(patsubst %.cc,%,$(wildcard test_*.cc))
+
+C_MODS:=$(filter-out $(MENUSELECT_TESTS),$(ALL_C_MODS))
+CC_MODS:=$(filter-out $(MENUSELECT_TESTS),$(ALL_CC_MODS))
+
+LOADABLE_MODS:=$(C_MODS) $(CC_MODS)
+
+ifneq ($(findstring tests,$(MENUSELECT_EMBED)),)
+ EMBEDDED_MODS:=$(LOADABLE_MODS)
+ LOADABLE_MODS:=
+endif
+
+all: _all
+
+include $(ASTTOPDIR)/Makefile.moddir_rules
diff --git a/tests/test_skel.c b/tests/test_skel.c
new file mode 100644
index 000000000..c1ce5e844
--- /dev/null
+++ b/tests/test_skel.c
@@ -0,0 +1,82 @@
+/*
+ * Asterisk -- An open source telephony toolkit.
+ *
+ * Copyright (C) <Year>, <Your Name Here>
+ *
+ * <Your Name Here> <<Your Email Here>>
+ *
+ * See http://www.asterisk.org for more information about
+ * the Asterisk project. Please do not directly contact
+ * any of the maintainers of this project for assistance;
+ * the project provides a web site, mailing lists and IRC
+ * channels for your use.
+ *
+ * This program is free software, distributed under the terms of
+ * the GNU General Public License Version 2. See the LICENSE file
+ * at the top of the source tree.
+ */
+
+/*!
+ * \file
+ * \brief Skeleton Test
+ *
+ * \author\verbatim <Your Name Here> <<Your Email Here>> \endverbatim
+ *
+ * This is a skeleton for development of an Asterisk test module
+ * \ingroup tests
+ */
+
+/*** MODULEINFO
+ <depend>TEST_FRAMEWORK</depend>
+ ***/
+
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
+
+#include "asterisk/utils.h"
+#include "asterisk/module.h"
+#include "asterisk/test.h"
+
+AST_TEST_DEFINE(sample_test)
+{
+ void *ptr;
+
+ switch (cmd) {
+ case TEST_INIT:
+ info->name = "sample_test";
+ info->category = "main/sample/";
+ info->summary = "sample unit test";
+ info->description =
+ "This demonstrates what is required to implement "
+ "a unit test.";
+ return AST_TEST_NOT_RUN;
+ case TEST_EXECUTE:
+ break;
+ }
+
+ ast_test_status_update(test, "Executing sample test...\n");
+
+ if (!(ptr = ast_malloc(8))) {
+ ast_test_status_update(test, "ast_malloc() failed\n");
+ return AST_TEST_FAIL;
+ }
+
+ ast_free(ptr);
+
+ return AST_TEST_PASS;
+}
+
+static int unload_module(void)
+{
+ AST_TEST_UNREGISTER(sample_test);
+ return 0;
+}
+
+static int load_module(void)
+{
+ AST_TEST_REGISTER(sample_test);
+ return AST_MODULE_LOAD_SUCCESS;
+}
+
+AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Skeleton (sample) Test");