CONTRIBUTING.txt (modules-5.1.1.tar.bz2) | : | CONTRIBUTING.txt (modules-5.2.0.tar.bz2) | ||
---|---|---|---|---|
skipping to change at line 89 | skipping to change at line 89 | |||
----------------- | ----------------- | |||
Run the basic test suite with: | Run the basic test suite with: | |||
make test | make test | |||
This only runs the tests for the current environment. GitHub Actions | This only runs the tests for the current environment. GitHub Actions | |||
and Cirrus CI will run the full suite when you submit your pull | and Cirrus CI will run the full suite when you submit your pull | |||
request. | request. | |||
There are more than 17 000 test cases thus it generally takes around | ||||
12 minutes to run the full test suite. It can be executed in *quick* | ||||
mode to just run the most essential tests in about 1 minute: | ||||
make test QUICKTEST=y | ||||
The **script/mt** utility is also available to just execute one or | ||||
several testfiles. If a test fails, **script/mt** reports the *diff* | ||||
comparison between expected and actual results. For instance, to only | ||||
execute "testsuite/modules.50-cmds/470-variant.exp" testfile, run: | ||||
script/mt 50/470 | ||||
Run **script/mt** with "--help" option to get usage details and syntax | ||||
to select several testfiles. | ||||
Running test coverage | Running test coverage | |||
--------------------- | --------------------- | |||
Generating a report of lines that do not have test coverage can | Generating a report of lines that do not have test coverage can | |||
indicate where to start contributing or what your tests should cover | indicate where to start contributing or what your tests should cover | |||
for the code changes you submit. | for the code changes you submit. | |||
Run "make test COVERAGE=y" which will automatically setup the Nagelfar | Run "make test COVERAGE=y" which will automatically setup the Nagelfar | |||
Tcl code coverage tool in your "modules" development directory and | Tcl code coverage tool in your "modules" development directory and | |||
instrument the source Tcl scripts. Then the full testsuite will be run | instrument the source Tcl scripts. Then the full testsuite will be run | |||
in coverage mode and an annotated script will be produced for each Tcl | in coverage mode and an annotated script will be produced for each Tcl | |||
script in "tcl" source directory ("tcl/*.tcl_m"): | script in "tcl" source directory ("tcl/*.tcl_m"): | |||
make test COVERAGE=y | make test COVERAGE=y | |||
# then open tcl/*.tcl_m files and look for ';# Not covered' lines | # then open tcl/*.tcl_m files and look for ';# Not covered' lines | |||
The **script/mt** utility may also be used to run the test suite in | ||||
coverage mode on full testsuite or on a few testfiles: | ||||
script/mt cov 70/{280,290} | ||||
Running linter tests | ||||
-------------------- | ||||
Linter tools check code syntax and report issues and good practices to | ||||
follow. Modules uses Nagelfar to check syntax of Tcl scripts and | ||||
ShellCheck to lint sh, bash and ksh scripts. | ||||
Run "make testlint" to lint all sh, bash, ksh and Tcl scripts in your | ||||
local Modules repository. | ||||
The **script/mt** utility may also be used to run the full *lint* test | ||||
suite or just specific testfiles. For instance to only lint Tcl | ||||
scripts: | ||||
script/mt lint 00/030 | ||||
Check performances | ||||
------------------ | ||||
The **script/mb** utility checks from your local repository the | ||||
performances of major releases of Modules and current branch. Current | ||||
ongoing modifications are first stashed, then **modulecmd.tcl** of the | ||||
releases and current branch are built. Different tests are run against | ||||
each version and the execution time of each test is reported in | ||||
millisecond: | ||||
$ script/mb | ||||
| v4.1.4 | v4.3.1 | v4.5.3 | v4.7.1 | v5.1.1 | main | | ||||
----------+----------+----------+----------+----------+----------+----------+ | ||||
help | 9 | 12 | 12 | 15 | 16 | 16 | | ||||
avail | 61 | 67 | 76 | 82 | 91 | 86 | | ||||
avail2 | 11 | 16 | 19 | 21 | 23 | 23 | | ||||
avail3 | - | - | - | 120 | 128 | 130 | | ||||
whatis | 208 | 155 | 233 | 216 | 221 | 224 | | ||||
whatis2 | 10 | 15 | 17 | 20 | 21 | 22 | | ||||
whatis3 | - | - | - | 287 | 307 | 314 | | ||||
apropos | 208 | 153 | 222 | 210 | 220 | 223 | | ||||
load | 66 | 87 | 134 | 162 | 120 | 126 | | ||||
list | 24 | 23 | 33 | 22 | 25 | 25 | | ||||
unload | 46 | 24 | 25 | 29 | 31 | 31 | | ||||
It helps to verify that current work committed in local repository | ||||
does not impact performances on simple test scenarios. Run | ||||
**script/mb** with "--help" option to get its usage details. | ||||
The "profile" mode may also be interesting to learn what are the | ||||
internal procedures of **modulecmd.tcl** taking most of the execution | ||||
time for each test: | ||||
script/mb profile | ||||
Building the docs | Building the docs | |||
----------------- | ----------------- | |||
Build the docs in the "doc" directory using Sphinx: | Build the docs in the "doc" directory using Sphinx: | |||
cd doc | cd doc | |||
make html | make html | |||
Open "_build/html/index.html" in your browser to view the docs. | Open "_build/html/index.html" in your browser to view the docs. | |||
End of changes. 2 change blocks. | ||||
0 lines changed or deleted | 72 lines changed or added |