ruby/ruby-3.4.0-openssl-make-a-legacy-provider-test-optional.patch
Jun Aruga 7e3369a9b4 Fix test_provider.rb test_openssl_provider_names.
This commit fixes the following test failure of the
test_openssl_provider_names in the test/openssl/test_provider.rb.

```
159) Failure:
OpenSSL::TestProvider#test_openssl_provider_names [/builddir/build/BUILD/ruby-3.3.8/test/openssl/test_provider.rb:65]:
<2> expected but was
<3>.
```

Because the test_openssl_provider_names assumes the total number of the providers
calculating the number of the providers as a default status (1), adding the legacy
provider (1) is 2 at the following line.
https://github.com/ruby/ruby/blob/v3_3_8/test/openssl/test_provider.rb#L18

However, it is not the case on the current c10s. Because the number of the
providers as a default status is not 1 but 2 according the following result on
c10s mock environment. Therefore the total number of the providers adding the
one provider should be 3.

```
<mock-chroot> sh-5.2# rpm -q openssl openssl-libs oqsprovider
openssl-3.2.2-16.el10.x86_64
openssl-libs-3.2.2-16.el10.x86_64
oqsprovider-0.8.0-5.el10.x86_64

<mock-chroot> sh-5.2# openssl list -providers
Providers:
  default
    name: OpenSSL Default Provider
    version: 3.2.2
    status: active
  oqsprovider
    name: OpenSSL OQS Provider
    version: 0.8.0
    status: active
```

The patch files fixes the test_openssl_provider_names, considering this case.

Related: RHEL-87342
2025-04-25 14:11:07 +02:00

59 lines
2.3 KiB
Diff

From 02c40367d918d3bc42098e1fcfe0c822319f4d37 Mon Sep 17 00:00:00 2001
From: Jun Aruga <jaruga@redhat.com>
Date: Thu, 8 Feb 2024 18:53:32 +0100
Subject: [PATCH] [ruby/openssl] test_provider.rb: Make a legacy provider test
optional.
In some cases such as OpenSSL package in FreeBSD[1], the legacy provider is not
installed intentionally. So, we omit a test depending the legacy provider if the
legacy provider is not loadable.
For the test_openssl_provider_names test, we use base provider[2] instead of
legacy provider, because we would expect the base provider is always loadable
in OpenSSL 3 for now.
* [1] https://www.freshports.org/security/openssl/
* [2] https://wiki.openssl.org/index.php/OpenSSL_3.0#Providers
https://github.com/ruby/openssl/commit/7223da7730
---
test/openssl/test_provider.rb | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/test/openssl/test_provider.rb b/test/openssl/test_provider.rb
index 7361a0e250..4e050b4bc2 100644
--- a/test/openssl/test_provider.rb
+++ b/test/openssl/test_provider.rb
@@ -14,13 +14,13 @@ def test_openssl_provider_name_inspect
def test_openssl_provider_names
omit 'not working on freebsd RubyCI' if ENV['RUBYCI_NICKNAME'] =~ /freebsd/
with_openssl <<-'end;'
- legacy_provider = OpenSSL::Provider.load("legacy")
+ base_provider = OpenSSL::Provider.load("base")
assert_equal(2, OpenSSL::Provider.provider_names.size)
- assert_includes(OpenSSL::Provider.provider_names, "legacy")
+ assert_includes(OpenSSL::Provider.provider_names, "base")
- assert_equal(true, legacy_provider.unload)
+ assert_equal(true, base_provider.unload)
assert_equal(1, OpenSSL::Provider.provider_names.size)
- assert_not_includes(OpenSSL::Provider.provider_names, "legacy")
+ assert_not_includes(OpenSSL::Provider.provider_names, "base")
end;
end
@@ -36,7 +36,12 @@ def test_unloaded_openssl_provider
def test_openssl_legacy_provider
omit 'not working on freebsd RubyCI' if ENV['RUBYCI_NICKNAME'] =~ /freebsd/
with_openssl(<<-'end;')
- OpenSSL::Provider.load("legacy")
+ begin
+ OpenSSL::Provider.load("legacy")
+ rescue OpenSSL::Provider::ProviderError
+ omit "Only for OpenSSL with legacy provider"
+ end
+
algo = "RC4"
data = "a" * 1000
key = OpenSSL::Random.random_bytes(16)