libcouchbase 1.0.4 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (106) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +11 -8
  3. data/ext/libcouchbase/CMakeLists.txt +1 -1
  4. data/ext/libcouchbase/README.markdown +38 -6
  5. data/ext/libcouchbase/RELEASE_NOTES.markdown +151 -0
  6. data/ext/libcouchbase/cmake/Modules/GenerateConfigDotH.cmake +2 -2
  7. data/ext/libcouchbase/cmake/Modules/GetVersionInfo.cmake +3 -3
  8. data/ext/libcouchbase/cmake/source_files.cmake +1 -0
  9. data/ext/libcouchbase/contrib/cJSON/cJSON.c +686 -288
  10. data/ext/libcouchbase/contrib/cJSON/cJSON.h +0 -0
  11. data/ext/libcouchbase/contrib/cbsasl/src/hash.c +17 -17
  12. data/ext/libcouchbase/contrib/cliopts/cliopts.c +76 -0
  13. data/ext/libcouchbase/contrib/cliopts/cliopts.h +66 -15
  14. data/ext/libcouchbase/contrib/genhash/genhash.c +1 -2
  15. data/ext/libcouchbase/contrib/lcb-jsoncpp/lcb-jsoncpp.cpp +4 -3
  16. data/ext/libcouchbase/example/instancepool/main.cc +12 -2
  17. data/ext/libcouchbase/example/libeventdirect/main.c +99 -25
  18. data/ext/libcouchbase/example/minimal/minimal.c +7 -5
  19. data/ext/libcouchbase/example/observe/durability.c +102 -0
  20. data/ext/libcouchbase/example/observe/observe.c +19 -6
  21. data/ext/libcouchbase/example/subdoc/subdoc-xattrs.c +1 -2
  22. data/ext/libcouchbase/include/libcouchbase/cntl-private.h +6 -8
  23. data/ext/libcouchbase/include/libcouchbase/cntl.h +84 -64
  24. data/ext/libcouchbase/include/libcouchbase/couchbase.h +295 -78
  25. data/ext/libcouchbase/include/libcouchbase/deprecated.h +2 -2
  26. data/ext/libcouchbase/include/libcouchbase/error.h +1 -1
  27. data/ext/libcouchbase/include/libcouchbase/iops.h +9 -9
  28. data/ext/libcouchbase/include/libcouchbase/ixmgmt.h +2 -2
  29. data/ext/libcouchbase/include/libcouchbase/n1ql.h +69 -7
  30. data/ext/libcouchbase/include/libcouchbase/vbucket.h +17 -0
  31. data/ext/libcouchbase/include/libcouchbase/views.h +3 -3
  32. data/ext/libcouchbase/include/memcached/protocol_binary.h +62 -1
  33. data/ext/libcouchbase/packaging/deb/control +1 -1
  34. data/ext/libcouchbase/packaging/rpm/libcouchbase.spec.in +37 -36
  35. data/ext/libcouchbase/src/bootstrap.cc +22 -8
  36. data/ext/libcouchbase/src/bucketconfig/bc_cccp.cc +1 -1
  37. data/ext/libcouchbase/src/bucketconfig/bc_http.cc +0 -1
  38. data/ext/libcouchbase/src/bucketconfig/confmon.cc +13 -8
  39. data/ext/libcouchbase/src/callbacks.c +2 -0
  40. data/ext/libcouchbase/src/cntl.cc +28 -17
  41. data/ext/libcouchbase/src/dns-srv.cc +1 -2
  42. data/ext/libcouchbase/src/dump.cc +4 -0
  43. data/ext/libcouchbase/src/errmap.h +89 -16
  44. data/ext/libcouchbase/src/handler.cc +28 -11
  45. data/ext/libcouchbase/src/http/http-priv.h +4 -1
  46. data/ext/libcouchbase/src/http/http.cc +3 -0
  47. data/ext/libcouchbase/src/instance.cc +1 -1
  48. data/ext/libcouchbase/src/internal.h +1 -0
  49. data/ext/libcouchbase/src/lcbio/connect.cc +2 -3
  50. data/ext/libcouchbase/src/lcbio/manager.cc +2 -2
  51. data/ext/libcouchbase/src/lcbio/ssl.h +10 -0
  52. data/ext/libcouchbase/src/mc/mcreq.c +8 -0
  53. data/ext/libcouchbase/src/mcserver/mcserver.cc +14 -1
  54. data/ext/libcouchbase/src/n1ql/ixmgmt.cc +0 -3
  55. data/ext/libcouchbase/src/n1ql/n1ql.cc +22 -29
  56. data/ext/libcouchbase/src/n1ql/params.cc +46 -1
  57. data/ext/libcouchbase/src/newconfig.cc +4 -4
  58. data/ext/libcouchbase/src/operations/durability-seqno.cc +4 -0
  59. data/ext/libcouchbase/src/operations/durability.cc +3 -0
  60. data/ext/libcouchbase/src/operations/ping.cc +315 -0
  61. data/ext/libcouchbase/src/operations/stats.cc +10 -0
  62. data/ext/libcouchbase/src/operations/subdoc.cc +13 -1
  63. data/ext/libcouchbase/src/retrychk.cc +1 -0
  64. data/ext/libcouchbase/src/settings.c +2 -0
  65. data/ext/libcouchbase/src/settings.h +13 -7
  66. data/ext/libcouchbase/src/ssl/ssl_c.c +28 -2
  67. data/ext/libcouchbase/src/ssl/ssl_common.c +3 -0
  68. data/ext/libcouchbase/src/ssl/ssl_e.c +15 -1
  69. data/ext/libcouchbase/src/ssl/ssl_iot_common.h +3 -1
  70. data/ext/libcouchbase/src/timings.c +0 -1
  71. data/ext/libcouchbase/src/vbucket/vbucket.c +49 -1
  72. data/ext/libcouchbase/tests/iotests/mock-environment.cc +58 -40
  73. data/ext/libcouchbase/tests/iotests/mock-environment.h +23 -4
  74. data/ext/libcouchbase/tests/iotests/mock-unit-test.h +8 -8
  75. data/ext/libcouchbase/tests/iotests/t_behavior.cc +5 -5
  76. data/ext/libcouchbase/tests/iotests/t_durability.cc +50 -0
  77. data/ext/libcouchbase/tests/iotests/t_eerrs.cc +4 -2
  78. data/ext/libcouchbase/tests/iotests/t_errmap.cc +6 -3
  79. data/ext/libcouchbase/tests/iotests/t_lock.cc +5 -6
  80. data/ext/libcouchbase/tests/iotests/t_misc.cc +44 -0
  81. data/ext/libcouchbase/tests/iotests/t_serverops.cc +1 -0
  82. data/ext/libcouchbase/tests/iotests/t_subdoc.cc +28 -0
  83. data/ext/libcouchbase/tests/iotests/t_views.cc +22 -10
  84. data/ext/libcouchbase/tools/CMakeLists.txt +21 -1
  85. data/ext/libcouchbase/tools/cbc-handlers.h +23 -3
  86. data/ext/libcouchbase/tools/cbc-n1qlback.cc +1 -1
  87. data/ext/libcouchbase/tools/cbc-pillowfight.cc +126 -26
  88. data/ext/libcouchbase/tools/cbc-proxy.cc +403 -0
  89. data/ext/libcouchbase/tools/cbc-subdoc.cc +826 -0
  90. data/ext/libcouchbase/tools/cbc.cc +149 -37
  91. data/ext/libcouchbase/tools/common/options.h +5 -2
  92. data/ext/libcouchbase/tools/linenoise/linenoise.c +15 -15
  93. data/lib/libcouchbase.rb +4 -0
  94. data/lib/libcouchbase/bucket.rb +51 -0
  95. data/lib/libcouchbase/connection.rb +100 -13
  96. data/lib/libcouchbase/ext/libcouchbase.rb +40 -0
  97. data/lib/libcouchbase/ext/libcouchbase/cmdsubdoc.rb +13 -1
  98. data/lib/libcouchbase/ext/libcouchbase/enums.rb +2 -1
  99. data/lib/libcouchbase/ext/libcouchbase/sdspec.rb +5 -0
  100. data/lib/libcouchbase/subdoc_request.rb +129 -0
  101. data/lib/libcouchbase/version.rb +1 -1
  102. data/spec/bucket_spec.rb +15 -1
  103. data/spec/connection_spec.rb +1 -1
  104. data/spec/subdoc_spec.rb +192 -0
  105. metadata +13 -4
  106. data/ext/libcouchbase/.travis.yml +0 -19
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true, encoding: ASCII-8BIT
2
2
 
3
3
  module Libcouchbase
4
- VERSION = '1.0.4'
4
+ VERSION = '1.1.0'
5
5
  end
data/spec/bucket_spec.rb CHANGED
@@ -1,7 +1,8 @@
1
1
  # frozen_string_literal: true, encoding: ASCII-8BIT
2
2
 
3
3
  require 'libcouchbase'
4
-
4
+ Libcouchbase::Defaults.username = 'tester'
5
+ Libcouchbase::Defaults.password = 'password123'
5
6
 
6
7
  describe Libcouchbase::Bucket do
7
8
  before :each do
@@ -80,6 +81,19 @@ describe Libcouchbase::Bucket do
80
81
  expect(@log).to eq(['woop woop', 'current woop woop'])
81
82
  end
82
83
 
84
+ it "should fetch a value" do
85
+ @reactor.run { |reactor|
86
+ @bucket.delete('randomunknown')
87
+ @log << @bucket.fetch('randomunknown', 'woop woop')
88
+ @log << @bucket.fetch('randomunknown') { 'testing' }
89
+
90
+ @bucket.delete('otherunknown')
91
+ @log << @bucket.fetch('otherunknown') { 'testing' }
92
+ @log << @bucket.fetch('otherunknown', 'woop woop')
93
+ }
94
+ expect(@log).to eq(['woop woop', 'woop woop', 'testing', 'testing'])
95
+ end
96
+
83
97
  it "should retry when performing a CAS operation" do
84
98
  @reactor.run { |reactor|
85
99
  begin
@@ -223,7 +223,7 @@ describe Libcouchbase::Connection do
223
223
 
224
224
  it "should flush when enabled explicitly", flush: true do
225
225
  @reactor.run { |reactor|
226
- connection = Libcouchbase::Connection.new(bucket: :test, password: 'password123')
226
+ connection = Libcouchbase::Connection.new(bucket: :test, username: 'tester', password: 'password123')
227
227
  connection.connect(flush_enabled: true).then do
228
228
  begin
229
229
  connection.flush.then(proc { |resp|
@@ -0,0 +1,192 @@
1
+ # frozen_string_literal: true, encoding: ASCII-8BIT
2
+
3
+ require 'libcouchbase'
4
+
5
+
6
+ describe Libcouchbase::SubdocRequest do
7
+ before :each do
8
+ # This will load the couchbase connection on a different thread
9
+ @bucket = Libcouchbase::Bucket.new
10
+ @bucket.set('subkeytest', {
11
+ bob: 1234,
12
+ hello: 'this value',
13
+ complex: {
14
+ more: "information",
15
+ age: 12
16
+ },
17
+ another: false
18
+ })
19
+ @reactor = ::Libuv::Reactor.default
20
+ @log = []
21
+ end
22
+
23
+ after :each do
24
+ @bucket = nil
25
+ @reactor = nil
26
+ @log = nil
27
+ end
28
+
29
+ describe 'reactor loop' do
30
+ it "should lookup a subkey" do
31
+ @reactor.run { |reactor|
32
+ @log = @bucket.subdoc(:subkeytest) do |subdoc|
33
+ subdoc.get(:hello)
34
+ end
35
+ }
36
+
37
+ expect(@log).to eq('this value')
38
+ end
39
+
40
+ it "should perform multiple lookup operations" do
41
+ @reactor.run { |reactor|
42
+ @log = @bucket.subdoc(:subkeytest) do |subdoc|
43
+ subdoc.get(:hello).exists?('bob')
44
+ end
45
+ }
46
+
47
+ expect(@log).to eq(['this value', true])
48
+ end
49
+
50
+ it "should raise an error on failure" do
51
+ @reactor.run { |reactor|
52
+ begin
53
+ @log = @bucket.subdoc(:subkeytest).exists?('boby').execute!
54
+ rescue => e
55
+ @log << e.class
56
+ end
57
+ }
58
+ expect(@log).to eq([::Libcouchbase::Error::SubdocPathNotFound])
59
+ end
60
+
61
+ it "should return nil when quiet is true" do
62
+ @reactor.run { |reactor|
63
+ begin
64
+ @log << @bucket.subdoc(:subkeytest).exists?('boby', quiet: true).execute!
65
+ @log << @bucket.subdoc(:subkeytest, quiet: true).exists?('boby').execute!
66
+ rescue => e
67
+ @log << e.class
68
+ end
69
+ }
70
+ expect(@log).to eq([nil, nil])
71
+ end
72
+
73
+ it "should perform mutate operations" do
74
+ @reactor.run { |reactor|
75
+ @log << @bucket.subdoc(:subkeytest).dict_upsert(:bob, 4567).execute!
76
+ @log << @bucket.subdoc(:subkeytest).get(:bob).execute!
77
+ }
78
+ expect(@log).to eq([true, 4567])
79
+ end
80
+
81
+ it "should perform multiple mutate operations" do
82
+ @reactor.run { |reactor|
83
+ @log << @bucket.subdoc(:subkeytest) { |subdoc|
84
+ subdoc.dict_upsert(:bob, 4568)
85
+ subdoc.dict_upsert(:another, {hello: true})
86
+ }
87
+ @log << @bucket.subdoc(:subkeytest).get(:bob).get(:another).execute!
88
+ }
89
+ expect(@log).to eq([true, [4568, {hello: true}]])
90
+ end
91
+
92
+ it "should perform a counter mutate operation" do
93
+ @reactor.run { |reactor|
94
+ @log << @bucket.subdoc(:subkeytest).counter(:bob, 1).execute!
95
+ @log << @bucket.subdoc(:subkeytest).get(:bob).execute!
96
+ }
97
+ expect(@log).to eq([1235, 1235])
98
+ end
99
+
100
+ it "should perform multiple counter mutate operations" do
101
+ @reactor.run { |reactor|
102
+ @log << @bucket.subdoc(:subkeytest) { |subdoc|
103
+ subdoc.dict_upsert(:another, {hello: true})
104
+ subdoc.counter(:bob, 1).counter('complex.age', 1)
105
+ }
106
+ @log << @bucket.subdoc(:subkeytest).get(:bob).get(:another).get('complex.age').execute!
107
+ }
108
+ expect(@log).to eq([[1235, 13], [1235, {hello: true}, 13]])
109
+ end
110
+ end
111
+
112
+ describe 'native ruby' do
113
+ it "should lookup a subkey" do
114
+ @log = @bucket.subdoc(:subkeytest) do |subdoc|
115
+ subdoc.get(:hello)
116
+ end
117
+
118
+ expect(@log).to eq('this value')
119
+ end
120
+
121
+ it "should perform multiple lookup operations" do
122
+ @log = @bucket.subdoc(:subkeytest) do |subdoc|
123
+ subdoc.get(:hello).exists?('bob')
124
+ end
125
+
126
+ expect(@log).to eq(['this value', true])
127
+ end
128
+
129
+ it "should raise an error on failure" do
130
+ begin
131
+ @log = @bucket.subdoc(:subkeytest).exists?('boby').execute!
132
+ rescue => e
133
+ @log << e.class
134
+ end
135
+ expect(@log).to eq([::Libcouchbase::Error::SubdocPathNotFound])
136
+ end
137
+
138
+ it "should return nil when quiet is true" do
139
+ begin
140
+ @log << @bucket.subdoc(:subkeytest).exists?('boby', quiet: true).execute!
141
+ @log << @bucket.subdoc(:subkeytest, quiet: true).exists?('boby').execute!
142
+ rescue => e
143
+ @log << e.class
144
+ end
145
+ expect(@log).to eq([nil, nil])
146
+ end
147
+
148
+ it "should perform mutate operations" do
149
+ @log << @bucket.subdoc(:subkeytest).dict_upsert(:bob, 4567).execute!
150
+ @log << @bucket.subdoc(:subkeytest).get(:bob).execute!
151
+ expect(@log).to eq([true, 4567])
152
+ end
153
+
154
+ it "should perform multiple mutate operations" do
155
+ @log << @bucket.subdoc(:subkeytest) { |subdoc|
156
+ subdoc.dict_upsert(:bob, 4568)
157
+ subdoc.dict_upsert(:another, {hello: true})
158
+ }
159
+ @log << @bucket.subdoc(:subkeytest).get(:bob).get(:another).execute!
160
+ expect(@log).to eq([true, [4568, {hello: true}]])
161
+ end
162
+
163
+ it "should perform a counter mutate operation" do
164
+ @log << @bucket.subdoc(:subkeytest).counter(:bob, 1).execute!
165
+ @log << @bucket.subdoc(:subkeytest).get(:bob).execute!
166
+ expect(@log).to eq([1235, 1235])
167
+ end
168
+
169
+ it "should perform multiple counter mutate operations" do
170
+ @log << @bucket.subdoc(:subkeytest) { |subdoc|
171
+ subdoc.dict_upsert(:another, {hello: true})
172
+ subdoc.counter(:bob, 1).counter('complex.age', 1)
173
+ }
174
+ @log << @bucket.subdoc(:subkeytest).get(:bob).get(:another).get('complex.age').execute!
175
+ expect(@log).to eq([[1235, 13], [1235, {hello: true}, 13]])
176
+ end
177
+ end
178
+
179
+ describe 'eventmachine loop' do
180
+ require 'em-synchrony'
181
+
182
+ it "should get a subkey" do
183
+ EM.synchrony {
184
+ @log = @bucket.subdoc(:subkeytest) do |subdoc|
185
+ subdoc.get(:hello).exists?('bob')
186
+ end
187
+ EM.stop
188
+ }
189
+ expect(@log).to eq(['this value', true])
190
+ end
191
+ end
192
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: libcouchbase
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stephen von Takach
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-08-07 00:00:00.000000000 Z
11
+ date: 2017-10-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ffi
@@ -147,7 +147,6 @@ files:
147
147
  - ext/README.md
148
148
  - ext/Rakefile
149
149
  - ext/libcouchbase/.gitignore
150
- - ext/libcouchbase/.travis.yml
151
150
  - ext/libcouchbase/CMakeLists.txt
152
151
  - ext/libcouchbase/CONTRIBUTING.md
153
152
  - ext/libcouchbase/LICENSE
@@ -266,6 +265,7 @@ files:
266
265
  - ext/libcouchbase/doc/apiattr.h
267
266
  - ext/libcouchbase/doc/cbc-n1qlback.markdown
268
267
  - ext/libcouchbase/doc/cbc-pillowfight.markdown
268
+ - ext/libcouchbase/doc/cbc-subdoc.markdown
269
269
  - ext/libcouchbase/doc/cbc.markdown
270
270
  - ext/libcouchbase/doc/cbcrc.markdown
271
271
  - ext/libcouchbase/doc/environment.h
@@ -289,9 +289,11 @@ files:
289
289
  - ext/libcouchbase/doc/man/cbc-n1qlback.1
290
290
  - ext/libcouchbase/doc/man/cbc-observe.1
291
291
  - ext/libcouchbase/doc/man/cbc-pillowfight.1
292
+ - ext/libcouchbase/doc/man/cbc-ping.1
292
293
  - ext/libcouchbase/doc/man/cbc-rm.1
293
294
  - ext/libcouchbase/doc/man/cbc-role-list.1
294
295
  - ext/libcouchbase/doc/man/cbc-stats.1
296
+ - ext/libcouchbase/doc/man/cbc-subdoc.1
295
297
  - ext/libcouchbase/doc/man/cbc-unlock.1
296
298
  - ext/libcouchbase/doc/man/cbc-user-delete.1
297
299
  - ext/libcouchbase/doc/man/cbc-user-list.1
@@ -312,6 +314,7 @@ files:
312
314
  - ext/libcouchbase/example/libeventdirect/main.c
313
315
  - ext/libcouchbase/example/mcc/mcc.cc
314
316
  - ext/libcouchbase/example/minimal/minimal.c
317
+ - ext/libcouchbase/example/observe/durability.c
315
318
  - ext/libcouchbase/example/observe/observe.c
316
319
  - ext/libcouchbase/example/subdoc/subdoc-multi.cc
317
320
  - ext/libcouchbase/example/subdoc/subdoc-simple.cc
@@ -486,6 +489,7 @@ files:
486
489
  - ext/libcouchbase/src/operations/get.cc
487
490
  - ext/libcouchbase/src/operations/observe-seqno.cc
488
491
  - ext/libcouchbase/src/operations/observe.cc
492
+ - ext/libcouchbase/src/operations/ping.cc
489
493
  - ext/libcouchbase/src/operations/pktfwd.cc
490
494
  - ext/libcouchbase/src/operations/remove.cc
491
495
  - ext/libcouchbase/src/operations/stats.cc
@@ -641,6 +645,8 @@ files:
641
645
  - ext/libcouchbase/tools/cbc-handlers.h
642
646
  - ext/libcouchbase/tools/cbc-n1qlback.cc
643
647
  - ext/libcouchbase/tools/cbc-pillowfight.cc
648
+ - ext/libcouchbase/tools/cbc-proxy.cc
649
+ - ext/libcouchbase/tools/cbc-subdoc.cc
644
650
  - ext/libcouchbase/tools/cbc.cc
645
651
  - ext/libcouchbase/tools/common/histogram.cc
646
652
  - ext/libcouchbase/tools/common/histogram.h
@@ -726,6 +732,7 @@ files:
726
732
  - lib/libcouchbase/query_view.rb
727
733
  - lib/libcouchbase/results_fiber.rb
728
734
  - lib/libcouchbase/results_native.rb
735
+ - lib/libcouchbase/subdoc_request.rb
729
736
  - lib/libcouchbase/version.rb
730
737
  - libcouchbase.gemspec
731
738
  - spec/bucket_spec.rb
@@ -742,6 +749,7 @@ files:
742
749
  - spec/seed/2016-10-25T043505Z/2016-10-25T043505Z-full/bucket-default/node-127.0.0.1%3A8091/meta.json
743
750
  - spec/seed/2016-10-25T043505Z/2016-10-25T043505Z-full/bucket-default/node-127.0.0.1%3A8091/seqno.json
744
751
  - spec/seed/2016-10-25T043505Z/2016-10-25T043505Z-full/bucket-default/node-127.0.0.1%3A8091/snapshot_markers.json
752
+ - spec/subdoc_spec.rb
745
753
  - spec/view_spec.rb
746
754
  homepage: https://github.com/cotag/libcouchbase
747
755
  licenses:
@@ -763,7 +771,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
763
771
  version: '0'
764
772
  requirements: []
765
773
  rubyforge_project:
766
- rubygems_version: 2.6.12
774
+ rubygems_version: 2.6.14
767
775
  signing_key:
768
776
  specification_version: 4
769
777
  summary: libcouchbase bindings for Ruby
@@ -782,4 +790,5 @@ test_files:
782
790
  - spec/seed/2016-10-25T043505Z/2016-10-25T043505Z-full/bucket-default/node-127.0.0.1%3A8091/meta.json
783
791
  - spec/seed/2016-10-25T043505Z/2016-10-25T043505Z-full/bucket-default/node-127.0.0.1%3A8091/seqno.json
784
792
  - spec/seed/2016-10-25T043505Z/2016-10-25T043505Z-full/bucket-default/node-127.0.0.1%3A8091/snapshot_markers.json
793
+ - spec/subdoc_spec.rb
785
794
  - spec/view_spec.rb
@@ -1,19 +0,0 @@
1
- language: c
2
-
3
- compiler:
4
- - clang
5
- - gcc
6
-
7
- before_install:
8
- - sudo apt-get -y install python-software-properties
9
- - sudo add-apt-repository -y ppa:mnunberg/cmake
10
- - sudo apt-get update
11
- - sudo apt-get -y install libgtest-dev libssl-dev libev-dev libevent-dev cmake
12
-
13
- script: |
14
- ./cmake/configure --enable-debug --disable-couchbasemock && make && make alltests && cd build && \
15
- (ctest -V || (cat check*.log; false))
16
-
17
- notifications:
18
- email:
19
- - mark.nunberg@couchbase.com