add_subdirectory(utils)

integration_test(connect)
integration_test(crud)
integration_test(query)
integration_test(diagnostics)
integration_test(binary_operations)
integration_test(durability)
integration_test(arithmetic)
integration_test(collections)
integration_test(subdoc)
integration_test(analytics)
integration_test(read_replica)
integration_test(tracer)
integration_test(wrapper_tracer)
integration_test(meter)
integration_test(transcoders)
integration_test(range_scan)
integration_test(search)
integration_test(management)
integration_test(management_eventing)
integration_test(management_search_index)
integration_test(http_session_manager)
integration_test(node_id)
integration_test(bucket_bootstrap)
integration_test(handler_drop_lifetime)
integration_test(wait_until_ready)
integration_test(fork)

unit_test(connection_string)
unit_test(capella)
unit_test(tls_hostname_verification)
unit_test(http_session_idle)
unit_test(http_session_manager_eviction)
unit_test(http_session_manager_close)
unit_test(contains_string)
unit_test(protocol_status)
unit_test(configuration_belongs_to_session)
unit_test(utils)
unit_test(binary_transcoder)
unit_test(json_transcoder)
unit_test(transaction_content_as)
unit_test(transaction_get_result)
unit_test(staged_mutation)
unit_test(atr_entry)
unit_test(get_multi_transaction_id)
unit_test(get_multi_fetch)
unit_test(json_streaming_lexer)
unit_test(jsonsl)
unit_test(config_profiles)
unit_test(options)
unit_test(search)
unit_test(query)
unit_test(response_parsing)
unit_test(query_stream)
unit_test(analytics_stream)
unit_test(http_streaming_response)
unit_test(observability_recorder)
unit_test(diagnostics)
unit_test(management_query_index)
unit_test(management_search_index)
unit_test(metrics)
unit_test(bucket_deferred_queue)
unit_test(meter_wrapper)
unit_test(app_telemetry_meter)
unit_test(request_span)
unit_test(opaque_ring_table)
unit_test(mcbp_output_queue)
unit_test(mcbp_buffer_pool)
unit_test(mcbp_session)
unit_test(range_scan)
unit_test(response_handler)
unit_test(logger)
unit_test(crypto)
unit_test(orphan_reporter)
unit_test(mutate_in_doc_flags)
unit_test(mcbp_codec)
unit_test(mcbp_parser)
unit_test(mcbp_queue_request)
unit_test(mcbp_command_id)
unit_test(movable_function)
unit_test(key_value_error_context)
unit_test(management_collection)
unit_test(management_bucket)
unit_test(management_analytics)
unit_test(node_id)
unit_test(wait_until_ready)
target_link_libraries(test_unit_jsonsl PRIVATE jsonsl)

integration_benchmark(get)
integration_benchmark(replace)

transaction_test(context)
transaction_test(simple)
transaction_test(simple_async)
transaction_test(public_blocking_api)
transaction_test(public_async_api)

unit_test(transaction_logging)
unit_test(transaction_utils)
unit_test(waitable_op_list)
unit_test(row_streamer)

integration_test(examples)
integration_test(examples_streaming)
transaction_test(examples)

if(COUCHBASE_CXX_CLIENT_COLUMNAR)
  integration_test(columnar_query)
  integration_test(columnar_management)
  unit_test(columnar_retry)
endif()
