<commit_before># Iceoryx Integrationtests

## Introduction
To ensure quality standards in iceoryx, we are using automated testing to ensure ISO26262 on unittest and integrationtest level in the respective components.
Additionally we need to make sure that the customer-facing API is functional and software integration specifications are fulfilled.
Test focus is here on SWE.5 according to ASPICE.

For that purpose we bring in tests which simulate customer behavior to have automatic testing of (Mis)Use-cases.
As testing framework we use the [launch_testing](https://github.com/ros2/launch/tree/master/launch_testing) framework from ROS 2.
The tests are stored in a ROS 2 CMake package where the test executables are build and launched/tested by python scripts.
In these scripts the testing is currently done by evaluating the stdout output of the processes and the exit codes.

advantages:
- automatic test if processes have exited unexpectedly
- test against custom or error return codes to evaluate error-cases
- test the order of printed messages

limitations:
- testing against stdout is error prone
- limited functionality for performance testing because the stdout is buffered (messages could be reordered)

## Setup
For building and executing the tests you need to have ROS2 installed. Please follow the instructions on https://index.ros.org/doc/ros2/Installation.
The system tests are currently tested on ROS 2 "Foxy Fitzroy" in Ubuntu 20.04 LTS.

Please remove beforehand the `COLCON_IGNORE` files from `iceoryx_integrationtest` and `iceoryx_examples`.

For a basic setup you need to install the following packages:
```bash
sudo apt install ros-foxy-ros-base ros-foxy-ros-testing ros-foxy-launch-testing ros-foxy-ament-cmake python3-colcon-common-cpptensions
```
For the future versions you can use the corresponding ROS2 release.

After installing you need to source ROS 2 to make the environment available in your terminal:
```bash
source /opt/ros/foxy/setup.bash
```

**_NOTE:_** You can add the source command to your `~/.bashrc` for automatic loading the ROS2 workspace at boot time.

Required for the colcon build of iceoryx is that the repository is located within a ROS workspace like this:
```
iceoryx_workspace
└── src
    └── iceoryx<commit_msg>iox-#482 Revert change in integration test readme<commit_after># Iceoryx Integrationtests

## Introduction
To ensure quality standards in iceoryx, we are using automated testing to ensure ISO26262 on unittest and integrationtest level in the respective components.
Additionally we need to make sure that the customer-facing API is functional and software integration specifications are fulfilled.
Test focus is here on SWE.5 according to ASPICE.

For that purpose we bring in tests which simulate customer behavior to have automatic testing of (Mis)Use-cases.
As testing framework we use the [launch_testing](https://github.com/ros2/launch/tree/master/launch_testing) framework from ROS 2.
The tests are stored in a ROS 2 CMake package where the test executables are build and launched/tested by python scripts.
In these scripts the testing is currently done by evaluating the stdout output of the processes and the exit codes.

advantages:
- automatic test if processes have exited unexpectedly
- test against custom or error return codes to evaluate error-cases
- test the order of printed messages

limitations:
- testing against stdout is error prone
- limited functionality for performance testing because the stdout is buffered (messages could be reordered)

## Setup
For building and executing the tests you need to have ROS2 installed. Please follow the instructions on https://index.ros.org/doc/ros2/Installation.
The system tests are currently tested on ROS 2 "Foxy Fitzroy" in Ubuntu 20.04 LTS.

Please remove beforehand the `COLCON_IGNORE` files from `iceoryx_integrationtest` and `iceoryx_examples`.

For a basic setup you need to install the following packages:
```bash
sudo apt install ros-foxy-ros-base ros-foxy-ros-testing ros-foxy-launch-testing ros-foxy-ament-cmake python3-colcon-common-extensions
```
For the future versions you can use the corresponding ROS2 release.

After installing you need to source ROS 2 to make the environment available in your terminal:
```bash
source /opt/ros/foxy/setup.bash
```

**_NOTE:_** You can add the source command to your `~/.bashrc` for automatic loading the ROS2 workspace at boot time.

Required for the colcon build of iceoryx is that the repository is located within a ROS workspace like this:
```
iceoryx_workspace
└── src
    └── iceoryx
{'fraction_non_alphanumeric': 0.05381754539488077, 'fraction_numerical': 0.00940713191861737, 'mean_word_length': 4.816793893129771, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 4, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5374945', 'n_tokens_mistral': 1251, 'n_tokens_neox': 1138, 'n_words': 615}