X-Git-Url: https://git.tokkee.org/?p=sysdb.git;a=blobdiff_plain;f=t%2Futils%2Fdbi_test.c;h=9d45feb24341f03235223d2b2f8fe68d6ace0d3a;hp=c355e6442cf9b29eb3050d766751a683f191d3e6;hb=3ba81224dac4d31ea5ad651db569543825ea5078;hpb=9cfcca3c3cd932179facaa94be0b25b68561aeb6 diff --git a/t/utils/dbi_test.c b/t/utils/dbi_test.c index c355e64..9d45feb 100644 --- a/t/utils/dbi_test.c +++ b/t/utils/dbi_test.c @@ -25,6 +25,10 @@ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#if HAVE_CONFIG_H +# include "config.h" +#endif /* HAVE_CONFIG_H */ + #include "libsysdb_test.h" #include "utils/dbi.h" @@ -331,6 +335,17 @@ dbi_result_get_string_idx(dbi_result res, unsigned int i) return get_golden_data(res, i).string; } /* dbi_result_get_string_idx */ +char * +dbi_result_get_string_copy_idx(dbi_result res, unsigned int i) +{ + fail_unless(current_query->field_types[i - 1] == DBI_TYPE_STRING, + "dbi_result_get_string_copy_idx() called for non-string " + "column type %u", current_query->field_types[i - 1]); + if (! get_golden_data(res, i).string) + return NULL; + return strdup(get_golden_data(res, i).string); +} /* dbi_result_get_string_copy_idx */ + time_t dbi_result_get_datetime_idx(dbi_result res, unsigned int i) { @@ -379,6 +394,19 @@ dbi_result_get_binary_idx(dbi_result res, unsigned int i) return get_golden_data(res, i).binary.datum; } /* dbi_result_get_binary_idx */ +unsigned char * +dbi_result_get_binary_copy_idx(dbi_result res, unsigned int i) +{ + const char *data; + fail_unless(current_query->field_types[i - 1] == DBI_TYPE_BINARY, + "dbi_result_get_binary_copy_idx() called for non-binary " + "column type %u", current_query->field_types[i - 1]); + data = (const char *)get_golden_data(res, i).binary.datum; + if (! data) + return NULL; + return (unsigned char *)strdup(data); +} /* dbi_result_get_binary_copy_idx */ + static unsigned long long dbi_result_free_called = 0; int dbi_result_free(dbi_result res) @@ -403,6 +431,8 @@ setup(void) client = sdb_dbi_client_create("mockdriver", "mockdatabase"); fail_unless(client != NULL, "sdb_dbi_client_create() = NULL; expected client object"); + + dbi_conn_connect_called = 0; } /* setup */ static void @@ -465,7 +495,7 @@ query_callback(sdb_dbi_client_t *c, data[i].data.decimal, i, expected_data.decimal); break; case SDB_TYPE_STRING: - fail_unless(data[i].data.string == expected_data.string, + fail_unless(!strcmp(data[i].data.string, expected_data.string), "query callback received unexpected data %s " "for column %zu; expected: %s", data[i].data.string, i, expected_data.string); @@ -485,8 +515,9 @@ query_callback(sdb_dbi_client_t *c, "binary data length %zu for column %zu; " "expected: %lli", data[i].data.binary.length, i, expected_data.binary.length); - fail_unless(data[i].data.binary.datum == + fail_unless(!memcmp(data[i].data.binary.datum, expected_data.binary.datum, + expected_data.binary.length), "query callback received unexpected binary data %p " "for column %zu; expected: %p", data[i].data.binary.datum, i,