commit af5ec50c6c88a4be8565f1bbf90655abba79bf1b
parent e05e8357c23c5018548f64d5effcf7872cdb445f
Author: William Casarin <jb55@jb55.com>
Date:   Wed, 20 Sep 2023 09:33:26 -0400
test: add test to check profile search duplicates
Diffstat:
| M | test.c |  |  | 30 | +++++++++++++++++++----------- | 
1 file changed, 19 insertions(+), 11 deletions(-)
diff --git a/test.c b/test.c
@@ -22,17 +22,21 @@ static void print_hex(unsigned char* data, size_t size) {
 	}
 }
 
-
-static void print_search(struct ndb_txn *txn, struct ndb_search *search)
+static NdbProfile_table_t lookup_profile(struct ndb_txn *txn, uint64_t pk)
 {
 	void *root;
 	size_t len;
-	assert((root = ndb_get_profile_by_key(txn, search->profile_key, &len)));
+	assert((root = ndb_get_profile_by_key(txn, pk, &len)));
 	assert(root);
 
 	NdbProfileRecord_table_t profile_record = NdbProfileRecord_as_root(root);
 	NdbProfile_table_t profile = NdbProfileRecord_profile_get(profile_record);
+	return profile;
+}
 
+static void print_search(struct ndb_txn *txn, struct ndb_search *search)
+{
+	NdbProfile_table_t profile = lookup_profile(txn, search->profile_key);
 	const char *name = NdbProfile_name_get(profile);
 	const char *display_name = NdbProfile_display_name_get(profile);
 	printf("searched_name name:'%s' display_name:'%s' pk:%" PRIu64 " ts:%" PRIu64 " id:", name, display_name, search->profile_key, search->key->timestamp);
@@ -45,19 +49,23 @@ static void test_profile_search(struct ndb *ndb)
 {
 	struct ndb_txn txn;
 	struct ndb_search search;
-	size_t len;
 	int i;
-	void *root;
+	const char *name;
+	NdbProfile_table_t profile;
 
 	assert(ndb_begin_query(ndb, &txn));
-	assert(ndb_search_profile(&txn, &search, "jb"));
-	assert((root = ndb_get_profile_by_key(&txn, search.profile_key, &len)));
-	assert(root);
+	assert(ndb_search_profile(&txn, &search, "jean"));
 
-	//assert(!strcmp(searched_name, "jb55"));
-	print_search(&txn, &search);
+	profile = lookup_profile(&txn, search.profile_key);
+	name = NdbProfile_name_get(profile);
+	assert(!strcmp(name, "jeanfromlastnight"));
+
+	assert(ndb_search_profile_next(&search));
+	profile = lookup_profile(&txn, search.profile_key);
+	name = NdbProfile_name_get(profile);
+	assert(strcmp(name, "jeanfromlastnight"));
 
-	for (i = 0; i < 20; i++) {
+	for (i = 0; i < 10; i++) {
 		assert(ndb_search_profile_next(&search));
 		print_search(&txn, &search);
 	}