Date: Tue, 20 Aug 2013 14:26:24 GMT From: mattbw@FreeBSD.org To: svn-soc-all@FreeBSD.org Subject: socsvn commit: r256201 - soc2013/mattbw/backend/query Message-ID: <201308201426.r7KEQOPx028859@socsvn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: mattbw Date: Tue Aug 20 14:26:23 2013 New Revision: 256201 URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=256201 Log: Add more ATF tests for ID/name conversion. I realise I'm spending too much time on this, so the next commit should be adapting the query mechanism. Modified: soc2013/mattbw/backend/query/id.c soc2013/mattbw/backend/query/id.h soc2013/mattbw/backend/query/id_test.c Modified: soc2013/mattbw/backend/query/id.c ============================================================================== --- soc2013/mattbw/backend/query/id.c Tue Aug 20 13:55:49 2013 (r256200) +++ soc2013/mattbw/backend/query/id.c Tue Aug 20 14:26:23 2013 (r256201) @@ -31,13 +31,13 @@ static char *join_namever(const char *name, const char *version); static char *strdup_null_if_empty(const char *in); static struct query_id *query_id_array_alloc(unsigned int count); -static struct query_id *query_id_array_from_strings(char **strings, unsigned int package_count, id_from_string_ptr id_from_string); +static struct query_id *query_id_array_from_strings(const char **strings, unsigned int package_count, id_from_string_ptr id_from_string); static void query_id_array_free(struct query_id **query_ids_p, unsigned int count); static void query_id_free_contents(struct query_id *query_id); /* Converts an array of PackageIDs to query IDs. */ struct query_id * -query_id_array_from_package_ids(gchar **package_ids, +query_id_array_from_package_ids(const gchar **package_ids, unsigned int package_count) { @@ -47,7 +47,7 @@ /* Converts an array of names (or name-version strings) to query IDs. */ struct query_id * -query_id_array_from_names(gchar **package_names, unsigned int package_count) +query_id_array_from_names(const gchar **package_names, unsigned int package_count) { return query_id_array_from_strings(package_names, package_count, @@ -59,7 +59,7 @@ * function. */ static struct query_id * -query_id_array_from_strings(char **strings, unsigned int package_count, +query_id_array_from_strings(const char **strings, unsigned int package_count, id_from_string_ptr id_from_string) { struct query_id *query_ids; @@ -69,19 +69,19 @@ query_ids = query_id_array_alloc(package_count); if (query_ids != NULL) { - bool error; + bool success; unsigned int i; - error = false; + success = true; for (i = 0; i < package_count; i++) { - error = id_from_string(strings[i], query_ids + i); - if (error) { + success = id_from_string(strings[i], query_ids + i); + if (!success) { query_id_array_free(&query_ids, package_count); break; } } - if (error) { + if (!success) { query_id_array_free(&query_ids, package_count); } } @@ -207,14 +207,15 @@ unsigned int i; assert(query_ids_p != NULL); - assert(*query_ids_p != NULL); - for (i = 0; i < count; i++) { - query_id_free_contents((*query_ids_p) + i); - } + if (*query_ids_p != NULL) { + for (i = 0; i < count; i++) { + query_id_free_contents((*query_ids_p) + i); + } - free(*query_ids_p); - *query_ids_p = NULL; + free(*query_ids_p); + *query_ids_p = NULL; + } } static void Modified: soc2013/mattbw/backend/query/id.h ============================================================================== --- soc2013/mattbw/backend/query/id.h Tue Aug 20 13:55:49 2013 (r256200) +++ soc2013/mattbw/backend/query/id.h Tue Aug 20 14:26:23 2013 (r256201) @@ -33,7 +33,7 @@ bool query_id_from_name(const char *name, struct query_id *query_id); bool query_id_from_package_id(const gchar *package_id, struct query_id *query_id); -struct query_id *query_id_array_from_names(gchar **package_names, unsigned int package_count); -struct query_id *query_id_array_from_package_ids(gchar **package_ids, unsigned int package_count); +struct query_id *query_id_array_from_names(const gchar **package_names, unsigned int package_count); +struct query_id *query_id_array_from_package_ids(const gchar **package_ids, unsigned int package_count); #endif /* !_PKGNG_BACKEND_QUERY_ID_H_ */ Modified: soc2013/mattbw/backend/query/id_test.c ============================================================================== --- soc2013/mattbw/backend/query/id_test.c Tue Aug 20 13:55:49 2013 (r256200) +++ soc2013/mattbw/backend/query/id_test.c Tue Aug 20 14:26:23 2013 (r256201) @@ -159,6 +159,10 @@ ATF_CHECK_STREQ(result.repo, "packagesite"); } +/* + * SINGLE NAMES + */ + ATF_TC(query_id_from_name_single_valid); ATF_TC_HEAD(query_id_from_name_single_valid, tc) { @@ -184,6 +188,10 @@ ATF_CHECK_EQ(result.repo, NULL); } +/* + * SINGLE NAMES + */ + ATF_TC(query_id_from_name_single_empty); ATF_TC_HEAD(query_id_from_name_single_empty, tc) { @@ -210,7 +218,103 @@ } /* - * SINGLE NAMES + * MULTIPLE ID FUNCTIONS + */ + +ATF_TC(query_id_from_name_multiple_valid); +ATF_TC_HEAD(query_id_from_name_multiple_valid, tc) +{ + + atf_tc_set_md_var(tc, "descr", + "Ensure valid arrays of package names convert to query IDs."); +} +ATF_TC_BODY(query_id_from_name_multiple_valid, tc) +{ + unsigned int i; + struct query_id *results; + const char *valid_names[3]; + const char *valid_1 = "pkg-1.1.4"; + const char *valid_2 = "brasero-1.2"; + const char *valid_3 = "PackageKit"; + + valid_names[0] = valid_1; + valid_names[1] = valid_2; + valid_names[2] = valid_3; + + results = query_id_array_from_names(valid_names, 3); + ATF_CHECK(results != NULL); + + if (results != NULL) { + for (i = 0; i < 3; i++) { + ATF_CHECK_STREQ(results[i].namever, valid_names[i]); + ATF_CHECK_EQ(results[i].arch, NULL); + ATF_CHECK_EQ(results[i].repo, NULL); + } + } +} + +ATF_TC(query_id_from_name_multiple_empty); +ATF_TC_HEAD(query_id_from_name_multiple_empty, tc) +{ + + atf_tc_set_md_var(tc, "descr", + "Ensure package name arrays with empty members fail to convert."); +} +ATF_TC_BODY(query_id_from_name_multiple_empty, tc) +{ + struct query_id *results; + const char *invalid_names[3]; + const char *invalid_1 = "pkg-1.1.4"; + const char *invalid_2 = ""; + const char *invalid_3 = "PackageKit"; + + invalid_names[0] = invalid_1; + invalid_names[1] = invalid_2; + invalid_names[2] = invalid_3; + + results = query_id_array_from_names(invalid_names, 3); + ATF_CHECK_EQ(results, NULL); +} + +ATF_TC(query_id_from_package_id_multiple_valid); +ATF_TC_HEAD(query_id_from_package_id_multiple_valid, tc) +{ + + atf_tc_set_md_var(tc, "descr", + "Ensure package ID arrays with all valid members convert."); +} +ATF_TC_BODY(query_id_from_package_id_multiple_valid, tc) +{ + struct query_id *results; + const char *valid_package_ids[3]; + const char *valid_1 = "pkg;1.1.4;freebsd:9:x86:32;packagesite"; + const char *valid_2 = "brasero;1.2;freebsd:9:x86:64;elsewhere"; + const char *valid_3 = "PackageKit;0.6;freebsd:10:x86:32;installed"; + + valid_package_ids[0] = valid_1; + valid_package_ids[1] = valid_2; + valid_package_ids[2] = valid_3; + + results = query_id_array_from_package_ids(valid_package_ids, 3); + ATF_CHECK(results != NULL); + + if (results != NULL) { + ATF_CHECK_STREQ(results[0].namever, "pkg-1.1.4"); + ATF_CHECK_STREQ(results[0].arch, "freebsd:9:x86:32"); + ATF_CHECK_STREQ(results[0].repo, "packagesite"); + + ATF_CHECK_STREQ(results[1].namever, "brasero-1.2"); + ATF_CHECK_STREQ(results[1].arch, "freebsd:9:x86:64"); + ATF_CHECK_STREQ(results[1].repo, "elsewhere"); + + ATF_CHECK_STREQ(results[2].namever, "PackageKit-0.6"); + ATF_CHECK_STREQ(results[2].arch, "freebsd:10:x86:32"); + ATF_CHECK_STREQ(results[2].repo, "installed"); + } +} + +/* + * TEST PACK */ ATF_TP_ADD_TCS(tp) @@ -225,5 +329,10 @@ ATF_TP_ADD_TC(tp, query_id_from_name_single_valid); ATF_TP_ADD_TC(tp, query_id_from_name_single_empty); + ATF_TP_ADD_TC(tp, query_id_from_name_multiple_valid); + ATF_TP_ADD_TC(tp, query_id_from_name_multiple_empty); + + ATF_TP_ADD_TC(tp, query_id_from_package_id_multiple_valid); + return atf_no_error(); }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201308201426.r7KEQOPx028859>