Skip to content

Commit 7910031

Browse files
updating documentation for CTest
1 parent e8c4548 commit 7910031

File tree

4 files changed

+318
-41
lines changed

4 files changed

+318
-41
lines changed

README.md

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,11 @@ To compile ALP, you need the following tools:
6262
2. LibNUMA development headers
6363
3. POSIX threads development headers
6464
4. [CMake](https://cmake.org/download/) version 3.13 or higher, with GNU Make
65-
(CMake's default build tool on UNIX systems) or any other supported build tool.
65+
(CMake's default build tool on UNIX systems) or any other supported build
66+
tool
67+
5. [Python3](https://www.python.org/) for the testing and (optionally) coverage
68+
infrastructure; if your distribution does not provide it, you may download
69+
[pre-built binaries](https://github.com/indygreg/python-build-standalone/releases)
6670

6771
## Linking and run-time
6872
The ALP libraries link against the following libraries:
@@ -100,7 +104,8 @@ For generating the code documentations:
100104

101105
## Code coverage
102106

103-
For code/test coverage, a native implementation is available using the CMake infrastructure, using `gcovr` and `gcov`/`lcov`.
107+
For code/test coverage, a native implementation is available using the CMake
108+
infrastructure, using `gcovr` and `gcov`/`lcov`.
104109

105110

106111
# Very quick start
@@ -230,6 +235,8 @@ and lists technical papers.
230235
- [Development in ALP](#development-in-alp)
231236
- [Acknowledgements](#acknowledgements)
232237
- [Citing ALP, ALP/GraphBLAS, and ALP/Pregel](#citing-alp-alpgraphblas-and-alppregel)
238+
- [ALP and ALP/GraphBLAS](#alp-and-alpgraphblas)
239+
- [ALP/Pregel](#alppregel)
233240

234241

235242
# Configuration

docs/Build_and_test_infra.md

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ limitations under the License.
2222
- [Direct Generation via `cmake`](#direct-generation-via-cmake)
2323
- [CMake Build Options, Types and Flags](#cmake-build-options-types-and-flags)
2424
- [Naming conventions for targets](#naming-conventions-for-targets)
25-
- [Adding a new test](#adding-a-new-test)
25+
- [Adding a new test executable](#adding-a-new-test-executable)
2626
- [Adding a new backend](#adding-a-new-backend)
2727
- [1. Add the related project options](#1-add-the-related-project-options)
2828
- [2. Add the backend-specific variables](#2-add-the-backend-specific-variables)
@@ -154,7 +154,7 @@ As from above, a convenient way to start even for a custom build is from the
154154
the building command and start from there with the custom options.
155155
For example:
156156

157-
```cmake
157+
```bash
158158
mkdir build_release
159159
cd build_release
160160
cmake -DCMAKE_INSTALL_PREFIX=/path/to/install/dir -DCMAKE_BUILD_TYPE=Release \
@@ -339,7 +339,7 @@ Other targets:
339339
standard tools are available, they are compiled into a PDF found at
340340
`<ALP/GraphBLAS root>/docs/code/latex/refman.pdf`.
341341

342-
## Adding a new test
342+
## Adding a new test executable
343343

344344
Test sources are split in categories, whose purpose is explained in the [Testing
345345
Infrastructure](#the-testing-infrastructure) section.
@@ -371,7 +371,8 @@ the test source files (at least one is required)
371371
* `BACKENDS reference reference_omp bsp1d hybrid` is the list of all backends
372372
the test should be compiled against (at least one is required); for each
373373
backend, an executable target is created following the naming conventions in
374-
[Naming conventions for targets](#naming-conventions-for-targets)
374+
[Naming conventions for targets](#naming-conventions-for-targets); also `none`
375+
is possible as backend name, meaning no backend is actually linked
375376
* `ADDITIONAL_LINK_LIBRARIES test_utils` (optional) lists additional libraries
376377
to link (the backend library is linked by default)
377378
* `COMPILE_DEFINITIONS MY_TEST_KEY=VALUE ANOTHER_TEST_DEFINITION` (optional)
@@ -396,14 +397,6 @@ Each script is sub-divided in several sections depending on the backend that is
396397
assumed to run and on relevant options: hence, you should place your test
397398
invocation in the relevant section.
398399

399-
Furthermore, you can achieve more control over the test target generation, i.e.,
400-
the building of tests, by using the function `add_grb_tests_with_category`, also
401-
defined in [cmake/AddGRBTests.cmake](../cmake/AddGRBTests.cmake), which requires
402-
to specify dependencies manually (thus, building against multiple backends needs
403-
correspondingly multiple calls of the same function) and is therefore used only
404-
in special cases.
405-
406-
407400
## Adding a new backend
408401

409402
Adding a new backend requires multiple changes to the building infrastructure,
@@ -515,7 +508,7 @@ by default when compiling executables, for example
515508
4. the variable `ALL_BACKENDS` lists all possible backends (even if not enabled)
516509
to detect potential configuration errors: therefore, you should always add the
517510
new backend to this variable; on the contrary, the variable `AVAILABLE_BACKENDS`
518-
lists only the backends actually available in the building infrastructure,
511+
lists only the backends actually available in the building infrastructure,
519512
depending on the user's inputs; you may add your backend with something like
520513

521514
```cmake
@@ -525,8 +518,8 @@ depending on the user's inputs; you may add your backend with something like
525518
```
526519

527520
5. the variable `AVAILABLE_TEST_BACKENDS` lists all backends that were enabled
528-
and for which tests are built; usually it is a subset of `AVAILABLE_BACKENDS`,
529-
which also contains backends pulled in as dependencies of user-chosen backends;
521+
and for which tests are built; usually it is a subset of `AVAILABLE_BACKENDS`,
522+
which also contains backends pulled in as dependencies of user-chosen backends;
530523
for example, if the user enables only the hyperdags backend, the reference
531524
backend is also listed in `AVAILABLE_BACKENDS`, while `AVAILABLE_TEST_BACKENDS`
532525
lists only hyperdags.
@@ -876,7 +869,8 @@ The coverage infrastructure prescribes additional dependencies:
876869
-- though the first method is preferable as it provides a more up-to-date
877870
version) and clearly requires
878871
* [Python3](https://www.python.org/), available in most Linux distributions
879-
(e.g., `apt-get install python3`) or as [pre-built binary](https://github.com/indygreg/python-build-standalone/releases)
872+
(e.g., `apt-get install python3`) or as
873+
[pre-built binary](https://github.com/indygreg/python-build-standalone/releases)
880874
for many OSs and architectures
881875
(e.g., https://github.com/indygreg/python-build-standalone/releases/download/20230116/cpython-3.11.1+20230116-x86_64_v4-unknown-linux-gnu-install_only.tar.gz)
882876

docs/README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ limitations under the License.
2222

2323
* the [Development Guidelines](Development.md) to read about ALP/GraphBLAS'
2424
development philosophy and work with its codebase
25+
* the [directory structure of the project](Directory_structure.md)
2526
* the
2627
[guide to the Building and Testing Infrastructure](Build_and_test_infra.md)
2728
* the
@@ -30,4 +31,4 @@ development philosophy and work with its codebase
3031
infrastructure (`make docs`) and available in the subdirectory `code`
3132
* the
3233
[guide to use ALP/GraphBLAS in your own project](Use_ALPGraphBLAS_in_your_own_project.md)
33-
* the [directory structure of the project](Directory_structure.md)
34+
* technical details for the [Nonblocking backend](Nonblocking_backend.md).

0 commit comments

Comments
 (0)