# 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