The following commit has been merged in the master branch:
commit fcf328f4d1cbe613b6c9c57b33dabbffb28cbdf0
Author: Guillem Jover <[email protected]>
Date:   Sun Feb 21 06:13:30 2010 +0100

    libdpkg: Add unit test for pkg-list module

diff --git a/lib/dpkg/test/.gitignore b/lib/dpkg/test/.gitignore
index b29620b..405576b 100644
--- a/lib/dpkg/test/.gitignore
+++ b/lib/dpkg/test/.gitignore
@@ -4,6 +4,7 @@ t-command
 t-macros
 t-path
 t-pkginfo
+t-pkg-list
 t-string
 t-test
 t-varbuf
diff --git a/lib/dpkg/test/Makefile.am b/lib/dpkg/test/Makefile.am
index 1c61814..db302c5 100644
--- a/lib/dpkg/test/Makefile.am
+++ b/lib/dpkg/test/Makefile.am
@@ -17,7 +17,8 @@ check_PROGRAMS = \
        t-varbuf \
        t-ar \
        t-version \
-       t-pkginfo
+       t-pkginfo \
+       t-pkg-list
 
 CHECK_LDADD = ../libdpkg.a
 
@@ -26,6 +27,7 @@ t_command_LDADD = $(CHECK_LDADD)
 t_macros_LDADD = $(CHECK_LDADD)
 t_path_LDADD = $(CHECK_LDADD)
 t_pkginfo_LDADD = $(CHECK_LDADD)
+t_pkg_list_LDADD = $(CHECK_LDADD)
 t_string_LDADD = $(CHECK_LDADD)
 t_buffer_LDADD = $(CHECK_LDADD)
 t_test_LDADD = $(CHECK_LDADD)
diff --git a/lib/dpkg/test/t-pkg-list.c b/lib/dpkg/test/t-pkg-list.c
new file mode 100644
index 0000000..b1815c1
--- /dev/null
+++ b/lib/dpkg/test/t-pkg-list.c
@@ -0,0 +1,87 @@
+/*
+ * libdpkg - Debian packaging suite library routines
+ * t-pkg-list.c - test pkg-list implementation
+ *
+ * Copyright © 2010 Guillem Jover <[email protected]>
+ *
+ * This 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 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, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <dpkg/test.h>
+#include <dpkg/dpkg-db.h>
+#include <dpkg/pkg-list.h>
+
+static void
+test_pkg_list_new(void)
+{
+       struct pkg_list *l1, *l2, *l3;
+       struct pkginfo pkg;
+
+       l1 = pkg_list_new(&pkg, NULL);
+       test_pass(l1 != NULL);
+       test_pass(l1->next == NULL);
+       test_pass(l1->pkg == &pkg);
+
+       l2 = pkg_list_new(&pkg, l1);
+       test_pass(l2 != NULL);
+       test_pass(l2->next == l1);
+       test_pass(l2->pkg == &pkg);
+
+       l3 = pkg_list_new(&pkg, l2);
+       test_pass(l3 != NULL);
+       test_pass(l3->next == l2);
+       test_pass(l3->pkg == &pkg);
+
+       pkg_list_free(l3);
+}
+
+static void
+test_pkg_list_prepend(void)
+{
+       struct pkg_list *head = NULL, *l1, *l2, *l3;
+       struct pkginfo pkg;
+
+       pkg_list_prepend(&head, &pkg);
+       test_pass(head != NULL);
+       test_pass(head->next == NULL);
+       test_pass(head->pkg == &pkg);
+       l1 = head;
+
+       pkg_list_prepend(&head, &pkg);
+       test_pass(head != NULL);
+       test_pass(head->next == l1);
+       test_pass(head->pkg == &pkg);
+       l2 = head;
+
+       pkg_list_prepend(&head, &pkg);
+       test_pass(head != NULL);
+       test_pass(head->next == l2);
+       test_pass(head->pkg == &pkg);
+       l3 = head;
+
+       pkg_list_prepend(&head, &pkg);
+       test_pass(head != NULL);
+       test_pass(head->next == l3);
+       test_pass(head->pkg == &pkg);
+
+       pkg_list_free(head);
+}
+
+static void
+test(void)
+{
+       test_pkg_list_new();
+       test_pkg_list_prepend();
+}
+

-- 
dpkg's main repository


-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to