diff --git a/tests/libxbps/Makefile b/tests/libxbps/Makefile index 90324fea..85406c10 100644 --- a/tests/libxbps/Makefile +++ b/tests/libxbps/Makefile @@ -11,6 +11,6 @@ SUBDIRS += plist_match SUBDIRS += plist_match_virtual SUBDIRS += plist_remove SUBDIRS += util -SUBDIRS += plist_find_virtualpkg_conf +SUBDIRS += find_pkg include ../../mk/subdir.mk diff --git a/tests/libxbps/common/Kyuafile b/tests/libxbps/common/Kyuafile index 6db08eba..670eda8d 100644 --- a/tests/libxbps/common/Kyuafile +++ b/tests/libxbps/common/Kyuafile @@ -12,4 +12,4 @@ atf_test_program{name="plist_match_virtual_test"} atf_test_program{name="plist_remove_test"} atf_test_program{name="plist_array_replace_test"} -include("plist_find_virtualpkg_conf/Kyuafile") +include("find_pkg/Kyuafile") diff --git a/tests/libxbps/find_pkg/Kyuafile b/tests/libxbps/find_pkg/Kyuafile new file mode 100644 index 00000000..ba7212fd --- /dev/null +++ b/tests/libxbps/find_pkg/Kyuafile @@ -0,0 +1,5 @@ +syntax("kyuafile", 1) + +test_suite("libxbps") + +atf_test_program{name="pkg_installed_in_pkgdb_test"} diff --git a/tests/libxbps/find_pkg/Makefile b/tests/libxbps/find_pkg/Makefile new file mode 100644 index 00000000..2350dedc --- /dev/null +++ b/tests/libxbps/find_pkg/Makefile @@ -0,0 +1,8 @@ +TOPDIR = ../../.. +-include $(TOPDIR)/config.mk + +TESTSSUBDIR = libxbps/find_pkg +TEST = pkg_installed_in_pkgdb_test +EXTRA_FILES = Kyuafile xbps.conf pkgdb.plist + +include $(TOPDIR)/mk/test.mk diff --git a/tests/libxbps/find_pkg/main.c b/tests/libxbps/find_pkg/main.c new file mode 100644 index 00000000..f7c0e42e --- /dev/null +++ b/tests/libxbps/find_pkg/main.c @@ -0,0 +1,96 @@ +/*- + * Copyright (c) 2012 Juan Romero Pardines. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *- + */ +#include +#include +#include + +ATF_TC(find_pkg_dict_installed_test); +ATF_TC_HEAD(find_pkg_dict_installed_test, tc) +{ + atf_tc_set_md_var(tc, "descr", "Test xbps_find_pkg_dict_installed"); +} +ATF_TC_BODY(find_pkg_dict_installed_test, tc) +{ + struct xbps_handle xh; + prop_dictionary_t dr; + const char *pkgver, *tcsdir; + + /* get test source dir */ + tcsdir = atf_tc_get_config_var(tc, "srcdir"); + + /* initialize xbps */ + memset(&xh, 0, sizeof(xh)); + xh.rootdir = "/tmp"; + xh.metadir = tcsdir; + ATF_REQUIRE_EQ(xbps_init(&xh), 0); + + dr = xbps_find_pkg_dict_installed("xbps", false); + ATF_REQUIRE_EQ(prop_object_type(dr), PROP_TYPE_DICTIONARY); + prop_dictionary_get_cstring_nocopy(dr, "pkgver", &pkgver); + ATF_REQUIRE_STREQ(pkgver, "xbps-0.14"); + + xbps_end(); +} + +ATF_TC(find_virtualpkg_dict_installed_test); +ATF_TC_HEAD(find_virtualpkg_dict_installed_test, tc) +{ + atf_tc_set_md_var(tc, "descr", "Test xbps_find_virtualpkg_dict_installed"); +} +ATF_TC_BODY(find_virtualpkg_dict_installed_test, tc) +{ + struct xbps_handle xh; + prop_dictionary_t dr; + const char *pkgver, *tcsdir; + char *cffile; + + /* get test source dir */ + tcsdir = atf_tc_get_config_var(tc, "srcdir"); + cffile = xbps_xasprintf("%s/xbps.conf", tcsdir); + ATF_REQUIRE(cffile != NULL); + + /* initialize xbps */ + memset(&xh, 0, sizeof(xh)); + xh.rootdir = "/tmp"; + xh.conffile = cffile; + xh.metadir = tcsdir; + ATF_REQUIRE_EQ(xbps_init(&xh), 0); + + dr = xbps_find_virtualpkg_dict_installed("xbps-src>=24", true); + ATF_REQUIRE_EQ(prop_object_type(dr), PROP_TYPE_DICTIONARY); + prop_dictionary_get_cstring_nocopy(dr, "pkgver", &pkgver); + ATF_REQUIRE_STREQ(pkgver, "xbps-src-git-20120312"); + + xbps_end(); +} + +ATF_TP_ADD_TCS(tp) +{ + ATF_TP_ADD_TC(tp, find_pkg_dict_installed_test); + ATF_TP_ADD_TC(tp, find_virtualpkg_dict_installed_test); + + return atf_no_error(); +} diff --git a/tests/libxbps/find_pkg/pkgdb.plist b/tests/libxbps/find_pkg/pkgdb.plist new file mode 100644 index 00000000..8ccd9836 --- /dev/null +++ b/tests/libxbps/find_pkg/pkgdb.plist @@ -0,0 +1,38 @@ + + + + + + automatic-install + + pkgname + xbps + pkgver + xbps-0.14 + short_desc + The XBPS package system + state + installed + version + 0.14 + + + automatic-install + + pkgname + xbps-src-git + pkgver + xbps-src-git-20120312 + provides + + xbps-src-9999 + + short_desc + The XBPS package system - binary package builder (git snaphost) + state + installed + version + 20120312 + + + diff --git a/tests/libxbps/find_pkg/xbps.conf b/tests/libxbps/find_pkg/xbps.conf new file mode 100644 index 00000000..6e8b158a --- /dev/null +++ b/tests/libxbps/find_pkg/xbps.conf @@ -0,0 +1 @@ +virtual-package xbps-src-git { targets = "xbps-src-9999" } diff --git a/tests/libxbps/plist_find_virtualpkg_conf/Kyuafile b/tests/libxbps/plist_find_virtualpkg_conf/Kyuafile deleted file mode 100644 index e35925cc..00000000 --- a/tests/libxbps/plist_find_virtualpkg_conf/Kyuafile +++ /dev/null @@ -1,6 +0,0 @@ -syntax("kyuafile", 1) - -test_suite("libxbps") - -atf_test_program{name="plist_find_virtualpkg_conf_test"} - diff --git a/tests/libxbps/plist_find_virtualpkg_conf/Makefile b/tests/libxbps/plist_find_virtualpkg_conf/Makefile deleted file mode 100644 index baaeb4db..00000000 --- a/tests/libxbps/plist_find_virtualpkg_conf/Makefile +++ /dev/null @@ -1,8 +0,0 @@ -TOPDIR = ../../.. --include $(TOPDIR)/config.mk - -TESTSSUBDIR = libxbps/plist_find_virtualpkg_conf -TEST = plist_find_virtualpkg_conf_test -EXTRA_FILES = Kyuafile xbps.conf - -include $(TOPDIR)/mk/test.mk diff --git a/tests/libxbps/plist_find_virtualpkg_conf/main.c b/tests/libxbps/plist_find_virtualpkg_conf/main.c deleted file mode 100644 index 973e2e1a..00000000 --- a/tests/libxbps/plist_find_virtualpkg_conf/main.c +++ /dev/null @@ -1,219 +0,0 @@ -/*- - * Copyright (c) 2012 Juan Romero Pardines. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - *- - */ -#include -#include -#include - -static const char dictxml[] = -"\n" -"\n" -"\n" -"\n" -" packages\n" -" \n" -" \n" -" pkgname\n" -" xbps-src-git\n" -" version\n" -" 20120311\n" -" pkgver\n" -" xbps-src-git-20120311\n" -" provides\n" -" \n" -" xbps-src-24\n" -" \n" -" \n" -" \n" -" pkgname\n" -" xbps-src\n" -" version\n" -" 24\n" -" pkgver\n" -" xbps-src-24\n" -" \n" -" \n" -"\n" -"\n"; - -ATF_TC(find_virtualpkg_conf_in_array_by_name_test); -ATF_TC_HEAD(find_virtualpkg_conf_in_array_by_name_test, tc) -{ - atf_tc_set_md_var(tc, "descr", "Test xbps_find_virtualpkg_conf_in_array_by_name"); -} -ATF_TC_BODY(find_virtualpkg_conf_in_array_by_name_test, tc) -{ - struct xbps_handle xh; - prop_array_t a; - prop_dictionary_t d, dr; - const char *pkgver, *tcsdir; - char *cffile; - - /* get test source dir */ - tcsdir = atf_tc_get_config_var(tc, "srcdir"); - cffile = xbps_xasprintf("%s/xbps.conf", tcsdir); - ATF_REQUIRE(cffile != NULL); - - /* initialize xbps */ - memset(&xh, 0, sizeof(xh)); - xh.rootdir = "/tmp"; - xh.conffile = cffile; - ATF_REQUIRE_EQ(xbps_init(&xh), 0); - - d = prop_dictionary_internalize(dictxml); - ATF_REQUIRE_EQ(prop_object_type(d), PROP_TYPE_DICTIONARY); - - a = prop_dictionary_get(d, "packages"); - ATF_REQUIRE_EQ(prop_object_type(a), PROP_TYPE_ARRAY); - - dr = xbps_find_virtualpkg_conf_in_array_by_name(a, "xbps-src"); - ATF_REQUIRE_EQ(prop_object_type(dr), PROP_TYPE_DICTIONARY); - prop_dictionary_get_cstring_nocopy(dr, "pkgver", &pkgver); - ATF_REQUIRE_STREQ(pkgver, "xbps-src-git-20120311"); - - xbps_end(); -} - -ATF_TC(find_virtualpkg_conf_in_array_by_pattern_test); -ATF_TC_HEAD(find_virtualpkg_conf_in_array_by_pattern_test, tc) -{ - atf_tc_set_md_var(tc, "descr", "Test xbps_find_virtualpkg_conf_in_array_by_pattern"); -} -ATF_TC_BODY(find_virtualpkg_conf_in_array_by_pattern_test, tc) -{ - struct xbps_handle xh; - prop_array_t a; - prop_dictionary_t d, dr; - const char *pkgver, *tcsdir; - char *cffile; - - /* get test source dir */ - tcsdir = atf_tc_get_config_var(tc, "srcdir"); - cffile = xbps_xasprintf("%s/xbps.conf", tcsdir); - ATF_REQUIRE(cffile != NULL); - - /* initialize xbps */ - memset(&xh, 0, sizeof(xh)); - xh.rootdir = "/tmp"; - xh.conffile = cffile; - ATF_REQUIRE_EQ(xbps_init(&xh), 0); - - d = prop_dictionary_internalize(dictxml); - ATF_REQUIRE_EQ(prop_object_type(d), PROP_TYPE_DICTIONARY); - - a = prop_dictionary_get(d, "packages"); - ATF_REQUIRE_EQ(prop_object_type(a), PROP_TYPE_ARRAY); - - dr = xbps_find_virtualpkg_conf_in_array_by_pattern(a, "xbps-src>=24"); - ATF_REQUIRE_EQ(prop_object_type(dr), PROP_TYPE_DICTIONARY); - prop_dictionary_get_cstring_nocopy(dr, "pkgver", &pkgver); - ATF_REQUIRE_STREQ(pkgver, "xbps-src-git-20120311"); - - dr = xbps_find_virtualpkg_conf_in_array_by_pattern(a, "xbps-src>=25"); - ATF_REQUIRE(dr == NULL); - - xbps_end(); -} - -ATF_TC(find_virtualpkg_conf_in_dict_by_name_test); -ATF_TC_HEAD(find_virtualpkg_conf_in_dict_by_name_test, tc) -{ - atf_tc_set_md_var(tc, "descr", "Test xbps_find_virtualpkg_conf_in_dict_by_name"); -} -ATF_TC_BODY(find_virtualpkg_conf_in_dict_by_name_test, tc) -{ - struct xbps_handle xh; - prop_dictionary_t d, dr; - const char *pkgver, *tcsdir; - char *cffile; - - /* get test source dir */ - tcsdir = atf_tc_get_config_var(tc, "srcdir"); - cffile = xbps_xasprintf("%s/xbps.conf", tcsdir); - ATF_REQUIRE(cffile != NULL); - - /* initialize xbps */ - memset(&xh, 0, sizeof(xh)); - xh.rootdir = "/tmp"; - xh.conffile = cffile; - ATF_REQUIRE_EQ(xbps_init(&xh), 0); - - d = prop_dictionary_internalize(dictxml); - ATF_REQUIRE_EQ(prop_object_type(d), PROP_TYPE_DICTIONARY); - - dr = xbps_find_virtualpkg_conf_in_dict_by_name(d, "packages", "xbps-src"); - ATF_REQUIRE_EQ(prop_object_type(dr), PROP_TYPE_DICTIONARY); - prop_dictionary_get_cstring_nocopy(dr, "pkgver", &pkgver); - ATF_REQUIRE_STREQ(pkgver, "xbps-src-git-20120311"); - - xbps_end(); -} - -ATF_TC(find_virtualpkg_conf_in_dict_by_pattern_test); -ATF_TC_HEAD(find_virtualpkg_conf_in_dict_by_pattern_test, tc) -{ - atf_tc_set_md_var(tc, "descr", "Test xbps_find_virtualpkg_conf_in_pattern_by_name"); -} -ATF_TC_BODY(find_virtualpkg_conf_in_dict_by_pattern_test, tc) -{ - struct xbps_handle xh; - prop_dictionary_t d, dr; - const char *pkgver, *tcsdir; - char *cffile; - - /* get test source dir */ - tcsdir = atf_tc_get_config_var(tc, "srcdir"); - cffile = xbps_xasprintf("%s/xbps.conf", tcsdir); - ATF_REQUIRE(cffile != NULL); - - /* initialize xbps */ - memset(&xh, 0, sizeof(xh)); - xh.rootdir = "/tmp"; - xh.conffile = cffile; - ATF_REQUIRE_EQ(xbps_init(&xh), 0); - - d = prop_dictionary_internalize(dictxml); - ATF_REQUIRE_EQ(prop_object_type(d), PROP_TYPE_DICTIONARY); - - dr = xbps_find_virtualpkg_conf_in_dict_by_pattern(d, "packages", "xbps-src>=24"); - ATF_REQUIRE_EQ(prop_object_type(dr), PROP_TYPE_DICTIONARY); - prop_dictionary_get_cstring_nocopy(dr, "pkgver", &pkgver); - ATF_REQUIRE_STREQ(pkgver, "xbps-src-git-20120311"); - - dr = xbps_find_virtualpkg_conf_in_dict_by_pattern(d, "packages", "xbps-src>=25"); - ATF_REQUIRE(dr == NULL); - - xbps_end(); -} - -ATF_TP_ADD_TCS(tp) -{ - ATF_TP_ADD_TC(tp, find_virtualpkg_conf_in_array_by_name_test); - ATF_TP_ADD_TC(tp, find_virtualpkg_conf_in_array_by_pattern_test); - ATF_TP_ADD_TC(tp, find_virtualpkg_conf_in_dict_by_name_test); - ATF_TP_ADD_TC(tp, find_virtualpkg_conf_in_dict_by_pattern_test); - - return atf_no_error(); -} diff --git a/tests/libxbps/plist_find_virtualpkg_conf/xbps.conf b/tests/libxbps/plist_find_virtualpkg_conf/xbps.conf deleted file mode 100644 index d2a1af76..00000000 --- a/tests/libxbps/plist_find_virtualpkg_conf/xbps.conf +++ /dev/null @@ -1 +0,0 @@ -virtual-package xbps-src-git { targets = "xbps-src-24" }