aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2008-06-01 13:51:46 +0000
committerAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2008-06-01 13:51:46 +0000
commit87294dc0c47918934ac032e9a080e8cf386f9bf2 (patch)
tree36dc289aa22200601ec28f2d7b497cd078e34ab6 /test
parent3b9f4ed10c9eb6901f33c7037989f3b67eb5de07 (diff)
downloadpaludis-87294dc0c47918934ac032e9a080e8cf386f9bf2.tar.gz
paludis-87294dc0c47918934ac032e9a080e8cf386f9bf2.tar.xz
New Selection + Filter + Generator interface using Environment, replacing the old PackageDatabase Query. Fixes: ticket:559
Diffstat (limited to 'test')
-rw-r--r--test/Makefile.am6
-rw-r--r--test/test_concepts.hh56
2 files changed, 60 insertions, 2 deletions
diff --git a/test/Makefile.am b/test/Makefile.am
index c9124efb0..835f4cddc 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -7,11 +7,13 @@ libtest_a_SOURCES = \
test_framework.cc \
test_framework.hh \
test_runner.cc \
- test_runner.hh
+ test_runner.hh \
+ test_concepts.hh
libtestnomain_a_SOURCES = \
test_framework.cc \
- test_framework.hh
+ test_framework.hh \
+ test_concepts.hh
XFAIL_TESTS = test_fail_TEST
TESTS = test_pass_TEST $(XFAIL_TESTS)
diff --git a/test/test_concepts.hh b/test/test_concepts.hh
new file mode 100644
index 000000000..925b4e4a6
--- /dev/null
+++ b/test/test_concepts.hh
@@ -0,0 +1,56 @@
+/* vim: set sw=4 sts=4 et foldmethod=syntax : */
+
+/*
+ * Copyright (c) 2008 Ciaran McCreesh
+ *
+ * This file is part of the Paludis package manager. Paludis is free software;
+ * you can redistribute it and/or modify it under the terms of the GNU General
+ * Public License version 2, as published by the Free Software Foundation.
+ *
+ * Paludis 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 PALUDIS_GUARD_TEST_TEST_CONCEPTS_HH
+#define PALUDIS_GUARD_TEST_TEST_CONCEPTS_HH 1
+
+namespace test
+{
+}
+
+#define TEST_XSTRINGIFY(x) #x
+#define TEST_STRINGIFY(x) TEST_XSTRINGIFY(x)
+
+#define TESTCASE_SEMIREGULAR(Type, initial_instance) \
+ struct Type ## IsSemiRegularTest : TestCase \
+ { \
+ Type ## IsSemiRegularTest() : TestCase(TEST_STRINGIFY(Type) " is semi regular") { } \
+ \
+ void run() \
+ { \
+ Type copy(initial_instance); \
+ Type assigned = initial_instance; \
+ assigned = initial_instance; \
+ Type * free_store = new Type(initial_instance); \
+ delete free_store; \
+ } \
+ } Type ## _is_semi_regular_test;
+
+#define TESTCASE_STRINGIFYABLE(Type, initial_instance, str) \
+ struct Type ## IsStringifiableTest : TestCase \
+ { \
+ Type ## IsStringifiableTest() : TestCase(TEST_STRINGIFY(Type) " is stringifiable") { } \
+ \
+ void run() \
+ { \
+ TEST_CHECK_STRINGIFY_EQUAL(stringify(initial_instance), str); \
+ } \
+ } Type ## _is_stringifiable_test;
+
+#endif