blob: fd2dfbefa2aa07b819411167b42e96a2a16f37d3 [file] [log] [blame]
David Reissea2cba82009-03-30 21:35:00 +00001#
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
Bryan Duxburyd815c212009-03-19 18:57:43 +000020require "spec/spec_helper"
21require "lib/thrift/serializer"
22
23path, factory_class = ARGV
24
25factory = eval(factory_class).new
26
27deser = Thrift::Deserializer.new(factory)
28
29cpts = CompactProtoTestStruct.new
30CompactProtoTestStruct.constants.each do |const|
31 cpts.instance_variable_set("@#{const}", nil)
32end
33
34data = File.read(path)
35
36deser.deserialize(cpts, data)
37
38if cpts == Fixtures::COMPACT_PROTOCOL_TEST_STRUCT
39 puts "Object verified successfully!"
40else
41 puts "Object failed verification! Expected #{Fixtures::COMPACT_PROTOCOL_TEST_STRUCT.inspect} but got #{cpts.inspect}"
42
43 puts cpts.differences(Fixtures::COMPACT_PROTOCOL_TEST_STRUCT)
44end