Monolithic CI | Note |
---|---|
disabled | |
disabled |
Linux (x64) | Windows (x86, x64) | macOS (x64) | Analyzer |
---|---|---|---|
NOTE: Code Coverage is not yet computed
NOTE: unmaintained pipelines, it looks like something changed in azure pipelines, i don't have the interest to fix it at the moment. (replaced with simpler basic GitHub workflows instead, to do the CI build&testing&install, then release the pacakge)
there are 5 pipelines, 1 for each OS and one dedicated to "Analysis", plus 1 for matrix build.
-
The CI pipelines related to each OS are building and generating the artifacts.
Only Linux is not runnig the tests due to missing video driver on CI.
The test results are published in Azure Devops through
ctest -T Test
flag. -
The Analysis pipeline is analyzing the code, generating coverage and publish to codecov and SonarCloud. it also performing a
cpplint
job and publish as artifact the result. -
The Matrix pipeline is an overkill so it is just triggered manually when required. It is reflecting this table:
FLAGS\OS | Windows | Linux | macos |
---|---|---|---|
Debug | ✔️ | ✔️ | ✔️ |
Release | ✔️ | ✔️ | ✔️ |
BUILD_SHARED_LIBS | ✔️ | ✔️ | ✔️ |
✔️ | only | only | |
BUILD_TESTING | ✔️ | ✔️ | ✔️ |
BUILD_EXAMPLES | ✔️ | ✔️ | ✔️ |
BUILD_SNAPSHOT | ✔️ | ✔️ | ✔️ |
TEST_DUMP_SNAPSHOT | ⛔ | ⛔ | ⛔ |
ENABLE_CODE_COVERAGE | 🚫 | 🚫 | ✔️ |
- code coverage available only with LLVM and GCC in
cmake
, on CI working only on macos TEST_DUMP_SNAPSHOT
is "forbidden" to test for the build as an helper flag only.
It is required to install sdl[x11]
along side sdl
package otherwise linking error.
NOTE: it looks like not anymore true using vcpkg.json
It has been disabled as it has been moved to a different triplet x64-windows-static
and just makes it annoying to test for it as it requires to have also a VCPKG_TARGET_TRIPLET to be changed and so it should be used as a different job itself rather than a switch, even though the switch in CMAKE is required to link the proper SDL2::SDL2
or SDL2::SDL2-static
.
At the moment the WITH_SDL2_STATIC
option in CMAKE has been disabled.
It is just a VGA font terminal using SDL2.
the VGA fonts are related to vgabios project.
At the moment support only mode 3.
It should be on 16 colors in the classic way, but can support more thanks to SDL2.
It is just a matter of fonts and a terminal grid for displaying texts.
SDL2
These are the requirements to compile the project from source:
cmake 3.16
C++17
vcpkg
for dependency managementgtest 1.10
for testingSDL_Image
for snapshot testing
SDL2 Video sub-system has to be initialized before using VgaTerminal
class.
There are few examples too in examples
folder.
This screenshot is also used in the snapshot test.
using GTest
framework.
There is a technique, snapshot testing, to verify some expectation, due to some required raster image to compare with,
there is a boolean
option TEST_DUMP_SNAPSHOT
, that will run the test suit for generating the expected result.
It could be a little bit risky, but it is a way to have generated expected results for the test suite.
The test suite take advantages of the option and will be compiled accordingly based on "dumping" or "testing".
please note if you are dumping the snapshot, you have to copy back to the test/snapshot
directory to make them usable.
The filename generated are based on the test that are running, ideally: [Test-suite.Test-name].png
Just as a convention.
This is just a show case and has not to be considered following the semantic versioning of the project, it implies things might change with no objective reason at all.
It might could be detached completely and be its own library using this one.
At the moment is really very basic, error-prone and not well designed neither.
There is an example too among the examples.
This is a TUI screenshot used in the snapshot test too.
- VT-snake retro-gaming style snake in an emulated DOS Text Mode
VT Tetris
(retro-gaming style Tetris in an emulated DOS Text Mode)VT Pong
(retro-gaming style Pong in an emulated DOS Text Mode)