aboutsummaryrefslogtreecommitdiffstats
path: root/test/openssl
diff options
context:
space:
mode:
authorKazuki Yamaguchi <k@rhe.jp>2016-05-18 11:28:26 +0900
committerKazuki Yamaguchi <k@rhe.jp>2016-05-18 11:36:21 +0900
commit31b5557d68680142463cc19b93fe543b98ae3691 (patch)
tree6bd71600225b75269edd614ef0bad44d765c7ed9 /test/openssl
parentf6ffe07159254e925d3f89f8460ceda62000b6e2 (diff)
downloadruby-31b5557d68680142463cc19b93fe543b98ae3691.tar.gz
openssl: fix equality test methods of OpenSSL::BN
* ext/openssl/ossl_bn.c (try_convert_to_bnptr): Extracted from GetBNPtr(). This doesn't raise exception but returns NULL on error. (GetBNPtr): Raise TypeError if conversion fails. (ossl_bn_eq): Implement BN#==. (ossl_bn_eql): #eql? should not raise TypeError even if the argument is not compatible with BN. (ossl_bn_hash): Implement BN#hash. * ext/openssl/ossl_bn.c (Init_ossl_bn): Define #== and #hash. * test/openssl/test_bn.rb: Test BN#eql?, #== and #hash
Diffstat (limited to 'test/openssl')
-rw-r--r--test/openssl/test_bn.rb16
1 files changed, 12 insertions, 4 deletions
diff --git a/test/openssl/test_bn.rb b/test/openssl/test_bn.rb
index 848d1feb43..415bd74c79 100644
--- a/test/openssl/test_bn.rb
+++ b/test/openssl/test_bn.rb
@@ -43,10 +43,18 @@ class OpenSSL::TestBN < Test::Unit::TestCase
assert_equal(true, OpenSSL::BN.new((2 ** 127 - 1).to_s(16), 16).prime?(1))
end
- def test_cmp_nil
- bn = OpenSSL::BN.new('1')
- assert_equal(false, bn == nil)
- assert_equal(true, bn != nil)
+ def test_cmp
+ bn1 = OpenSSL::BN.new('1')
+ bn2 = OpenSSL::BN.new('1')
+ bn3 = OpenSSL::BN.new('2')
+ assert_equal(false, bn1 == nil)
+ assert_equal(true, bn1 != nil)
+ assert_equal(true, bn1 == bn2)
+ assert_equal(false, bn1 == bn3)
+ assert_equal(true, bn1.eql?(bn2))
+ assert_equal(false, bn1.eql?(bn3))
+ assert_equal(bn1.hash, bn2.hash)
+ assert_not_equal(bn3.hash, bn1.hash)
end
end