Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 19 additions & 10 deletions .evergreen/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,7 @@ functions:
"upload test results":
- command: attach.xunit_results
params:
file: ./src/*/build/test-results/TEST-*.xml
file: ./src/tmp/rspec.xml

"run tests":
- command: shell.exec
Expand Down Expand Up @@ -249,10 +249,15 @@ axes:
display_name: OS
values:
- id: debian
display_name: "Debian 11"
run_on: debian11-small
display_name: "Debian 12"
run_on: debian12-small
variables:
MACHINE: "debian11"
MACHINE: "debian12"
- id: "ubuntu2404"
display_name: "Ubuntu 24.04"
run_on: ubuntu2404-small
variables:
MACHINE: "ubuntu2204"
- id: "ubuntu2204"
display_name: "Ubuntu 22.04"
run_on: ubuntu2204-small
Expand All @@ -267,11 +272,11 @@ axes:
- id: "special-os"
display_name: OS
values:
- id: "ubuntu2204-arm64"
display_name: "Ubuntu 22.04 ARM64"
run_on: ubuntu2204-arm64-small
- id: "ubuntu2404-arm64"
display_name: "Ubuntu 24.04 ARM64"
run_on: ubuntu2404-arm64-small
variables:
MACHINE: ubuntu2204-arm64
MACHINE: ubuntu2404-arm64

- id: ruby
display_name: Ruby Version
Expand All @@ -296,6 +301,10 @@ axes:
display_name: ruby-2.7
variables:
RVM_RUBY: ruby-2.7
- id: jruby-10.0
display_name: jruby-10.0
variables:
RVM_RUBY: jruby-10.0
- id: jruby-9.4
display_name: jruby-9.4
variables:
Expand Down Expand Up @@ -390,13 +399,13 @@ buildvariants:
- name: "test"

- matrix_name: "special-os"
matrix_spec: { ruby: ["ruby-3.2", "ruby-3.1", "jruby-9.4"], special-os: '*' }
matrix_spec: { ruby: ["ruby-3.2", "ruby-3.1"], special-os: '*' }
display_name: "${ruby}, ${special-os}"
tasks:
- name: "test"

- matrix_name: "jruby"
matrix_spec: { ruby: ["jruby-9.4", "jruby-9.3"], all-os: ubuntu2204 }
matrix_spec: { ruby: ["jruby-10.0", "jruby-9.4", "jruby-9.3"], all-os: ubuntu2204 }
display_name: "${ruby}, ${all-os}"
tasks:
- name: "test"
Expand Down
19 changes: 12 additions & 7 deletions .evergreen/config/axes.yml.erb
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,15 @@ axes:
display_name: OS
values:
- id: debian
display_name: "Debian 11"
run_on: debian11-small
display_name: "Debian 12"
run_on: debian12-small
variables:
MACHINE: "debian11"
MACHINE: "debian12"
- id: "ubuntu2404"
display_name: "Ubuntu 24.04"
run_on: ubuntu2404-small
variables:
MACHINE: "ubuntu2204"
- id: "ubuntu2204"
display_name: "Ubuntu 22.04"
run_on: ubuntu2204-small
Expand All @@ -21,11 +26,11 @@ axes:
- id: "special-os"
display_name: OS
values:
- id: "ubuntu2204-arm64"
display_name: "Ubuntu 22.04 ARM64"
run_on: ubuntu2204-arm64-small
- id: "ubuntu2404-arm64"
display_name: "Ubuntu 24.04 ARM64"
run_on: ubuntu2404-arm64-small
variables:
MACHINE: ubuntu2204-arm64
MACHINE: ubuntu2404-arm64

- id: ruby
display_name: Ruby Version
Expand Down
2 changes: 1 addition & 1 deletion .evergreen/config/functions.yml.erb
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ functions:
"upload test results":
- command: attach.xunit_results
params:
file: ./src/*/build/test-results/TEST-*.xml
file: ./src/tmp/rspec.xml

"run tests":
- command: shell.exec
Expand Down
2 changes: 1 addition & 1 deletion .evergreen/config/variants.yml.erb
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ buildvariants:
- name: "test"

- matrix_name: "special-os"
matrix_spec: { ruby: <%= recent_rubies %>, special-os: '*' }
matrix_spec: { ruby: <%= recent_rubies - %w[ jruby-10.0 ] %>, special-os: '*' }
display_name: "${ruby}, ${special-os}"
tasks:
- name: "test"
Expand Down
6 changes: 6 additions & 0 deletions .evergreen/run-tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,12 @@ set_env_ruby

install_deps

# TODO: move this to shared/shlib/set_env.sh
export JAVA_HOME="/opt/java/jdk21"
export SOURCE_VERSION=21
export TARGET_VERSION=21
# END TODO
export CI=1
echo "Running specs"
bundle exec rake spec
test_status=$?
Expand Down
6 changes: 3 additions & 3 deletions .evergreen/update-evergreen-configs
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ module ConfigProcessor

# these are used for testing against a few recent ruby versions
def recent_rubies
@recent_rubies ||= %w[ ruby-3.2 ruby-3.1 jruby-9.4 ]
@recent_rubies ||= %w[ ruby-3.2 ruby-3.1 jruby-10.0 ]
end

# the most recently released, stable version of Ruby (make sure this
Expand All @@ -96,7 +96,7 @@ module ConfigProcessor

# as above, but including the most recent JRuby release
def sample_rubies
@sample_rubies ||= sample_mri_rubies + %w[ jruby-9.4 ]
@sample_rubies ||= sample_mri_rubies + %w[ jruby-10.0 ]
end

# older Ruby versions provided by 10gen/mongo-ruby-toolchain
Expand All @@ -106,7 +106,7 @@ module ConfigProcessor

# all supported JRuby versions provided by 10gen/mongo-ruby-toolchain
def jrubies
@jrubies ||= %w[ jruby-9.4 jruby-9.3 ]
@jrubies ||= %w[ jruby-10.0 jruby-9.4 jruby-9.3 ]
end

# all supported MRI ruby versions
Expand Down
10 changes: 8 additions & 2 deletions .rspec
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
--color
--format <%= ENV["CI"] ? 'Rfc::Riff' : 'Fuubar'%>
--tty
--colour
<% if %w(1 true yes).include?(ENV['CI']&.downcase) %>
--format RspecJunitFormatter
--out tmp/rspec.xml
--format 'Rfc::Riff'
<% else %>
--format Fuubar
<% end %>
1 change: 1 addition & 0 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -38,4 +38,5 @@ end
group :test do
gem 'fuubar'
gem 'rfc'
gem "rspec_junit_formatter"
end
4 changes: 2 additions & 2 deletions spec/bson/int64_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@
BSON::ByteBuffer.new(BSON::Int64.new(integer).to_bson.to_s)
end

context "when on JRuby", if: BSON::Environment.jruby? do
context "when on JRuby", if: BSON::Environment.jruby? && RUBY_VERSION < '3.0.0' do

it "deserializes to a Fixnum object" do
expect(described_class.from_bson(bson).class).to be(Fixnum)
Expand All @@ -120,7 +120,7 @@
BSON::ByteBuffer.new(integer.to_bson.to_s)
end

context "when on JRuby", if: BSON::Environment.jruby? do
context "when on JRuby", if: BSON::Environment.jruby? && RUBY_VERSION < '3.0.0' do

it "deserializes to a Fixnum object" do
expect(described_class.from_bson(bson).class).to be(Fixnum)
Expand Down
2 changes: 1 addition & 1 deletion src/main/org/bson_ruby/ByteBuf.java
Original file line number Diff line number Diff line change
Expand Up @@ -564,7 +564,7 @@ public ByteBuf putInt64(ThreadContext context, IRubyObject value) {
value = ((RubyFloat) value).truncate(context);
}
ensureBsonWrite(8);
this.buffer.putLong(((RubyInteger) value).getLongValue());
this.buffer.putLong(RubyNumeric.num2long(value));
this.writePosition += 8;
return this;
}
Expand Down
8 changes: 4 additions & 4 deletions src/main/org/bson_ruby/GeneratorExtension.java
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import org.jruby.Ruby;
import org.jruby.RubyClass;
import org.jruby.RubyInteger;
import org.jruby.RubyNumeric;
import org.jruby.RubyModule;
import org.jruby.RubyString;
import org.jruby.anno.JRubyMethod;
Expand Down Expand Up @@ -102,8 +103,7 @@ public static void extend(final RubyModule bson) {
public static IRubyObject next(final IRubyObject generator) {
RubyModule bson = generator.getRuntime().getModule(BSON);
RubyClass objectId = bson.getClass(OBJECT_ID);
RubyInteger time = (RubyInteger) objectId.callMethod("timestamp");
return nextObjectId(generator, (int) time.getLongValue());
return nextObjectId(generator, (int) RubyNumeric.num2long(objectId.callMethod("timestamp")));
}

/**
Expand All @@ -118,7 +118,7 @@ public static IRubyObject next(final IRubyObject generator) {
*/
@JRubyMethod(name = { "next", "next_object_id" })
public static IRubyObject next(final IRubyObject generator, final IRubyObject time) {
return nextObjectId(generator, (int) ((RubyInteger) time).getLongValue() / 1000);
return nextObjectId(generator, (int) (RubyNumeric.num2long(time) / 1000));
}

/**
Expand All @@ -145,7 +145,7 @@ public static IRubyObject resetCounter(final IRubyObject generator) {
*/
@JRubyMethod(name = { "reset_counter" })
public static IRubyObject resetCounter(final IRubyObject generator, final IRubyObject value) {
counter.set((int) ((RubyInteger) value).getLongValue());
counter.set((int) RubyNumeric.num2long(value));
return generator;
}

Expand Down
2 changes: 1 addition & 1 deletion src/main/org/bson_ruby/NativeService.java
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ public class NativeService implements BasicLibraryService {
* @since 2.0.0
*/
public boolean basicLoad(final Ruby runtime) throws IOException {
RubyModule bson = runtime.fastGetModule(BSON);
RubyModule bson = runtime.getModule(BSON);
GeneratorExtension.extend(bson);

RubyClass byteBuffer = bson.defineClassUnder("ByteBuffer", runtime.getObject(), new ObjectAllocator() {
Expand Down