From 44d84a9b2a4d80dbeb1edac79c671743b4e1bc63 Mon Sep 17 00:00:00 2001 From: Cory McWilliams Date: Mon, 22 Sep 2025 08:18:15 -0400 Subject: [PATCH] test: Add a blob replication test that succeeds for all the wrong reasons. --- src/ssb.tests.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/ssb.tests.c b/src/ssb.tests.c index 061745e0..6a81c4fa 100644 --- a/src/ssb.tests.c +++ b/src/ssb.tests.c @@ -1128,6 +1128,11 @@ void tf_ssb_test_replicate(const tf_test_options_t* options) tf_printf("%s user %d = %s private=%s\n", added ? "added" : "failed", i, public[i], private[i]); } + char blob_id[k_id_base64_len] = { 0 }; + const char* k_blob = "Hello, new blob!"; + b = tf_ssb_db_blob_store(ssb0, (const uint8_t*)k_blob, strlen(k_blob), blob_id, sizeof(blob_id), NULL); + assert(b); + JSContext* context0 = tf_ssb_get_context(ssb0); for (int i = 0; i < k_key_count - 1; i++) { @@ -1152,6 +1157,7 @@ void tf_ssb_test_replicate(const tf_test_options_t* options) obj = JS_NewObject(context0); JS_SetPropertyStr(context0, obj, "type", JS_NewString(context0, "post")); JS_SetPropertyStr(context0, obj, "text", JS_NewString(context0, "Hello, world!")); + JS_SetPropertyStr(context0, obj, "arbitrary_reference", JS_NewString(context0, blob_id)); stored = false; signed_message = tf_ssb_sign_message(ssb0, self, private_bin, obj, NULL, 0); tf_ssb_verify_strip_and_store_message(ssb0, signed_message, _message_stored, &stored); @@ -1213,6 +1219,15 @@ void tf_ssb_test_replicate(const tf_test_options_t* options) tf_ssb_remove_message_added_callback(ssb1, _message_added, &count1); tf_printf("done\n"); + tf_printf("Waiting for blob.\n"); + while (!tf_ssb_db_blob_get(ssb0, blob_id, NULL, NULL)) + { + tf_ssb_set_main_thread(ssb1, true); + uv_run(&loop, UV_RUN_ONCE); + tf_ssb_set_main_thread(ssb1, false); + } + tf_printf("done\n"); + tf_ssb_send_close(ssb1); uv_close((uv_handle_t*)&idle0, NULL);