[ 
https://issues.apache.org/jira/browse/PROTON-1640?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew Stitcher resolved PROTON-1640.
-------------------------------------
       Resolution: Fixed
         Assignee: Andrew Stitcher  (was: Alan Conway)
    Fix Version/s: proton-c-0.22.0

This turned out to be an issue with 32 bit ruby rather than the raspberry pi 
per se.

The handling of the decimal32 type (this is a floating point type using 32 bits 
like float32 but with a decimal exponent) was assuming the FIXNUM type which on 
32 bit systems is 31 bits and doesn't have enough space to represent all 
values. It also wasn't checking the types before conversion.

> ruby-data-spec test fails on Raspbian Stretch
> ---------------------------------------------
>
>                 Key: PROTON-1640
>                 URL: https://issues.apache.org/jira/browse/PROTON-1640
>             Project: Qpid Proton
>          Issue Type: Bug
>          Components: ruby-binding
>    Affects Versions: proton-c-0.18.0
>         Environment: Raspberry Pi 3
> Raspbian Stretch
>            Reporter: Andrew Stitcher
>            Assignee: Andrew Stitcher
>            Priority: Major
>             Fix For: proton-c-0.22.0
>
>
> Building/Testing 0.18 RC1:
> The only problem is this failure in the ruby tests:
> {noformat}
>     Start 19: ruby-data-spec                                                  
>         
> 19: Test command: /usr/bin/ruby 
> "/home/andrew/Source/qpid-proton/qpid-proton-0.18.0 
> proton-c/bindings/ruby/spec/data_spec.rb" "-v"                                
>      
> 19: Environment variables:                                                  
> 19:  
> PATH=/home/andrew/.cargo/bin:/home/andrew/.local/bin:/home/andrew/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games:/home/andrew/Source/qpid-proton/qpid-proton-0.18.0/BLD/proton-c/bindings/ruby:/home/andrew/Source/qpid-proton/qpid-proton-0.18.0/BLD/proton-c
>                                                                        
> 19:  
> RUBYLIB=:/home/andrew/Source/qpid-proton/qpid-proton-0.18.0/proton-c/bindings/ruby/lib:/home/andrew/Source/qpid-proton/qpid-proton-0.18.0/proton-c/bindings/ruby/tests:/home/andrew/Source/qpid-proton/qpid-proton-0.18.0/proton-c/bindings/ruby/spec:/home/andrew/Source/qpid-proton/qpid-proton-0.18.0/BLD/proton-c/bindings/ruby:/home/andrew/Source/qpid-proton/qpid-proton-0.18.0/BLD/proton-c
> 19: Test timeout computed to be: 1500                          
> 19: Run options: -v --seed 49451                                 
> 19:                                                                        
> 19: # Running:                                                 
> 19:                                                                
> 19: A data object#test_0028_raises an error on a negative ulong = 0.00 s = .
> 19: A data object#test_0031_raises an error on a null long = 0.00 s = .
> 19: A data object#test_0053_can hold a zero decimal128 = 0.00 s = .   
> 19: A data object#test_0003_can hold a true boolean = 0.00 s = .
> 19: A data object#test_0056_raises an error on a malformed UUID = 0.00 s = .
> 19: A data object#test_0010_raises an error on a negative ushort = 0.00 s = .
> 19: A data object#test_0047_can hold a zero decimal32 = 0.00 s = .
> 19: A data object#test_0052_raises an error on a null decimal128 = 0.00 s = .
> 19: A data object#test_0065_can hold a described value = 0.00 s = . 
> 19: A data object#test_0012_can hold a zero unsigned short = 0.00 s = .
> 19: A data object#test_0021_can hold a zero unsigned integer = 0.00 s = .
> 19: A data object#test_0035_can handle a negative timestamp = 0.00 s = .
> 19: A data object#test_0040_can hold a zero float = 0.00 s = .
> 19: A data object#test_0042_raise an error on a null double = 0.00 s = .
> 19: A data object#test_0069_can hold a list = 0.04 s = .
> 19: A data object#test_0037_can hold a timestamp = 0.00 s = .
> 19: A data object#test_0050_can hold a zero decimal64 = 0.00 s = .
> 19: A data object#test_0070_can hold a map = 0.09 s = .
> 19: A data object#test_0032_can have a zero long = 0.00 s = .
> 19: A data object#test_0007_can hold an unsigned byte = 0.00 s = .
> 19: A data object#test_0018_raises an error on a nil uint = 0.00 s = .
> 19: A data object#test_0067_can hold an array = 0.00 s = .
> 19: A data object#test_0054_can hold a decimal128 = 0.00 s = .
> 19: A data object#test_0026_can hold a character = 0.00 s = .
> 19: A data object#test_0017_can hold a negative short = 0.00 s = .
> 19: A data object#test_0036_can handle a zero timestamp = 0.00 s = .
> 19: A data object#test_0059_can hold a null binary = 0.00 s = .
> 19: A data object#test_0068_can hold a described array = 0.03 s = .
> 19: A data object#test_0015_can hold a short = 0.00 s = .
> 19: A data object#test_0048_can hold a decimal32 = 0.00 s = F
> 19: A data object#test_0011_raises an error on a nil ushort = 0.00 s = .
> 19: A data object#test_0063_can hold a null symbol = 0.00 s = .
> 19: A data object#test_0020_can hold an unsigned integer = 0.00 s = .
> 19: A data object#test_0004_can hold a false boolean = 0.00 s = .
> 19: A data object#test_0014_raises an error on a nil short = 0.00 s = .
> 19: A data object#test_0058_can hold a UUID = 0.00 s = .
> 19: A data object#test_0045_can hold a double = 0.00 s = .                 
> 19: A data object#test_0013_can hold an unsigned short = 0.00 s = .         
> 19: A data object#test_0005_raises an error on a negative ubyte = 0.00 s = .
> 19: A data object#test_0055_raises an error on a null UUID = 0.00 s = .     
> 19: A data object#test_0046_raises an error on a null decimal32 = 0.00 s = F
> 19: A data object#test_0019_raises an error on a negative uint = 0.00 s = . 
> 19: A data object#test_0025_raises an error on a null character = 0.00 s = .
> 19: A data object#test_0051_can hold a decimal64 = 0.00 s = .           
> 19: A data object#test_0006_raises an error on a null ubyte = 0.00 s = .   
> 19: A data object#test_0062_can hold a string = 0.00 s = .                  
> 19: A data object#test_0022_raise an error on a null integer = 0.00 s = .     
>                     
> 19: A data object#test_0044_can hold a zero double = 0.00 s = .
> 19: A data object#test_0009_can hold a negative byte = 0.00 s = .             
>                     
> 19: A data object#test_0034_raise an error on a null timestamp = 0.00 s = .
> 19: A data object#test_0061_can hold a null string = 0.00 s = .         
> 19: A data object#test_0008_can hold a byte = 0.00 s = .                      
>                     
> 19: A data object#test_0043_can hold a negative double = 0.00 s = . 
> 19: A data object#test_0016_can hold a zero short = 0.00 s = .          
> 19: A data object#test_0060_can hold a binary = 0.00 s = .                    
>                     
> 19: A data object#test_0023_can hold an integer = 0.00 s = .
> 19: A data object#test_0033_can hold a long = 0.00 s = .                     
> 19: A data object#test_0049_raises an error on a null decimal64 = 0.00 s = .
> 19: A data object#test_0064_can hold a symbol = 0.00 s = .           
> 19: A data object#test_0001_can be initialized = 0.00 s = .
> 19: A data object#test_0024_can hold zero as an integer = 0.00 s = .          
>                       
> 19: A data object#test_0038_raises an error on a null float = 0.00 s = .      
>                       
> 19: A data object#test_0027_raises an error on a null ulong = 0.00 s = .      
>                       
> 19: A data object#test_0066_raises an error when setting the wrong type in an 
> array = 0.00 s = S    
> 19: A data object#test_0029_can have a zero unsigned long = 0.00 s = .        
>                       
> 19: A data object#test_0041_can hold a float = 0.00 s = .                     
>                       
> 19: A data object#test_0002_can hold a null = 0.00 s = .                      
>                       
> 19: A data object#test_0030_can hold an unsigned long = 0.00 s = .
> 19: A data object#test_0057_can set a UUID from an integer value = 0.00 s = .
> 19: A data object#test_0039_can hold a negative float = 0.00 s = .
> 19:
> 19: Finished in 0.192801s, 363.0682 runs/s, 2520.7307 assertions/s.
> 19:
> 19:   1) Failure:
> 19: A data object#test_0048_can hold a decimal32 
> [/home/andrew/Source/qpid-proton/qpid-proton-0.18.0/proton-c/bindings/ruby/spec/data_spec.rb:305]:
> 19: Expected: 2061765577
> 19:   Actual: 7233396
> 19:
> 19:
> 19:   2) Failure:
> 19: A data object#test_0046_raises an error on a null decimal32 
> [/home/andrew/Source/qpid-proton/qpid-proton-0.18.0/proton-c/bindings/ruby/spec/data_spec.rb:294]:
> 19: TypeError expected but nothing was raised.
> 19:
> 19:
> 19:   3) Skipped:
> 19: A data object#test_0066_raises an error when setting the wrong type in an 
> array [/usr/lib/ruby/vendor_ruby/minitest/spec.rb:213]:
> 19: (no tests defined)
> 19:
> 19: 70 runs, 486 assertions, 2 failures, 0 errors, 1 skips
> 1/1 Test #19: ruby-data-spec ...................***Failed    0.89 sec
> 0% tests passed, 1 tests failed out of 1
> {noformat}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org

Reply via email to