thrift 0.7.0 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. data/benchmark/gen-rb/benchmark_constants.rb +1 -1
  2. data/benchmark/gen-rb/benchmark_service.rb +1 -1
  3. data/benchmark/gen-rb/benchmark_types.rb +1 -1
  4. data/ext/strlcpy.c +41 -0
  5. data/ext/strlcpy.h +30 -0
  6. data/ext/struct.c +6 -32
  7. data/lib/thrift/struct_union.rb +1 -1
  8. data/spec/base_protocol_spec.rb +1 -1
  9. data/spec/base_transport_spec.rb +1 -1
  10. data/spec/binary_protocol_accelerated_spec.rb +2 -2
  11. data/spec/binary_protocol_spec.rb +2 -2
  12. data/spec/binary_protocol_spec_shared.rb +1 -1
  13. data/spec/client_spec.rb +1 -1
  14. data/spec/compact_protocol_spec.rb +12 -1
  15. data/spec/exception_spec.rb +1 -1
  16. data/spec/gen-rb/nonblocking_service.rb +1 -1
  17. data/spec/gen-rb/thrift_spec_constants.rb +1 -1
  18. data/spec/gen-rb/thrift_spec_types.rb +1 -1
  19. data/spec/http_client_spec.rb +1 -1
  20. data/spec/mongrel_http_server_spec.rb +1 -1
  21. data/spec/nonblocking_server_spec.rb +1 -1
  22. data/spec/processor_spec.rb +1 -1
  23. data/spec/serializer_spec.rb +1 -1
  24. data/spec/server_socket_spec.rb +2 -2
  25. data/spec/server_spec.rb +1 -2
  26. data/spec/socket_spec.rb +2 -2
  27. data/spec/socket_spec_shared.rb +1 -1
  28. data/spec/spec_helper.rb +1 -1
  29. data/spec/struct_spec.rb +1 -1
  30. data/spec/types_spec.rb +1 -1
  31. data/spec/union_spec.rb +1 -1
  32. data/spec/unix_socket_spec.rb +2 -2
  33. data/{debug_proto_test → test/debug_proto}/gen-rb/debug_proto_test_constants.rb +1 -1
  34. data/{debug_proto_test → test/debug_proto}/gen-rb/debug_proto_test_types.rb +56 -1
  35. data/{debug_proto_test → test/debug_proto}/gen-rb/empty_service.rb +1 -1
  36. data/{debug_proto_test → test/debug_proto}/gen-rb/inherited.rb +1 -1
  37. data/{debug_proto_test → test/debug_proto}/gen-rb/reverse_order_service.rb +1 -1
  38. data/{debug_proto_test → test/debug_proto}/gen-rb/service_for_exception_with_a_map.rb +1 -1
  39. data/{debug_proto_test → test/debug_proto}/gen-rb/srv.rb +1 -1
  40. metadata +143 -70
  41. data/InstalledFiles +0 -1
  42. data/Makefile +0 -512
  43. data/Makefile.am +0 -49
  44. data/Makefile.in +0 -512
  45. data/Manifest +0 -103
  46. data/Rakefile +0 -102
  47. data/script/proto_benchmark.rb +0 -121
  48. data/script/read_struct.rb +0 -43
  49. data/script/write_struct.rb +0 -30
  50. data/setup.rb +0 -1585
  51. data/thrift.gemspec +0 -30
  52. data/tmp/thrift-0.7.0.gem +0 -0
@@ -1,5 +1,5 @@
1
1
  #
2
- # Autogenerated by Thrift Compiler (0.7.0)
2
+ # Autogenerated by Thrift Compiler (0.8.0)
3
3
  #
4
4
  # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5
5
  #
@@ -1,5 +1,5 @@
1
1
  #
2
- # Autogenerated by Thrift Compiler (0.7.0)
2
+ # Autogenerated by Thrift Compiler (0.8.0)
3
3
  #
4
4
  # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5
5
  #
@@ -1,5 +1,5 @@
1
1
  #
2
- # Autogenerated by Thrift Compiler (0.7.0)
2
+ # Autogenerated by Thrift Compiler (0.8.0)
3
3
  #
4
4
  # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5
5
  #
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Licensed to the Apache Software Foundation (ASF) under one
3
+ * or more contributor license agreements. See the NOTICE file
4
+ * distributed with this work for additional information
5
+ * regarding copyright ownership. The ASF licenses this file
6
+ * to you under the Apache License, Version 2.0 (the
7
+ * "License"); you may not use this file except in compliance
8
+ * with the License. You may obtain a copy of the License at
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing,
13
+ * software distributed under the License is distributed on an
14
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
+ * KIND, either express or implied. See the License for the
16
+ * specific language governing permissions and limitations
17
+ * under the License.
18
+ */
19
+
20
+ #include "strlcpy.h"
21
+
22
+ #ifndef HAVE_STRLCPY
23
+ #define HAVE_STRLCPY
24
+ size_t
25
+ strlcpy (char *dst, const char *src, size_t dst_sz)
26
+ {
27
+ size_t n;
28
+
29
+ for (n = 0; n < dst_sz; n++) {
30
+ if ((*dst++ = *src++) == '\0')
31
+ break;
32
+ }
33
+
34
+ if (n < dst_sz)
35
+ return n;
36
+ if (n > 0)
37
+ *(dst - 1) = '\0';
38
+ return n + strlen (src);
39
+ }
40
+ #endif
41
+
@@ -0,0 +1,30 @@
1
+ /*
2
+ * Licensed to the Apache Software Foundation (ASF) under one
3
+ * or more contributor license agreements. See the NOTICE file
4
+ * distributed with this work for additional information
5
+ * regarding copyright ownership. The ASF licenses this file
6
+ * to you under the Apache License, Version 2.0 (the
7
+ * "License"); you may not use this file except in compliance
8
+ * with the License. You may obtain a copy of the License at
9
+ *
10
+ * http://www.apache.org/licenses/LICENSE-2.0
11
+ *
12
+ * Unless required by applicable law or agreed to in writing,
13
+ * software distributed under the License is distributed on an
14
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
+ * KIND, either express or implied. See the License for the
16
+ * specific language governing permissions and limitations
17
+ * under the License.
18
+ */
19
+
20
+
21
+ #include <sys/types.h>
22
+ #include <string.h>
23
+
24
+ #ifndef HAVE_STRLCPY
25
+ size_t
26
+ strlcpy (char *dst, const char *src, size_t dst_sz);
27
+ #else
28
+ extern size_t strlcpy(char *, const char *, size_t);
29
+ #endif
30
+
@@ -20,33 +20,7 @@
20
20
  #include "struct.h"
21
21
  #include "constants.h"
22
22
  #include "macros.h"
23
-
24
- #ifndef HAVE_STRLCPY
25
-
26
- static
27
- size_t
28
- strlcpy (char *dst, const char *src, size_t dst_sz)
29
- {
30
- size_t n;
31
-
32
- for (n = 0; n < dst_sz; n++) {
33
- if ((*dst++ = *src++) == '\0')
34
- break;
35
- }
36
-
37
- if (n < dst_sz)
38
- return n;
39
- if (n > 0)
40
- *(dst - 1) = '\0';
41
- return n + strlen (src);
42
- }
43
- #else
44
- /*
45
- Ruby 1.9.x includes the OpenBSD implementation of strlcpy.
46
- See missing/strlcpy.c in Ruby 1.9 source
47
- */
48
- extern size_t strlcpy(char *, const char *, size_t);
49
- #endif
23
+ #include "strlcpy.h"
50
24
 
51
25
  VALUE thrift_union_class;
52
26
 
@@ -231,10 +205,10 @@ static VALUE rb_thrift_struct_write(VALUE self, VALUE protocol);
231
205
  static void write_anything(int ttype, VALUE value, VALUE protocol, VALUE field_info);
232
206
 
233
207
  VALUE get_field_value(VALUE obj, VALUE field_name) {
234
- char name_buf[RSTRING_LEN(field_name) + 1];
208
+ char name_buf[RSTRING_LEN(field_name) + 2];
235
209
 
236
210
  name_buf[0] = '@';
237
- strlcpy(&name_buf[1], RSTRING_PTR(field_name), sizeof(name_buf));
211
+ strlcpy(&name_buf[1], RSTRING_PTR(field_name), RSTRING_LEN(field_name) + 1);
238
212
 
239
213
  VALUE value = rb_ivar_get(obj, rb_intern(name_buf));
240
214
 
@@ -417,10 +391,10 @@ static void skip_map_contents(VALUE protocol, VALUE key_type_value, VALUE value_
417
391
  static void skip_list_or_set_contents(VALUE protocol, VALUE element_type_value, int size);
418
392
 
419
393
  static void set_field_value(VALUE obj, VALUE field_name, VALUE value) {
420
- char name_buf[RSTRING_LEN(field_name) + 1];
394
+ char name_buf[RSTRING_LEN(field_name) + 2];
421
395
 
422
396
  name_buf[0] = '@';
423
- strlcpy(&name_buf[1], RSTRING_PTR(field_name), sizeof(name_buf));
397
+ strlcpy(&name_buf[1], RSTRING_PTR(field_name), RSTRING_LEN(field_name)+1);
424
398
 
425
399
  rb_ivar_set(obj, rb_intern(name_buf), value);
426
400
  }
@@ -484,7 +458,7 @@ static VALUE read_anything(VALUE protocol, int ttype, VALUE field_info) {
484
458
  if (!NIL_P(key_info) && !NIL_P(value_info)) {
485
459
  int specified_key_type = FIX2INT(rb_hash_aref(key_info, type_sym));
486
460
  int specified_value_type = FIX2INT(rb_hash_aref(value_info, type_sym));
487
- if (specified_key_type == key_ttype && specified_value_type == value_ttype) {
461
+ if (num_entries == 0 || (specified_key_type == key_ttype && specified_value_type == value_ttype)) {
488
462
  result = rb_hash_new();
489
463
 
490
464
  for (i = 0; i < num_entries; ++i) {
@@ -56,7 +56,7 @@ module Thrift
56
56
  when Types::MAP
57
57
  key_type, val_type, size = iprot.read_map_begin
58
58
  # Skip the map contents if the declared key or value types don't match the expected ones.
59
- if (key_type != field[:key][:type] || val_type != field[:value][:type])
59
+ if (size != 0 && (key_type != field[:key][:type] || val_type != field[:value][:type]))
60
60
  size.times do
61
61
  iprot.skip(key_type)
62
62
  iprot.skip(val_type)
@@ -17,7 +17,7 @@
17
17
  # under the License.
18
18
  #
19
19
 
20
- require File.dirname(__FILE__) + '/spec_helper'
20
+ require File.expand_path("#{File.dirname(__FILE__)}/spec_helper")
21
21
 
22
22
  class ThriftBaseProtocolSpec < Spec::ExampleGroup
23
23
  include Thrift
@@ -17,7 +17,7 @@
17
17
  # under the License.
18
18
  #
19
19
 
20
- require File.dirname(__FILE__) + '/spec_helper'
20
+ require File.expand_path("#{File.dirname(__FILE__)}/spec_helper")
21
21
 
22
22
  class ThriftBaseTransportSpec < Spec::ExampleGroup
23
23
  include Thrift
@@ -17,8 +17,8 @@
17
17
  # under the License.
18
18
  #
19
19
 
20
- require File.dirname(__FILE__) + '/spec_helper'
21
- require File.dirname(__FILE__) + '/binary_protocol_spec_shared'
20
+ require File.expand_path("#{File.dirname(__FILE__)}/spec_helper")
21
+ require File.expand_path("#{File.dirname(__FILE__)}/binary_protocol_spec_shared")
22
22
 
23
23
  if defined? Thrift::BinaryProtocolAccelerated
24
24
 
@@ -17,8 +17,8 @@
17
17
  # under the License.
18
18
  #
19
19
 
20
- require File.dirname(__FILE__) + '/spec_helper'
21
- require File.dirname(__FILE__) + '/binary_protocol_spec_shared'
20
+ require File.expand_path("#{File.dirname(__FILE__)}/spec_helper")
21
+ require File.expand_path("#{File.dirname(__FILE__)}/binary_protocol_spec_shared")
22
22
 
23
23
  class ThriftBinaryProtocolSpec < Spec::ExampleGroup
24
24
  include Thrift
@@ -17,7 +17,7 @@
17
17
  # under the License.
18
18
  #
19
19
 
20
- require File.dirname(__FILE__) + '/spec_helper'
20
+ require File.expand_path("#{File.dirname(__FILE__)}/spec_helper")
21
21
 
22
22
  shared_examples_for 'a binary protocol' do
23
23
  before(:each) do
@@ -17,7 +17,7 @@
17
17
  # under the License.
18
18
  #
19
19
 
20
- require File.dirname(__FILE__) + '/spec_helper'
20
+ require File.expand_path("#{File.dirname(__FILE__)}/spec_helper")
21
21
 
22
22
  class ThriftClientSpec < Spec::ExampleGroup
23
23
  include Thrift
@@ -17,7 +17,7 @@
17
17
  # under the License.
18
18
  #
19
19
 
20
- require File.dirname(__FILE__) + '/spec_helper'
20
+ require File.expand_path("#{File.dirname(__FILE__)}/spec_helper")
21
21
 
22
22
  describe Thrift::CompactProtocol do
23
23
  TESTS = {
@@ -115,6 +115,17 @@ describe Thrift::CompactProtocol do
115
115
  brcp2.should == brcp
116
116
  end
117
117
 
118
+ it "should deserialize an empty map to an empty hash" do
119
+ struct = SingleMapTestStruct.new(:i32_map => {})
120
+ ser = Thrift::Serializer.new(Thrift::CompactProtocolFactory.new)
121
+ bytes = ser.serialize(struct)
122
+
123
+ deser = Thrift::Deserializer.new(Thrift::CompactProtocolFactory.new)
124
+ struct2 = SingleMapTestStruct.new
125
+ deser.deserialize(struct2, bytes)
126
+ struct.should == struct2
127
+ end
128
+
118
129
  class JankyHandler
119
130
  def Janky(i32arg)
120
131
  i32arg * 2
@@ -17,7 +17,7 @@
17
17
  # under the License.
18
18
  #
19
19
 
20
- require File.dirname(__FILE__) + '/spec_helper'
20
+ require File.expand_path("#{File.dirname(__FILE__)}/spec_helper")
21
21
 
22
22
  class ThriftExceptionSpec < Spec::ExampleGroup
23
23
  include Thrift
@@ -1,5 +1,5 @@
1
1
  #
2
- # Autogenerated by Thrift Compiler (0.7.0)
2
+ # Autogenerated by Thrift Compiler (0.8.0)
3
3
  #
4
4
  # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5
5
  #
@@ -1,5 +1,5 @@
1
1
  #
2
- # Autogenerated by Thrift Compiler (0.7.0)
2
+ # Autogenerated by Thrift Compiler (0.8.0)
3
3
  #
4
4
  # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5
5
  #
@@ -1,5 +1,5 @@
1
1
  #
2
- # Autogenerated by Thrift Compiler (0.7.0)
2
+ # Autogenerated by Thrift Compiler (0.8.0)
3
3
  #
4
4
  # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5
5
  #
@@ -17,7 +17,7 @@
17
17
  # under the License.
18
18
  #
19
19
 
20
- require File.dirname(__FILE__) + '/spec_helper'
20
+ require File.expand_path("#{File.dirname(__FILE__)}/spec_helper")
21
21
 
22
22
  class ThriftHTTPClientTransportSpec < Spec::ExampleGroup
23
23
  include Thrift
@@ -17,7 +17,7 @@
17
17
  # under the License.
18
18
  #
19
19
 
20
- require File.dirname(__FILE__) + '/spec_helper'
20
+ require File.expand_path("#{File.dirname(__FILE__)}/spec_helper")
21
21
  require 'thrift/server/mongrel_http_server'
22
22
 
23
23
  class ThriftHTTPServerSpec < Spec::ExampleGroup
@@ -17,7 +17,7 @@
17
17
  # under the License.
18
18
  #
19
19
 
20
- require File.dirname(__FILE__) + '/spec_helper'
20
+ require File.expand_path("#{File.dirname(__FILE__)}/spec_helper")
21
21
 
22
22
  class ThriftNonblockingServerSpec < Spec::ExampleGroup
23
23
  include Thrift
@@ -17,7 +17,7 @@
17
17
  # under the License.
18
18
  #
19
19
 
20
- require File.dirname(__FILE__) + '/spec_helper'
20
+ require File.expand_path("#{File.dirname(__FILE__)}/spec_helper")
21
21
 
22
22
  class ThriftProcessorSpec < Spec::ExampleGroup
23
23
  include Thrift
@@ -17,7 +17,7 @@
17
17
  # under the License.
18
18
  #
19
19
 
20
- require File.dirname(__FILE__) + '/spec_helper'
20
+ require File.expand_path("#{File.dirname(__FILE__)}/spec_helper")
21
21
 
22
22
  class ThriftSerializerSpec < Spec::ExampleGroup
23
23
  include Thrift
@@ -17,8 +17,8 @@
17
17
  # under the License.
18
18
  #
19
19
 
20
- require File.dirname(__FILE__) + '/spec_helper'
21
- require File.dirname(__FILE__) + "/socket_spec_shared"
20
+ require File.expand_path("#{File.dirname(__FILE__)}/spec_helper")
21
+ require File.expand_path("#{File.dirname(__FILE__)}/socket_spec_shared")
22
22
 
23
23
  class ThriftServerSocketSpec < Spec::ExampleGroup
24
24
  include Thrift
@@ -16,8 +16,7 @@
16
16
  # specific language governing permissions and limitations
17
17
  # under the License.
18
18
  #
19
-
20
- require File.dirname(__FILE__) + '/spec_helper'
19
+ require File.expand_path("#{File.dirname(__FILE__)}/spec_helper")
21
20
 
22
21
  class ThriftServerSpec < Spec::ExampleGroup
23
22
  include Thrift
@@ -17,8 +17,8 @@
17
17
  # under the License.
18
18
  #
19
19
 
20
- require File.dirname(__FILE__) + '/spec_helper'
21
- require File.dirname(__FILE__) + "/socket_spec_shared"
20
+ require File.expand_path("#{File.dirname(__FILE__)}/spec_helper")
21
+ require File.expand_path("#{File.dirname(__FILE__)}/socket_spec_shared")
22
22
 
23
23
  class ThriftSocketSpec < Spec::ExampleGroup
24
24
  include Thrift
@@ -17,7 +17,7 @@
17
17
  # under the License.
18
18
  #
19
19
 
20
- require File.dirname(__FILE__) + '/spec_helper'
20
+ require File.expand_path("#{File.dirname(__FILE__)}/spec_helper")
21
21
 
22
22
  shared_examples_for "a socket" do
23
23
  it "should open a socket" do
@@ -42,7 +42,7 @@ Spec::Runner.configure do |configuration|
42
42
  end
43
43
  end
44
44
 
45
- $:.unshift File.join(File.dirname(__FILE__), *%w[.. debug_proto_test gen-rb])
45
+ $:.unshift File.join(File.dirname(__FILE__), *%w[.. test debug_proto gen-rb])
46
46
  require "srv"
47
47
  require "debug_proto_test_constants"
48
48
 
@@ -17,7 +17,7 @@
17
17
  # under the License.
18
18
  #
19
19
 
20
- require File.dirname(__FILE__) + '/spec_helper'
20
+ require File.expand_path("#{File.dirname(__FILE__)}/spec_helper")
21
21
 
22
22
  class ThriftStructSpec < Spec::ExampleGroup
23
23
  include Thrift
@@ -17,7 +17,7 @@
17
17
  # under the License.
18
18
  #
19
19
 
20
- require File.dirname(__FILE__) + '/spec_helper'
20
+ require File.expand_path("#{File.dirname(__FILE__)}/spec_helper")
21
21
 
22
22
  class ThriftTypesSpec < Spec::ExampleGroup
23
23
  include Thrift
@@ -17,7 +17,7 @@
17
17
  # under the License.
18
18
  #
19
19
 
20
- require File.dirname(__FILE__) + '/spec_helper'
20
+ require File.expand_path("#{File.dirname(__FILE__)}/spec_helper")
21
21
 
22
22
  class ThriftUnionSpec < Spec::ExampleGroup
23
23
  include Thrift
@@ -17,8 +17,8 @@
17
17
  # under the License.
18
18
  #
19
19
 
20
- require File.dirname(__FILE__) + '/spec_helper'
21
- require File.dirname(__FILE__) + "/socket_spec_shared"
20
+ require File.expand_path("#{File.dirname(__FILE__)}/spec_helper")
21
+ require File.expand_path("#{File.dirname(__FILE__)}/socket_spec_shared")
22
22
 
23
23
  class ThriftUNIXSocketSpec < Spec::ExampleGroup
24
24
  include Thrift
@@ -1,5 +1,5 @@
1
1
  #
2
- # Autogenerated by Thrift Compiler (0.7.0)
2
+ # Autogenerated by Thrift Compiler (0.8.0)
3
3
  #
4
4
  # DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
5
5
  #