diff options
author | Chuck Atkins <chuck.atkins@kitware.com> | 2019-03-07 20:39:07 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2019-03-18 15:47:35 (GMT) |
commit | dfea916d3c1e09d7a008a27029540b5ec77adb5d (patch) | |
tree | 451e15536a2676a4ac3859d0c65b4f7b71093bde /Tests/FindEnvModules | |
parent | e58e38f2fbd31fd1527c19c2a33151a6c23ff22f (diff) | |
download | CMake-dfea916d3c1e09d7a008a27029540b5ec77adb5d.zip CMake-dfea916d3c1e09d7a008a27029540b5ec77adb5d.tar.gz CMake-dfea916d3c1e09d7a008a27029540b5ec77adb5d.tar.bz2 |
FindEnvModules: Provide a CMake interface to environment modules
Diffstat (limited to 'Tests/FindEnvModules')
-rw-r--r-- | Tests/FindEnvModules/CMakeLists.txt | 3 | ||||
-rw-r--r-- | Tests/FindEnvModules/EnvModules.cmake | 35 |
2 files changed, 38 insertions, 0 deletions
diff --git a/Tests/FindEnvModules/CMakeLists.txt b/Tests/FindEnvModules/CMakeLists.txt new file mode 100644 index 0000000..95b7d1d --- /dev/null +++ b/Tests/FindEnvModules/CMakeLists.txt @@ -0,0 +1,3 @@ +add_test(FindEnvModules.Test ${CMAKE_CMAKE_COMMAND} + -P ${CMAKE_CURRENT_LIST_DIR}/EnvModules.cmake +) diff --git a/Tests/FindEnvModules/EnvModules.cmake b/Tests/FindEnvModules/EnvModules.cmake new file mode 100644 index 0000000..0c81bf2 --- /dev/null +++ b/Tests/FindEnvModules/EnvModules.cmake @@ -0,0 +1,35 @@ +find_package(EnvModules REQUIRED) +message("module purge") +env_module(COMMAND purge RESULT_VARIABLE ret_var) +if(NOT ret_var EQUAL 0) + message(FATAL_ERROR "module(purge) returned ${ret_var}") +endif() + +message("module avail") +env_module_avail(avail_mods) +foreach(mod IN LISTS avail_mods) + message(" ${mod}") +endforeach() + +if(avail_mods) + list(GET avail_mods 0 mod0) + message("module load ${mod0}") + env_module(load ${mod0}) + + message("module list") + env_module_list(loaded_mods) + foreach(mod IN LISTS loaded_mods) + message(" ${mod}") + endforeach() + + list(LENGTH loaded_mods num_loaded_mods) + message("Number of modules loaded: ${num_loaded_mods}") + if(NOT num_loaded_mods EQUAL 1) + message(FATAL_ERROR "Exactly 1 module should be loaded. Found ${num_loaded_mods}") + endif() + + list(GET loaded_mods 0 mod0_actual) + if(NOT (mod0_actual MATCHES "^${mod0}")) + message(FATAL_ERROR "Loaded module does not match ${mod0}. Actual: ${mod0_actual}") + endif() +endif() |