pkg.c
1 #include <atf-c.h> 2 #include <private/pkg.h> 3 4 ATF_TC_WITHOUT_HEAD(pkgs_insert_sorted); 5 ATF_TC_BODY(pkgs_insert_sorted, tc) 6 { 7 pkgs_t pkgs = vec_init(); 8 9 ATF_REQUIRE_EQ_MSG(pkgs.d, NULL, "vec_init failed"); 10 ATF_REQUIRE_EQ_MSG(pkgs.cap, 0, "vec_init failed"); 11 ATF_REQUIRE_EQ_MSG(pkgs.len, 0, "vec_init failed"); 12 13 struct pkg *p; 14 15 ATF_REQUIRE_EQ(EPKG_OK, pkg_new(&p, PKG_FILE)); 16 ATF_REQUIRE(p != NULL); 17 p->name = xstrdup("name1"); 18 ATF_REQUIRE_EQ(pkgs_insert_sorted(&pkgs, p), NULL); 19 ATF_REQUIRE_EQ_MSG(pkgs.len, 1, "Fail to insert"); 20 21 p = NULL; 22 ATF_REQUIRE_EQ(EPKG_OK, pkg_new(&p, PKG_FILE)); 23 p->name = xstrdup("name1"); 24 ATF_REQUIRE_MSG(pkgs_insert_sorted(&pkgs, p) != NULL, "Collision not detected"); 25 26 free(p->name); 27 p->name = xstrdup("aname1"); 28 29 ATF_REQUIRE_EQ(pkgs_insert_sorted(&pkgs, p), NULL); 30 ATF_REQUIRE_EQ_MSG(pkgs.len, 2, "Fail to insert"); 31 32 ATF_REQUIRE_STREQ(pkgs.d[0]->name, "aname1"); 33 ATF_REQUIRE_STREQ(pkgs.d[1]->name, "name1"); 34 } 35 36 ATF_TP_ADD_TCS(tp) 37 { 38 ATF_TP_ADD_TC(tp, pkgs_insert_sorted); 39 40 return (atf_no_error()); 41 }