diff --git a/pkgs/build-support/testers/hasCmakeConfigModules/tests.nix b/pkgs/build-support/testers/hasCmakeConfigModules/tests.nix new file mode 100644 index 000000000000..d691916db82f --- /dev/null +++ b/pkgs/build-support/testers/hasCmakeConfigModules/tests.nix @@ -0,0 +1,73 @@ +# cd nixpkgs +# nix-build -A tests.testers.hasCmakeConfigModules +{ + lib, + testers, + boost, + mpi, + eigen, + runCommand, +}: + +lib.recurseIntoAttrs { + + boost-versions-match = testers.hasCmakeConfigModules { + package = boost; + moduleNames = [ + "Boost" + "boost_math" + ]; + versionCheck = true; + }; + + boost-versions-mismatch = testers.testBuildFailure ( + testers.hasCmakeConfigModules { + package = boost; + moduleNames = [ + "Boost" + "boost_math" + ]; + version = "1.2.3"; # Deliberately-incorrect version number + versionCheck = true; + } + ); + + boost-no-versionCheck = testers.hasCmakeConfigModules { + package = boost; + moduleNames = [ + "Boost" + "boost_math" + ]; + version = "1.2.3"; # Deliberately-incorrect version number + versionCheck = false; + }; + + boost-has-boost_mpi = testers.hasCmakeConfigModules { + package = boost.override { useMpi = true; }; + moduleNames = [ + "boost_mpi" + ]; + buildInputs = [ mpi ]; + }; + + boost_mpi-does-not-have-mpi = testers.testBuildFailure ( + testers.hasCmakeConfigModules { + package = boost.override { useMpi = true; }; + moduleNames = [ + "boost_mpi" + ]; + } + ); + + eigen-has-Eigen = testers.hasCmakeConfigModules { + package = eigen; + moduleNames = [ "Eigen3" ]; + }; + + eigen-does-not-have-eigen = testers.testBuildFailure ( + testers.hasCmakeConfigModules { + package = eigen; + moduleNames = [ "eigen3" ]; + } + ); +} diff --git a/pkgs/build-support/testers/test/default.nix b/pkgs/build-support/testers/test/default.nix index fbcf6c0cad7d..ec54b7044c28 100644 --- a/pkgs/build-support/testers/test/default.nix +++ b/pkgs/build-support/testers/test/default.nix @@ -37,6 +37,8 @@ lib.recurseIntoAttrs { hasPkgConfigModules = pkgs.callPackage ../hasPkgConfigModules/tests.nix { }; + hasCmakeConfigModules = pkgs.callPackage ../hasCmakeConfigModules/tests.nix { }; + shellcheck = pkgs.callPackage ../shellcheck/tests.nix { }; shfmt = pkgs.callPackages ../shfmt/tests.nix { };