Vely logo Empower C
install     tutorials     examples     documentation     license     about

11.0.11 released on Jul 25, 2022

Quality control


Quality control

Each candidate for a Vely release must build successfully for a given Linux distribution and on its native architecture, without simulators or cross-compilers. A suite of functional tests (including bug fixes to prevent regressions) must run without errors; currently, there are 611 such tests. (see quality_control).

Vely is tested on following distros: archlinux_rolling, debian_10, debian_11, fedora_35, fedora_36, mageia_8, opensuse_15, redhat_8, redhat_9, ubuntu_18, ubuntu_20, ubuntu_22 however it may work on other distros derived from this list (see installation page). Both builds and tests are automated to prevent gaps in coverage.

Vely documentation is automated to a good degree, with internal/external link checking, HTML/troff make and reference/index building.

Test Vely

If you are building Vely from source, or wanting to get a degree of certainty about Vely functioning properly, you can run Vely tests. These are feature and regression tests located in func_test directory within Vely source code.

To get source code for functional tests:
tar xvf $(vv -o)/func_test/func_test.tar.gz
cd func_test

To run tests, you must have installed the web servers and databases used (Apache, Nginx, MariaDB, PostgreSQL, SQLite), lsof, as well as Docker (Ubuntu only). You must export the following environment variables for your system:
#MariaDB root database password, specify empty string for passwordless
export DBROOTPWD="..."

#Apache configuration file location, given here is a typical Debian location
export VV_APACHE_CONFIG="/etc/apache2/apache2.conf"

#Apache service name, given hee is a typical Debian name
export VV_APACHE_SERVICE="apache2"

#Nginx configuration directory
export VV_NGINX_CONFIG_DIR="/etc/nginx"

#Profile with valgrind (must be installed), 1 (profile), anything else (do not profile)
export VV_VALGRIND=""

#Include detailed valgrind leak info, 1 (include), anything else (do not include)

#Include verbose valgrind info, 1 (include), anything else (do not include)

#Architecture (use "aarch64" for an ARM 64-bit processor)
export VV_ARCH="x86_64"

After that you may run tests with:
./ctest 0

The output generally shows the tests completed, with "VELERROR" message prior to completion of a test if there was an issue.

Note that your testing environment should have Internet connection and be preferrably a clean-slate Operating System installation that is easily recyclible, such as a disposable cloned VM.  

If you are using VV_VALGRIND* variables, valgrind must be installed. Generally, valgrind run should be manually inspected as actual issues are sometimes not easy to recognize from false positives or other acceptable items.

VV_ARCH specifies the architecture (currently x86_64 or aarch64). While Vely runs the same on all architectures, some third party software may not, and this environment variable is generally used to control those aspects of testing.


General ( quality_control   vely_removal   rename_files   vely   why_Vely   vf   vv   how_vely_works   vely_architecture   vely_SELinux   deploying_application  )  SEE ALL (documentation)

Copyright (c) 2022 DaSoftver LLC. Vely is a trademark of Dasoftver LLC. The software and information herein are provided "AS IS" and without any warranties or guarantees of any kind. This web page is licensed under CC-BY-SA-4.0.