Platform Qualification¶
Introduction¶
A MicroEJ Platform integrates one or more Foundation Libraries with their respective Abstraction Layers.
Platform Qualification is the process of validating the conformance of the Abstraction Layer that implements the Low Level APIs of a Foundation Library.

Platform Qualification Overwiew¶
For each Low Level API, an Abstraction Layer implementation is required. The validation of the Abstraction Layer implementation is performed by running tests at two-levels:
- In C, by calling Low Level APIs (usually manually).
- In Java, by calling Foundation Library APIs (usually automatically using Platform Test Suite).
The following figure depicts an example for the FS Pack:

Platform Qualification Example for FS Pack¶
MicroEJ provides a set of tools and pre-defined projects aimed at simplifying the steps for validating Platforms in the form of the Platform Qualification Tools (PQT).
Platform Qualification Tools Overview¶
The Platform Qualification Tools provide the following components:
- Platform Configuration Additions (PCA):
- Used to:
- Manage MicroEJ Architecture, MicroEJ Packs and the Platform build with the MicroEJ Module Manager.
- Configure the BSP connection to call the build and run scripts.
- Added when creating a Platform (see Platform Creation or check the tutorial Create a MicroEJ Firmware From Scratch).
- Used to:
- Build and Run Scripts examples:
- Used to generate and deploy a MicroEJ Firmware on a device by invoking a third-party toolchain for the BSP.
- Added when integrating the BSP to the Platform (see Build Script File and Run Script File or check the tutorial Create MicroEJ Platform Build and Run Scripts).
- C and Java Test Suites:
- Used to validate the Low Level APIs implementations.
- Validated during the BSP development and whenever an Abstraction Layer implementation is added or changed (see Platform Test Suite or check the tutorial Run a Test Suite on a Device).
Please refer to the Platform Qualification Tools README for more details and the location of the components.
Platform Test Suite¶
The purpose of a MicroEJ Platform Test Suite is to validate the Abstraction Layer that implements the Low Level APIs of a Foundation Libraries by automatically running Java tests on the device.
The MicroEJ Test Suite Engine is used for building, running a Test Suite, and providing a report.
A Platform Test Suite contains one or more tests. For each test, the Test Suite Engine will:
- Build a MicroEJ Firmware for the test.
- Program the MicroEJ Firmware onto the device.
- Retrieve the execution traces.
- Analyze the traces to determine whether the test has
PASSED
orFAILED
. - Append the result to the Test Report.
- Repeat until all tests of the Test Suite have been executed.

Platform Test Suite on Device Overview¶
Test Suite Versioning¶
Foundation Libraries are integrated in a MicroEJ Platform by MicroEJ Packs (see Pack Import). Use the Test Suite version compliant with the API version provided by the Foundation Library to validate the Abstraction Layer implementation. For example, the Test Suite FS module 3.0.3 should be used to validate the Abstraction Layer implementation of the Low Level API FS provided by the FS Pack 5.1.2.
Note
A MicroEJ Pack can provide several Foundation Libraries.
Core Engine¶
Architecture | Test Suite |
7.0.0 or higher | Core Engine Test Suite |
UI Pack¶
UI Pack | C Test Suite |
13.0.0 or higher (UI3) | Graphical User Interface Test Suite |
[6.0.0-12.1.5] (UI2) | Graphical User Interface Test Suite |
FS Pack¶
FS Pack | FS API | Java Test Suite |
[6.0.0-6.1.0[ | 2.1.1 | 3.0.8 |
[5.1.2-5.2.0[ | 2.0.6 | 3.0.3 |
[4.0.0-4.1.0[ | 2.0.6 | On demand [1] |
BLUETOOTH Pack¶
BLUETOOTH Pack | BLUETOOTH API | Java Test Suite |
2.1.0 | 2.1.0 | 2.0.0 |
2.0.1 | 2.0.0 | 2.0.0 |
NET Pack¶
NET Pack | NET API | SSL API | SECURITY API | NET Java Test Suite | SSL Java Test Suite | SECURITY Java Test Suite |
[8.1.2-8.2.0] | 1.1.0 | 2.1.0 | N/A | 3.4.0 (On demand [1]) | 3.0.1 (On demand [1]) | N/A |
9.0.0 | 1.1.0 | 2.2.0 | 1.3.1 | 3.4.0 (On demand [1]) | 3.1.4 (On demand [1]) | 1.1.0 (On demand [1]) |
[9.0.1-9.4.1] | 1.1.1 | 2.2.0 | 1.3.1 | 3.5.2 (On demand [1]) | 3.1.4 (On demand [1]) | 1.1.0 (On demand [1]) |
[10.0.0-10.5.0] | 1.1.4 | 2.2.3 | 1.4.2 | 4.1.1 | 4.0.1 | 1.3.1 |
[1] | (1, 2, 3, 4, 5, 6, 7, 8, 9) Test Suite available on demand, please contact MicroEJ Support. |