[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
This commit is contained in:
Jun Aruga 2024-02-08 18:53:32 +01:00 committed by git
parent 171791426b
commit eb4082284a

View File

@ -13,13 +13,13 @@ class OpenSSL::TestProvider < OpenSSL::TestCase
def test_openssl_provider_names
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
@ -34,7 +34,12 @@ class OpenSSL::TestProvider < OpenSSL::TestCase
def test_openssl_legacy_provider
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)