You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@avro.apache.org by rs...@apache.org on 2020/01/29 08:54:41 UTC
[avro] 22/23: AVRO-2456: Add interop test for the snappy and zstd
codec (#573)
This is an automated email from the ASF dual-hosted git repository.
rskraba pushed a commit to branch branch-1.9
in repository https://gitbox.apache.org/repos/asf/avro.git
commit f6aee38d6cedf43d65251c75226be7c5121c8796
Author: Kengo Seki <se...@apache.org>
AuthorDate: Sat Jul 13 02:55:42 2019 +0900
AVRO-2456: Add interop test for the snappy and zstd codec (#573)
---
lang/java/avro/pom.xml | 32 ++++++++++++++++++++++++++++++--
lang/java/ipc/pom.xml | 8 ++++++++
lang/java/pom.xml | 1 -
lang/ruby/interop/test_interop.rb | 10 +++++++++-
4 files changed, 47 insertions(+), 4 deletions(-)
diff --git a/lang/java/avro/pom.xml b/lang/java/avro/pom.xml
index 5d902b9..4953fce 100644
--- a/lang/java/avro/pom.xml
+++ b/lang/java/avro/pom.xml
@@ -133,6 +133,36 @@
</configuration>
<goals><goal>java</goal></goals>
</execution>
+ <!-- Generate random data for interop tests, using snappy codec -->
+ <execution>
+ <id>interop-generate-snappy-codec</id>
+ <phase>generate-resources</phase>
+ <configuration>
+ <mainClass>org.apache.avro.util.RandomData</mainClass>
+ <arguments>
+ <argument>../../../share/test/schemas/interop.avsc</argument>
+ <argument>../../../build/interop/data/java_snappy.avro</argument>
+ <argument>100</argument>
+ <argument>snappy</argument>
+ </arguments>
+ </configuration>
+ <goals><goal>java</goal></goals>
+ </execution>
+ <!-- Generate random data for interop tests, using zstandard codec -->
+ <execution>
+ <id>interop-generate-zstandard-codec</id>
+ <phase>generate-resources</phase>
+ <configuration>
+ <mainClass>org.apache.avro.util.RandomData</mainClass>
+ <arguments>
+ <argument>../../../share/test/schemas/interop.avsc</argument>
+ <argument>../../../build/interop/data/java_zstandard.avro</argument>
+ <argument>100</argument>
+ <argument>zstandard</argument>
+ </arguments>
+ </configuration>
+ <goals><goal>java</goal></goals>
+ </execution>
</executions>
</plugin>
</plugins>
@@ -156,7 +186,6 @@
<dependency>
<groupId>org.xerial.snappy</groupId>
<artifactId>snappy-java</artifactId>
- <scope>provided</scope>
<optional>true</optional>
</dependency>
<dependency>
@@ -169,7 +198,6 @@
<dependency>
<groupId>com.github.luben</groupId>
<artifactId>zstd-jni</artifactId>
- <scope>provided</scope>
<optional>true</optional>
</dependency>
<dependency>
diff --git a/lang/java/ipc/pom.xml b/lang/java/ipc/pom.xml
index 9c68d8f..33fdebc 100644
--- a/lang/java/ipc/pom.xml
+++ b/lang/java/ipc/pom.xml
@@ -149,6 +149,14 @@
<artifactId>javax.annotation-api</artifactId>
<version>1.3.2</version>
</dependency>
+ <dependency>
+ <groupId>org.xerial.snappy</groupId>
+ <artifactId>snappy-java</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.github.luben</groupId>
+ <artifactId>zstd-jni</artifactId>
+ </dependency>
</dependencies>
diff --git a/lang/java/pom.xml b/lang/java/pom.xml
index 3bd4c20..3af1890 100644
--- a/lang/java/pom.xml
+++ b/lang/java/pom.xml
@@ -598,7 +598,6 @@
<groupId>com.github.luben</groupId>
<artifactId>zstd-jni</artifactId>
<version>${zstd-jni.version}</version>
- <scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
diff --git a/lang/ruby/interop/test_interop.rb b/lang/ruby/interop/test_interop.rb
index 1a4aa74..a63c158 100644
--- a/lang/ruby/interop/test_interop.rb
+++ b/lang/ruby/interop/test_interop.rb
@@ -19,11 +19,19 @@ require 'rubygems'
require 'test/unit'
require 'avro'
+CODECS_TO_VALIDATE = ['deflate'] # The 'null' codec is implicitly included
+
class TestInterop < Test::Unit::TestCase
HERE = File.expand_path(File.dirname(__FILE__))
SHARE = HERE + '/../../../share'
SCHEMAS = SHARE + '/test/schemas'
- Dir[HERE + '/../../../build/interop/data/*'].each do |fn|
+
+ files = Dir[HERE + '/../../../build/interop/data/*.avro'].select do |fn|
+ sep, codec = File.basename(fn, 'avro').rpartition('_')[1, 2]
+ sep.empty? || CODECS_TO_VALIDATE.include?(codec)
+ end
+
+ files.each do |fn|
define_method("test_read_#{File.basename(fn, 'avro')}") do
projection = Avro::Schema.parse(File.read(SCHEMAS+'/interop.avsc'))