You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
rubygem-aruba/rubygem-aruba-2.0.0-ensure-...

75 lines
2.8 KiB

From 01f468c61eecc83d931cb56434394770557c60c7 Mon Sep 17 00:00:00 2001
From: Matijs van Zuijlen <matijs@matijs.net>
Date: Sun, 16 Jan 2022 11:29:55 +0100
Subject: [PATCH] Ensure Gem.win_platform? is available
Even though rubygems is nearly always loaded by ruby automatically, it
is possible to avoid doing so. Therefore, to make platform detection
work, we have to require "rubygems" explicitly.
---
lib/aruba/platforms/unix_platform.rb | 1 +
spec/aruba/platforms/unix_platform_spec.rb | 18 ++++++++++++++++++
spec/aruba/platforms/windows_platform_spec.rb | 18 ++++++++++++++++++
3 files changed, 37 insertions(+)
create mode 100644 spec/aruba/platforms/unix_platform_spec.rb
create mode 100644 spec/aruba/platforms/windows_platform_spec.rb
diff --git a/lib/aruba/platforms/unix_platform.rb b/lib/aruba/platforms/unix_platform.rb
index 2831bbb26..51f653ff9 100644
--- a/lib/aruba/platforms/unix_platform.rb
+++ b/lib/aruba/platforms/unix_platform.rb
@@ -1,4 +1,5 @@
require "rbconfig"
+require "rubygems"
require "pathname"
require "aruba/aruba_path"
diff --git a/spec/aruba/platforms/unix_platform_spec.rb b/spec/aruba/platforms/unix_platform_spec.rb
new file mode 100644
index 000000000..75718f726
--- /dev/null
+++ b/spec/aruba/platforms/unix_platform_spec.rb
@@ -0,0 +1,18 @@
+require "spec_helper"
+require "aruba/platforms/unix_platform"
+
+RSpec.describe Aruba::Platforms::UnixPlatform do
+ include_context "uses aruba API"
+
+ describe ".match?" do
+ it "works even when ruby is launched with --disable-gems and --disable-rubyopt" do
+ aruba_lib = File.expand_path("../../../lib", __dir__)
+ run_command_and_stop(
+ "ruby --disable-rubyopt --disable-gems -I#{aruba_lib}" \
+ " -e 'require \"aruba/platforms/unix_platform\";" \
+ " Aruba::Platforms::UnixPlatform.match?;'"
+ )
+ expect(last_command_started).to be_successfully_executed
+ end
+ end
+end
diff --git a/spec/aruba/platforms/windows_platform_spec.rb b/spec/aruba/platforms/windows_platform_spec.rb
new file mode 100644
index 000000000..5ae02e8ab
--- /dev/null
+++ b/spec/aruba/platforms/windows_platform_spec.rb
@@ -0,0 +1,18 @@
+require "spec_helper"
+require "aruba/platforms/windows_platform"
+
+RSpec.describe Aruba::Platforms::WindowsPlatform do
+ include_context "uses aruba API"
+
+ describe ".match?" do
+ it "works even when ruby is launched with --disable-gems and --disable-rubyopt" do
+ aruba_lib = File.expand_path("../../../lib", __dir__)
+ run_command_and_stop(
+ "ruby --disable-rubyopt --disable-gems -I#{aruba_lib}" \
+ " -e 'require \"aruba/platforms/windows_platform\";" \
+ " Aruba::Platforms::WindowsPlatform.match?;'"
+ )
+ expect(last_command_started).to be_successfully_executed
+ end
+ end
+end