RFR: JDK-8055209 - create initial set of SPI tests

Stas Smirnov stanislav.smirnov at oracle.com
Fri Aug 15 17:13:35 UTC 2014


Please take a look on updated 
<http://cr.openjdk.java.net/%7Estsmirno/8055209f/> SPI tests using 
try-with-resources
Existing GPIO tests have been already modified, will send it as a 
separate review after SPI and UART which I submitted recently

15.08.2014 21:02, Stas Smirnov пишет:
> I took a look on existing gpio tests, they are ok, however after 
> submitting required tests for spi and uart I think I will modify them 
> a bit to start using try-with-resources style, I assume it will be 
> better.
> So thank you one more time for catching it.
>
> 15.08.2014 20:52, Stas Smirnov пишет:
>> Hi Alexey,
>>
>> thanks for reviewing.
>> Originally I was using finally block to close instances, but while 
>> moving lines seems to lost it so thank you for catching it.
>> Use of try-with-resources might work here, I will take a look on SPI 
>> tests, only them cause existing gpio tests are not affected by this.
>>
>> 15.08.2014 20:37, Alexey Konstantinov пишет:
>>> Hi Stas,
>>>
>>> More findings, sorry.
>>>
>>> SPIWriteAndReadTest.testWriteAndRead() does not close the devices it 
>>> opens. I think it should.
>>>
>>> This also caused me to think that many tests probably need some 
>>> global redesigning. Consider this test:
>>>
>>>   85     private Status testWordLength() {
>>>   86         Status result = Status.passed("OK");
>>>   87         start("Checking current word length");
>>>   88
>>>   89         SPIDevice spiDevice;
>>>   90
>>>   91         Iterator<SPIConfig> devices = SPIDevices.iterator();
>>>   92         while(devices.hasNext()){
>>>   93             SPIConfig spiConfig = devices.next();
>>>   94             try {
>>>   95                 spiDevice = spiConfig.open();
>>>   96                 System.out.println("Word length for this Slave: 
>>> " + spiDevice.getWordLength());
>>>   97                 spiDevice.close();
>>>   98             } catch (IOException e) {
>>>   99                 result = printFailedStatus("Unexpected 
>>> IOException: " + e.getClass().getName() + ":" + e.getMessage());
>>>  100             }
>>>  101         }
>>>  102
>>>  103         stop();
>>>  104
>>>  105         return result;
>>>  106     }
>>>
>>> If spiDevice.getWordLength() generates an exception, the device is 
>>> left forever open and the next tests wanting to deal with it will 
>>> all fail with unexpected IOEs until you reboot. Maybe 
>>> try-with-resources would help?
>>>
>>> Thanks,
>>> Alexey
>>>
>>> On 8/15/2014 8:20 PM, Stas Smirnov wrote:
>>>> Hm, sorry, but the link is incorrect, here is the one 
>>>> <http://cr.openjdk.java.net/%7Estsmirno/8055209e/>
>>>>
>>>> 15.08.2014 19:57, Stas Smirnov пишет:
>>>>> Updated webrev <http://cr.openjdk.java.net/%7Estsmirno/8055209d/> 
>>>>> is now available
>>>>>
>>>>> 15.08.2014 19:38, Stas Smirnov пишет:
>>>>>> Alexey, thanks for catching this, my eyes were closed when I put 
>>>>>> it there:)
>>>>>>
>>>>>> right thing will be
>>>>>>                 String srcStr = new String(src.array());
>>>>>>
>>>>>>                 System.out.println("Write SPI: data = " + srcStr);
>>>>>>                 spiDevice.writeAndRead(src, dst);
>>>>>>                 spiDevice.end();
>>>>>>
>>>>>>                 String dstStr = new String(dst.array());
>>>>>>                 System.out.println("Read SPI: " + dstStr);
>>>>>>
>>>>>>                 if(!srcStr.equals(dstStr)){
>>>>>>                     result = printFailedStatus("Data does not 
>>>>>> match");
>>>>>>                 }
>>>>>>
>>>>>> 15.08.2014 19:14, Alexey Konstantinov пишет:
>>>>>>> Hi Stas,
>>>>>>>
>>>>>>> Could you double check the test logic of 
>>>>>>> SPIWriteAndReadTest.testWriteAndRead()? I'd suppose that the 
>>>>>>> final check srcStr.equals(dstStr)) will always fail, because it 
>>>>>>> does not seem to me that there are any reasons for dstStr to get 
>>>>>>> updated as result of writing something to the dst buffer.
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Alexey
>>>>>>>
>>>>>>> On 8/15/2014 6:54 PM, Stas Smirnov wrote:
>>>>>>>> Please use this, correct link to the webrev 
>>>>>>>> <http://cr.openjdk.java.net/%7Estsmirno/8055209c/>
>>>>>>>>
>>>>>>>> 15.08.2014 18:03, Stas Smirnov пишет:
>>>>>>>>> issue: JDK-8055209 
>>>>>>>>> <https://bugs.openjdk.java.net/browse/JDK-8055209>
>>>>>>>>> webrev: 8055137 <http://cr.openjdk.java.net/%7Estsmirno/8055209/>
>>>>>>>>>
>>>>>>>>> Hi All,
>>>>>>>>>
>>>>>>>>> Need a review for an update.
>>>>>>>>> In this update I have added 4 tests classes, to verify config, 
>>>>>>>>> to verify permissions, word length and write/read operation 
>>>>>>>>> and fixed a typo in the testbase class.
>>>>>>>>>
>>>>>>>>> -- 
>>>>>>>>>
>>>>>>>>> Best regards,
>>>>>>>>> Stas Smirnov
>>>>>>>>>
>>>>>>>>> Stas Smirnov | Java Embedded
>>>>>>>>> Phone: +7 812 3346130 | Mobile: +7 921 9262241
>>>>>>>>> Oracle Development SPB, LLC
>>>>>>>>> 10th Krasnoarmeyskaya 22A, St. Petersburg, 190103, Russia
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>
>>
>
>


-- 

Best regards,
Stas Smirnov

Stas Smirnov | Java Embedded
Phone: +7 812 3346130 | Mobile: +7 921 9262241
Oracle Development SPB, LLC
10th Krasnoarmeyskaya 22A, St. Petersburg, 190103, Russia



More information about the dio-dev mailing list