Testing¶
C/C++ Tests¶
meson setup bbdir -Dwith_tests=true -Dwith_rpc=true --buildtype=debug
meson compile -C bbdir
meson test -C bbdir --print-errorlogs
cmake works as well:
cmake -B build \
-DRGPOT_BUILD_TESTS=ON \
-DRGPOT_BUILD_EXAMPLES=ON \
-DRGPOT_WITH_RPC=ON
cmake --build build
ctest --test-dir build --output-on-failure
Rust Tests¶
pixi r rust-test # default features only
pixi r rust-test-all # all features (rpc, cache, gen-header)
Or directly:
cargo nextest run --manifest-path rgpot-core/Cargo.toml
cargo test --doc --manifest-path rgpot-core/Cargo.toml # doc tests
RPC Integration Tests¶
The rpctest environment includes Python bindings via pycapnp:
pixi shell -e rpctest
python tests/rpc_integ.py --server-bin ./bbdir/CppCore/potserv
python tests/rpc_integ.py \
--server-bin ./bbdir/CppCore/potserv \
--nwchem-smoke \
--cpmd-smoke
python tests/test_cpmd_params.py
python tests/test_rpc_integ_cpmd.py
NWChem suite (--suite nwchem)¶
Frontend + stub ABI tests always build with the main library
(with_tests=true).
Energy/grad tests SKIP unless an external libnwchemc is on the library path
(NWCHEMC_LIBRARY, RGPOT_NWCHEMC_ENGINE, or RGPOT_NWCHEM_ENGINE).
The message ABI test uses a fake nwchemc_* shared library and verifies rgpot
passes serialized NWChemParams bytes through the dlopen boundary.
meson setup bbdir -Dwith_tests=true -Dwith_rpc=true
meson compile -C bbdir
meson test -C bbdir --suite nwchem --print-errorlogs
See
CppCore/rgpot/NWChemPot/README.md; the engine (libnwchemc) is built by the split nwchemc
project, not by rgpot.
CPMD suite (--suite cpmd)¶
Frontend + stub ABI tests always build with the main library
(with_tests=true).
The CPMD frontend loads a split libcpmdc engine at runtime via
CPMDC_LIBRARY, RGPOT_CPMDC_ENGINE, or RGPOT_CPMD_ENGINE.
Configure-only Python smokes use PotentialConfig.cpmd and do not require a
live engine.
meson setup bbdir -Dwith_tests=true -Dwith_rpc=true
meson compile -C bbdir
meson test -C bbdir --suite cpmd --print-errorlogs
pixi run -e rpctest python tests/rpc_integ.py --server-bin ./bbdir/CppCore/potserv --cpmd-smoke
See
CppCore/rgpot/CPMDPot/README.md; the engine (libcpmdc) is built by the split cpmdc
project, not by rgpot.