Radish alpha
H
rad:z3QDZAW2FAfuLvihrhiyDC9fAD8G9
HardenedBSD Package Manager
Radicle
Git
plist: add test case for @name
Baptiste Daroussin committed 4 years ago
commit 09eab81bcb2dbf904593ea08c65b15b56eb823ce
parent f3bc44d
2 files changed +18 -0
modified libpkg/pkg_ports.c
@@ -208,6 +208,10 @@ name_key(struct plist *p, char *line, struct file_attr *a __unused)
		return (EPKG_OK);
	}
	tmp = strrchr(line, '-');
+
	if (tmp == NULL) {
+
		pkg_emit_error("Invalid @name key: '%s' expecting <name>-<version>", line);
+
		return (EPKG_FATAL);
+
	}
	tmp[0] = '\0';
	tmp++;
	p->pkg->name = xstrdup(line);
modified tests/lib/plist.c
@@ -199,6 +199,20 @@ ATF_TC_BODY(parse_plist, tc)
	ATF_REQUIRE(plist->pkg == p);
	ATF_REQUIRE_EQ(plist->prefix[0], '\0');

+
	strlcpy(buf, "@name name1", BUFSIZ);
+
	ATF_REQUIRE_EQ(EPKG_FATAL, plist_parse_line(plist, buf));
+

+
	strlcpy(buf, "@name name1-1", BUFSIZ);
+
	ATF_REQUIRE_EQ(EPKG_OK, plist_parse_line(plist, buf));
+
	ATF_REQUIRE_STREQ(p->name, "name1");
+
	ATF_REQUIRE_STREQ(p->version, "1");
+

+
	/* if already set, name should not change */
+
	strlcpy(buf, "@name name2-2", BUFSIZ);
+
	ATF_REQUIRE_EQ(EPKG_OK, plist_parse_line(plist, buf));
+
	ATF_REQUIRE_STREQ(p->name, "name1");
+
	ATF_REQUIRE_STREQ(p->version, "1");
+

	strlcpy(buf, "@cwd /myprefix", BUFSIZ);
	ATF_REQUIRE_EQ(EPKG_OK, plist_parse_line(plist, buf));
	ATF_REQUIRE_STREQ(p->prefix, "/myprefix");