diff --git a/.travis.yml b/.travis.yml
index 354be896d3..4f5136537f 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -14,6 +14,7 @@ script:
- cd python && python setup.py build && python setup.py test && cd ..
- export LD_LIBRARY_PATH=../src/.libs
- cd python && python setup.py build --cpp_implementation && python setup.py test --cpp_implementation && cd ..
+ - cd ruby && sh travis-test.sh && cd ..
- cd conformance && make test_java && cd ..
- make distcheck -j2
notifications:
diff --git a/ruby/pom.xml b/ruby/pom.xml
index 01f0e16b6f..247b243a00 100644
--- a/ruby/pom.xml
+++ b/ruby/pom.xml
@@ -61,6 +61,14 @@
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ 1.6
+ 1.6
+
+
@@ -78,7 +86,7 @@
com.google.protobuf
protobuf-java
- 3.0.0-alpha-3-pre
+ 3.0.0-alpha-2
diff --git a/ruby/tests/basic.rb b/ruby/tests/basic.rb
index 1c2a03dc40..a00f0b053b 100644
--- a/ruby/tests/basic.rb
+++ b/ruby/tests/basic.rb
@@ -1035,7 +1035,8 @@ module BasicTest
end
def test_json
- skip("Unimplemented") if RUBY_PLATFORM == "java"
+ # TODO: Fix JSON in JRuby version.
+ return if RUBY_PLATFORM == "java"
m = TestMessage.new(:optional_int32 => 1234,
:optional_int64 => -0x1_0000_0000,
:optional_uint32 => 0x8000_0000,
@@ -1066,7 +1067,8 @@ module BasicTest
end
def test_json_maps
- skip("Unimplemented") if RUBY_PLATFORM == "java"
+ # TODO: Fix JSON in JRuby version.
+ return if RUBY_PLATFORM == "java"
m = MapMessage.new(:map_string_int32 => {"a" => 1})
expected = '{"map_string_int32":{"a":1},"map_string_msg":{}}'
assert MapMessage.encode_json(m) == expected
diff --git a/ruby/travis-test.sh b/ruby/travis-test.sh
new file mode 100755
index 0000000000..2ccb490aae
--- /dev/null
+++ b/ruby/travis-test.sh
@@ -0,0 +1,19 @@
+#!/bin/bash
+
+# Exit on any error.
+set -e
+
+test_version() {
+ version=$1
+ bash --login -c \
+ "rvm install $version && rvm use $version && \
+ which ruby && \
+ gem install bundler && bundle && \
+ rake test"
+}
+
+test_version ruby-1.9
+test_version ruby-2.0
+test_version ruby-2.1
+test_version ruby-2.2
+test_version jruby