Project restart

This commit is contained in:
2025-12-29 10:46:05 +01:00
commit 59d19cb48c
388 changed files with 48020 additions and 0 deletions

247
README.md Normal file
View File

@@ -0,0 +1,247 @@
# Documentation
[See here](doc/manual/testium_manual.pdf).
# Installation
## Installation from local pypi repository
### Virtualenv
It is strongly recommended to create a python virtual environment to be able to install testium with pip.
This method is also required for git sources install and debug.
#### Virtualenv setup
Creation of the python virtual environment:
python3 -m venv <my_venv_dir>/<my_python_venv>
Each time it is needed to enter the virtual environment, just execute:
source <my_venv_dir>/<my_python_venv>/bin/activate
this line can also be inserted in the `.bashrc` to be automatically called in a linux terminal.
It is possible to configure the *code* IDE to use this virtual environment by setting it
in the preferences: "File->Settings", search "venv", then setup the virtual env.
And when properly set, you can select the interpreter from your newly created venv.
### install testium
From the python virtual environment run:
pip install testium
all the dependencies are automatically installed in the virtual env.
### run testium
From the python virtual environment just run:
python -m testium
or simply
testium
## Installation from sources
The python virtual environment should be installed first (see above).
### Requirements
In the virtual environment, the following modules must be installed:
* pyside6
* pyserial
* pyyaml
* pexpect
* gitpython
* jinja2
* colorama
* matplotlib
* junit-xml
* lxml
A `requirements.txt` file is also available in the git repository in the path `testium/src/`.
### Git repository
Clone testium from the company's git repository.
### Tagged version
In the case testium must be executed at a given release, the tagged version
is expected.
To know the tags which exist for the software, just execute the following command in the `testium` directory:
$ git tag --list
Then the list of tags is displayed.
To switch to the considered tag, execute the following commands:
$ git checkout <tag_name>
If you want to be sure that you're on the right tag, just execute:
$ git status
And the console may return:
HEAD detached at <tag_name>
nothing to commit, working tree clean
$
### Execution from sources
**Windows**
$ python.exe <path_to_testium>\src\testium
**Linux**
$ python <path_to_testium>/src/testium
# Documentation generation
This section describes how to generate the documentation.
The testium's user's manual is genearted with the help of the sphinx
framework.
## Install sphinx
pip install sphinx
## Generate the doc
Execute
doc/manual/sphinx/./build_doc.sh
This command works if texlive package has been installed on the system. It can be done by invoking the following command.
sudo apt install texlive-full
# QT GUI
## QT GUI modification
Open the ".ui" file with `qtcreator` and modify the gui. Then regenerate the python code.
On linux, a helper script has been created:
scripts/./qt_generate.sh
# Debugging
In order to debug testium or your python script executed within testium.
## In VSCODE
This is the prefered method :
1. Create a debug configuration like the following:
```
"configurations": [
{
"name": "Python : testium",
"type": "python",
"request": "launch",
"program": "${workspaceFolder}/src/testium",
"console": "integratedTerminal",
"args": ["-g"],
"justMyCode": true
},
]
```
2. Install debugpy module in python
python -m pip install debugpy
3. Then got to the "RUN AND DEBUG" tab and press the play button.
4. A testium window will pops up ; start execution of your tum.
5. Do not forget to put breakpoints where you want to investigate.
## Icons
Icons are coming from the following site: https://github.com/free-icons/free-icons.git
# testium Release
## Pre-requisite
A `python` virtual environment must have been set as described above.
### Install appimage-builder
Install `appimage-builder` package using pip.
### Install pyinstaller
Install `pyinstaller` package using pip.
## Generate the binary package
The procedure for a binary release is as follows:
1. update the `release_note.txt` file
2. modify the version in `src/VERSION` file
3. be sure that the documentation is up to date, and if not execute `doc/manual/sphinx/build_doc.sh` script
4. push modifications and create a tag with the new version on the git repository
5. generate an appimage by calling `package/appimage/./build.sh`
6. generate an executable file by calling `package/pyinstaller/./build.sh`
7. run the complete validation test for each generated binary
8. check that all the validation results are OK
9. On artifactory add the following files to a new testium version:
* release note
* testium binary(ies)
* testium user's manual
* validation results
# Troubleshooting
## The testium exe crashes `wl_proxy_marshal_flags`
### Error message
/testium: symbol lookup error: /tmp/_MEIOhDCPF/libQt6WaylandClient.so.6: undefined symbol: wl_proxy_marshal_flags
### Solution
Set the appropriate environment variable
export QT_QPA_PLATFORM=xcb
testium
## xcb plugin missing
### Error message
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
### Solution
A package is missing
sudo apt install libxcb-cursor0
sudo apt-get install libicu-dev
sudo apt-get install libxcb-cursor-dev
## The testium appimage crashes when opening a file
This is usually because wayland is defined as the default X server.
To change it :
* Disable Wayland by uncommenting WaylandEnable=false in the `/etc/gdm3/daemon.conf`
* Add `QT_QPA_PLATFORM=xcb` in `/etc/environment`
* After a reboot, check that the environment variable value returns `x11`:
$ echo $XDG_SESSION_TYPE
x11