diff --git a/ext/couchbase b/ext/couchbase index b08e9f89..efc52786 160000 --- a/ext/couchbase +++ b/ext/couchbase @@ -1 +1 @@ -Subproject commit b08e9f89ccfd95be21823b53a1c1b6a12841c4c2 +Subproject commit efc527861c906fde055ac9241ff2c4dd8af3f726 diff --git a/test/diagnostics_test.rb b/test/diagnostics_test.rb index 6a501eeb..e8355d92 100644 --- a/test/diagnostics_test.rb +++ b/test/diagnostics_test.rb @@ -52,8 +52,22 @@ def test_cluster_ping_single_service def test_bucket_ping res = @bucket.ping - assert_equal 1, res.services.size - assert_equal :kv, res.services.keys[0] + assert_includes res.services.keys, :kv + # Catches a ping collector that completes before the whole fan-out has been + # dispatched (CXXCBC-1022). Comparing against a cluster ping keeps this + # independent of the topology under test. + assert_equal @cluster.ping.services.keys.sort, res.services.keys.sort + end + + def test_bucket_ping_single_service + service_types = @cluster.ping.services.keys + + assert_includes service_types, :kv + service_types.each do |service_type| + res = @bucket.ping(Options::Ping.new(service_types: [service_type])) + + assert_equal [service_type], res.services.keys + end end end end