diff options
author | Bas van Dijk <v.dijk.bas@gmail.com> | 2019-07-30T09·29+0200 |
---|---|---|
committer | Bas van Dijk <v.dijk.bas@gmail.com> | 2019-07-30T09·29+0200 |
commit | ee1e3132cab9d7de14837f2b04b115e544ae1622 (patch) | |
tree | c96c194eed8746d93b939c3953185391976c8c9c /src | |
parent | 41a52466854ab3a7d4adedc3777c0b0585ef79fe (diff) |
Disable findRuntimeRoots on darwin when running tests because lsof is slow
See: https://github.com/NixOS/nix/issues/3011
Diffstat (limited to 'src')
-rw-r--r-- | src/libstore/gc.cc | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/src/libstore/gc.cc b/src/libstore/gc.cc index 26e2b0dca7ca..83cdf13a6a64 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 |