search.noResults

search.searching

saml.title
dataCollection.invalidEmail
note.createNoteMessage

search.noResults

search.searching

orderForm.title

orderForm.productCode
orderForm.description
orderForm.quantity
orderForm.itemPrice
orderForm.price
orderForm.totalPrice
orderForm.deliveryDetails.billingAddress
orderForm.deliveryDetails.deliveryAddress
orderForm.noItems
Feature: Embedded design


implementation can render it highly efficient, inefficient or even defective.


SuperTest Applying SuperTest allows you to detect errors in the implementation of library functions early on, again facilitated by the huge variety of test cases. Te SuperTest size recording and test-run comparison features are extremely helpful in detecting code size inefficiencies. Selected test cases can be carried out whilst concurrently recording statistical information about the code size. Te collected data is then used in a subsequent comparison pass, where results are compared with previous test runs or a reference. When evaluating results, the compilation


EW-DEC21-Alpha 3_Layout 1 13/01/2022 14:33 Page 1


pass data may look fine but could show some fails in the test-case execution pass. Tere are many reasons for this, some obvious, some far-reaching. One reason could be numerical precision when comparing floating-point values for test-case verification (which at least


is not a compiler bug but a matter of correct definitions with regard to the target architecture). Another reason could be implementation-defined behaviour beyond language standards, which could include variables allocation order, alignment and initialisation (structures and bit-fields), and more. SuperTest also contains test cases that


pinpoint deficits not related to the current target. For example, GCC’s aggregate structure initialisation is not compliant with the C standard for partially-overwritten fields. Even if it is not possible to upgrade to a fixed compiler version, it is important to know and document such errors.


The Melexis project For the Melexis project, the results for all 36,000 test executions took ABIX a full day. Te overall cycle time depends largely on the number of host platforms on which the tests will be executed, the compilers and utilities used, as well as the method of run-time testing.


SuperTest has several options to parallelise and speed up execution, but sadly each has bottlenecks. A critical component then is the tool used to perform the run-time tests. For example, many simulators cannot run multi- instance, which forces the test execution to run in series. Although test cases in SuperTest are slim and streamlined, performance of the simulation and/or runtime execution tool adds significantly to overall processing time. One way to improve such bottlenecks is to distribute the test cycle to multiple real or virtual machines.


The bigger picture All the scenarios discussed here might appear like individual considerations, but actually reflect ABIX’s experience gathered during challenging GCC compiler upgrades and improvements. A project like this requires two primary ingredients: experts knowing their trade and a comprehensive, industrial- strength test suite that includes knowledge about why, how and where compilers might swerve from the racing line.


www.electronicsworld.co.uk February 2022 21


Page 1  |  Page 2  |  Page 3  |  Page 4  |  Page 5  |  Page 6  |  Page 7  |  Page 8  |  Page 9  |  Page 10  |  Page 11  |  Page 12  |  Page 13  |  Page 14  |  Page 15  |  Page 16  |  Page 17  |  Page 18  |  Page 19  |  Page 20  |  Page 21  |  Page 22  |  Page 23  |  Page 24  |  Page 25  |  Page 26  |  Page 27  |  Page 28  |  Page 29  |  Page 30  |  Page 31  |  Page 32  |  Page 33  |  Page 34  |  Page 35  |  Page 36  |  Page 37  |  Page 38  |  Page 39  |  Page 40  |  Page 41  |  Page 42  |  Page 43  |  Page 44  |  Page 45  |  Page 46