| # frozen_string_literal: true |
| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # https://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| require "bundler/gem_tasks" |
| require 'rake/testtask' |
| |
| Rake::TestTask.new(:interop) do |t| |
| t.pattern = 'interop/test*.rb' |
| end |
| |
| Rake::TestTask.new(:test) do |t| |
| t.libs << "test" |
| t.pattern = 'test/test_*.rb' |
| t.verbose = true |
| end |
| |
| desc "Generate data for interop tests" |
| task :generate_interop do |
| $:.unshift(HERE + '/lib') |
| $:.unshift(HERE + '/test') |
| require 'avro' |
| require 'random_data' |
| |
| schema = Avro::Schema.parse(File.read(SCHEMAS + '/interop.avsc')) |
| r = RandomData.new(schema, ENV['SEED']) |
| Avro::DataFile.codecs.each do |name, codec| |
| next unless codec |
| filename = name == 'null' ? 'ruby.avro' : "ruby_#{name}.avro" |
| path = File.join(BUILD, 'interop/data', filename) |
| Avro::DataFile.open(path, 'w', schema.to_s, name) do |writer| |
| writer << r.next |
| end |
| end |
| end |
| |
| HERE = File.expand_path(File.dirname(__FILE__)) |
| SHARE = HERE + '/../../share' |
| SCHEMAS = SHARE + '/test/schemas' |
| BUILD = HERE + '/../../build' |
| |
| task default: :test |