@@ -1145,7 +1145,7 @@ void IncompleteFx::check_sparse_unsplittable_complete() {
11451145TEST_CASE_METHOD (
11461146 IncompleteFx,
11471147 " C API: Test incomplete read queries, dense" ,
1148- " [capi][incomplete][dense-incomplete][serialization][ rest]" ) {
1148+ " [capi][incomplete][dense-incomplete][rest]" ) {
11491149 create_dense_array ();
11501150 write_dense_full ();
11511151 check_dense_incomplete ();
@@ -1159,7 +1159,7 @@ TEST_CASE_METHOD(
11591159TEST_CASE_METHOD (
11601160 IncompleteFx,
11611161 " C API: Test incomplete read queries, sparse" ,
1162- " [capi][incomplete][sparse][serialization][ rest]" ) {
1162+ " [capi][incomplete][sparse][rest]" ) {
11631163 create_sparse_array ();
11641164 write_sparse_full ();
11651165 check_sparse_incomplete ();
@@ -1171,8 +1171,47 @@ TEST_CASE_METHOD(
11711171TEST_CASE_METHOD (
11721172 IncompleteFx,
11731173 " C API: Test incomplete read queries, dense, serialized" ,
1174- " [capi][incomplete][dense][serialization][ rest]" ) {
1174+ " [capi][incomplete][dense][rest]" ) {
11751175 create_dense_array ();
11761176 write_dense_full ();
11771177 check_dense_incomplete ();
11781178}
1179+
1180+ TEST_CASE_METHOD (
1181+ IncompleteFx,
1182+ " C API: Test incomplete read queries, sparse" ,
1183+ " [capi][incomplete][sparse][retries][sc-49128][rest]" ) {
1184+ // This test is testing CURL logic and only makes sense on REST-CI
1185+ if (!vfs_test_setup_.is_rest ()) {
1186+ return ;
1187+ }
1188+
1189+ // Force retries on successful requests to test that the buffers
1190+ // resetting in the retry logic works well
1191+ tiledb_config_t * cfg;
1192+ tiledb_error_t * err = nullptr ;
1193+ int rc = tiledb_config_alloc (&cfg, &err);
1194+ REQUIRE (rc == TILEDB_OK);
1195+ REQUIRE (err == nullptr );
1196+ rc = tiledb_config_set (cfg, " rest.retry_http_codes" , " 200" , &err);
1197+ REQUIRE (rc == TILEDB_OK);
1198+ REQUIRE (err == nullptr );
1199+ rc = tiledb_config_set (cfg, " rest.retry_count" , " 1" , &err);
1200+ REQUIRE (rc == TILEDB_OK);
1201+ REQUIRE (err == nullptr );
1202+ rc = tiledb_config_set (cfg, " rest.retry_initial_delay_ms" , " 5" , &err);
1203+ REQUIRE (rc == TILEDB_OK);
1204+ REQUIRE (err == nullptr );
1205+
1206+ // Update the context with config
1207+ vfs_test_setup_.update_config (cfg);
1208+ ctx_ = vfs_test_setup_.ctx_c ;
1209+ tiledb_config_free (&cfg);
1210+
1211+ create_sparse_array ();
1212+ write_sparse_full ();
1213+ check_sparse_incomplete ();
1214+ check_sparse_until_complete ();
1215+ check_sparse_unsplittable_overflow ();
1216+ check_sparse_unsplittable_complete ();
1217+ }
0 commit comments