Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
shlibs: add basic tests about the cleanup of shlibs required
Baptiste Daroussin committed 1 year ago
commit fb1a060a17d855684fc1a7af86de11b36733ed6f
parent 75d1d4b
2 files changed +43 -1
modified tests/Makefile.autosetup
@@ -15,7 +15,8 @@ TESTS= \
	metalog \
	vec \
	pkg_elf \
-
	hash
+
	hash \
+
	shlibs

TESTS_SH= \
	frontend/pkg.sh \
@@ -114,6 +115,7 @@ metalog_OBJS= lib/metalog.o
vec_OBJS=	lib/vec.o
pkg_elf_OBJS=	lib/pkg_elf.o
hash_OBJS=	lib/hash.o
+
shlibs_OBJS=	lib/shlibs.o

SRCS=	\
	$(packing_OBJS:.o=.c) \
@@ -131,6 +133,7 @@ SRCS= \
	$(vec_OBJS:.o=.c) \
	$(pkg_elf_OBJS:.o=.c) \
	$(hash_OBJS:.o=.c) \
+
	$(shlibs_OBJS:.o=.c) \

include $(MK)/common.mk

added tests/lib/shlibs.c
@@ -0,0 +1,39 @@
+
/*-
+
 * Copyright(c) 2024 Baptiste Daroussin <bapt@FreeBSD.org>
+
 *
+
 * SPDX-License-Identifier: BSD-2-Clause
+
 */
+

+
#include <atf-c.h>
+
#include <private/pkg.h>
+
#include <tllist.h>
+

+
ATF_TC_WITHOUT_HEAD(cleanup_shlibs_required);
+

+
ATF_TC_BODY(cleanup_shlibs_required, tc)
+
{
+
	struct pkg *p;
+
	stringlist_t internal_provided = tll_init();
+

+
	ATF_REQUIRE_EQ(pkg_new(&p, PKG_FILE), EPKG_OK);
+
	ATF_REQUIRE(p != NULL);
+
	tll_push_back(p->shlibs_required, xstrdup("lib1.so:32"));
+
	tll_push_back(p->shlibs_required, xstrdup("lib1.so"));
+
	tll_push_back(p->shlibs_required, xstrdup("libA.so"));
+
	tll_push_back(p->shlibs_required, xstrdup("libA.so:32"));
+
	pkg_cleanup_shlibs_required(p, &internal_provided);
+
	ATF_REQUIRE_EQ(tll_length(p->shlibs_required), 4);
+
	tll_push_back(p->shlibs_provided, "lib1.so");
+
	pkg_cleanup_shlibs_required(p, &internal_provided);
+
	ATF_REQUIRE_EQ(tll_length(p->shlibs_required), 3);
+
	tll_push_back(internal_provided, "lib1.so:32");
+
	pkg_cleanup_shlibs_required(p, &internal_provided);
+
	ATF_REQUIRE_EQ(tll_length(p->shlibs_required), 2);
+
}
+

+
ATF_TP_ADD_TCS(tp)
+
{
+
	ATF_TP_ADD_TC(tp, cleanup_shlibs_required);
+

+
	return (atf_no_error());
+
}