Skip to content

Commit b54a50f

Browse files
committed
[lldb/Reproducers] Extract function for reading environment override (NFC)
Create a helper function for reading reproducer overrides from environment variables.
1 parent 45d7080 commit b54a50f

File tree

1 file changed

+15
-6
lines changed

1 file changed

+15
-6
lines changed

lldb/source/Utility/Reproducer.cpp

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,15 @@ using namespace lldb_private::repro;
1818
using namespace llvm;
1919
using namespace llvm::yaml;
2020

21+
static llvm::Optional<bool> GetEnv(const char *var) {
22+
std::string val = llvm::StringRef(getenv(var)).lower();
23+
if (val == "0" || val == "off")
24+
return false;
25+
if (val == "1" || val == "on")
26+
return true;
27+
return {};
28+
}
29+
2130
Reproducer &Reproducer::Instance() { return *InstanceImpl(); }
2231

2332
llvm::Error Reproducer::Initialize(ReproducerMode mode,
@@ -27,12 +36,12 @@ llvm::Error Reproducer::Initialize(ReproducerMode mode,
2736

2837
// The environment can override the capture mode.
2938
if (mode != ReproducerMode::Replay) {
30-
std::string env =
31-
llvm::StringRef(getenv("LLDB_CAPTURE_REPRODUCER")).lower();
32-
if (env == "0" || env == "off")
33-
mode = ReproducerMode::Off;
34-
else if (env == "1" || env == "on")
35-
mode = ReproducerMode::Capture;
39+
if (llvm::Optional<bool> override = GetEnv("LLDB_CAPTURE_REPRODUCER")) {
40+
if (*override)
41+
mode = ReproducerMode::Capture;
42+
else
43+
mode = ReproducerMode::Off;
44+
}
3645
}
3746

3847
switch (mode) {

0 commit comments

Comments
 (0)