@@ -345,29 +345,37 @@ def test_get_flags_and_set_flags
345345 assert_equal ( 4 , e . get_flags ( OpenSSL ::BN ::CONSTTIME ) )
346346 end
347347
348- if respond_to? ( :ractor )
348+ if defined? ( Ractor ) && respond_to? ( :ractor )
349+ unless Ractor . method_defined? ( :value ) # Ruby 3.4 or earlier
350+ using Module . new {
351+ refine Ractor do
352+ alias value take
353+ end
354+ }
355+ end
356+
349357 ractor
350358 def test_ractor
351- assert_equal ( @e1 , Ractor . new { OpenSSL ::BN . new ( "999" ) } . take )
352- assert_equal ( @e3 , Ractor . new { OpenSSL ::BN . new ( "\a \xFF \xFF \xFF \xFF \xFF \xFF \xFF \xFF \xFF \xFF \xFF \xFF \xFF " , 2 ) } . take )
353- assert_equal ( "999" , Ractor . new ( @e1 ) { |e1 | e1 . to_s } . take )
354- assert_equal ( "07FFFFFFFFFFFFFFFFFFFFFFFFFF" , Ractor . new ( @e3 ) { |e3 | e3 . to_s ( 16 ) } . take )
355- assert_equal ( 2 **107 -1 , Ractor . new ( @e3 ) { _1 . to_i } . take )
356- assert_equal ( [ 1000 , -999 ] , Ractor . new ( @e2 ) { _1 . coerce ( 1000 ) } . take )
357- assert_equal ( false , Ractor . new { 1 . to_bn . zero? } . take )
358- assert_equal ( true , Ractor . new { 1 . to_bn . one? } . take )
359- assert_equal ( true , Ractor . new ( @e2 ) { _1 . negative? } . take )
360- assert_equal ( "-03E7" , Ractor . new ( @e2 ) { _1 . to_s ( 16 ) } . take )
361- assert_equal ( 2 **107 -1 , Ractor . new ( @e3 ) { _1 . to_i } . take )
362- assert_equal ( [ 1000 , -999 ] , Ractor . new ( @e2 ) { _1 . coerce ( 1000 ) } . take )
363- assert_equal ( true , Ractor . new { 0 . to_bn . zero? } . take )
364- assert_equal ( true , Ractor . new { 1 . to_bn . one? } . take )
365- assert_equal ( false , Ractor . new { 2 . to_bn . odd? } . take )
366- assert_equal ( true , Ractor . new ( @e2 ) { _1 . negative? } . take )
367- assert_include ( 128 ..255 , Ractor . new { OpenSSL ::BN . rand ( 8 ) } . take )
368- assert_include ( 0 ...2 **32 , Ractor . new { OpenSSL ::BN . generate_prime ( 32 ) } . take )
359+ assert_equal ( @e1 , Ractor . new { OpenSSL ::BN . new ( "999" ) } . value )
360+ assert_equal ( @e3 , Ractor . new { OpenSSL ::BN . new ( "\a \xFF \xFF \xFF \xFF \xFF \xFF \xFF \xFF \xFF \xFF \xFF \xFF \xFF " , 2 ) } . value )
361+ assert_equal ( "999" , Ractor . new ( @e1 ) { |e1 | e1 . to_s } . value )
362+ assert_equal ( "07FFFFFFFFFFFFFFFFFFFFFFFFFF" , Ractor . new ( @e3 ) { |e3 | e3 . to_s ( 16 ) } . value )
363+ assert_equal ( 2 **107 -1 , Ractor . new ( @e3 ) { _1 . to_i } . value )
364+ assert_equal ( [ 1000 , -999 ] , Ractor . new ( @e2 ) { _1 . coerce ( 1000 ) } . value )
365+ assert_equal ( false , Ractor . new { 1 . to_bn . zero? } . value )
366+ assert_equal ( true , Ractor . new { 1 . to_bn . one? } . value )
367+ assert_equal ( true , Ractor . new ( @e2 ) { _1 . negative? } . value )
368+ assert_equal ( "-03E7" , Ractor . new ( @e2 ) { _1 . to_s ( 16 ) } . value )
369+ assert_equal ( 2 **107 -1 , Ractor . new ( @e3 ) { _1 . to_i } . value )
370+ assert_equal ( [ 1000 , -999 ] , Ractor . new ( @e2 ) { _1 . coerce ( 1000 ) } . value )
371+ assert_equal ( true , Ractor . new { 0 . to_bn . zero? } . value )
372+ assert_equal ( true , Ractor . new { 1 . to_bn . one? } . value )
373+ assert_equal ( false , Ractor . new { 2 . to_bn . odd? } . value )
374+ assert_equal ( true , Ractor . new ( @e2 ) { _1 . negative? } . value )
375+ assert_include ( 128 ..255 , Ractor . new { OpenSSL ::BN . rand ( 8 ) } . value )
376+ assert_include ( 0 ...2 **32 , Ractor . new { OpenSSL ::BN . generate_prime ( 32 ) } . value )
369377 if !aws_lc? # AWS-LC does not support BN::CONSTTIME.
370- assert_equal ( 0 , Ractor . new { OpenSSL ::BN . new ( 999 ) . get_flags ( OpenSSL ::BN ::CONSTTIME ) } . take )
378+ assert_equal ( 0 , Ractor . new { OpenSSL ::BN . new ( 999 ) . get_flags ( OpenSSL ::BN ::CONSTTIME ) } . value )
371379 end
372380 # test if shareable when frozen
373381 assert Ractor . shareable? ( @e1 . freeze )
0 commit comments