aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2019-07-30 11:34:18 +0200
committerGitHub <noreply@github.com>2019-07-30 11:34:18 +0200
commit219d645987a82ee5aebf5a9ab28aa518d0615af0 (patch)
tree6eb3b9adf96b83890c36e80428ba99326f249b1e /src
parent7680357ccc7e7759244528334df81ebb71f9123b (diff)
parentee1e3132cab9d7de14837f2b04b115e544ae1622 (diff)
Merge pull request #3013 from basvandijk/disable-lsof-for-darwin-tests
Disable findRuntimeRoots on darwin when running tests because lsof is slow
Diffstat (limited to 'src')
-rw-r--r--src/libstore/gc.cc25
1 files changed, 15 insertions, 10 deletions
diff --git a/src/libstore/gc.cc b/src/libstore/gc.cc
index 26e2b0dca..83cdf13a6 100644
--- a/src/libstore/gc.cc
+++ b/src/libstore/gc.cc
@@ -444,17 +444,22 @@ void LocalStore::findRuntimeRoots(Roots & roots, bool censor)
}
#if !defined(__linux__)
- try {
- std::regex lsofRegex(R"(^n(/.*)$)");
- auto lsofLines =
- tokenizeString<std::vector<string>>(runProgram(LSOF, true, { "-n", "-w", "-F", "n" }), "\n");
- for (const auto & line : lsofLines) {
- std::smatch match;
- if (std::regex_match(line, match, lsofRegex))
- unchecked[match[1]].emplace("{lsof}");
+ // lsof is really slow on OS X. This actually causes the gc-concurrent.sh test to fail.
+ // See: https://github.com/NixOS/nix/issues/3011
+ // Because of this we disable lsof when running the tests.
+ if (getEnv("_NIX_TEST_NO_LSOF") == "") {
+ try {
+ std::regex lsofRegex(R"(^n(/.*)$)");
+ auto lsofLines =
+ tokenizeString<std::vector<string>>(runProgram(LSOF, true, { "-n", "-w", "-F", "n" }), "\n");
+ for (const auto & line : lsofLines) {
+ std::smatch match;
+ if (std::regex_match(line, match, lsofRegex))
+ unchecked[match[1]].emplace("{lsof}");
+ }
+ } catch (ExecError & e) {
+ /* lsof not installed, lsof failed */
}
- } catch (ExecError & e) {
- /* lsof not installed, lsof failed */
}
#endif