diff options
Diffstat (limited to 'lldb')
| -rw-r--r-- | lldb/include/lldb/Interpreter/OptionValueFileSpec.h | 9 | ||||
| -rw-r--r-- | lldb/source/Interpreter/OptionValueFileSpec.cpp | 19 | ||||
| -rw-r--r-- | lldb/source/Interpreter/Property.cpp | 5 | ||||
| -rw-r--r-- | lldb/test/settings/TestSettings.py | 9 |
4 files changed, 29 insertions, 13 deletions
diff --git a/lldb/include/lldb/Interpreter/OptionValueFileSpec.h b/lldb/include/lldb/Interpreter/OptionValueFileSpec.h index 7e74b605660..9d2da68927e 100644 --- a/lldb/include/lldb/Interpreter/OptionValueFileSpec.h +++ b/lldb/include/lldb/Interpreter/OptionValueFileSpec.h @@ -22,12 +22,14 @@ namespace lldb_private { class OptionValueFileSpec : public OptionValue { public: - OptionValueFileSpec (); + OptionValueFileSpec (bool resolve = true); - OptionValueFileSpec (const FileSpec &value); + OptionValueFileSpec (const FileSpec &value, + bool resolve = true); OptionValueFileSpec (const FileSpec ¤t_value, - const FileSpec &default_value); + const FileSpec &default_value, + bool resolve = true); virtual ~OptionValueFileSpec() @@ -122,6 +124,7 @@ protected: FileSpec m_default_value; lldb::DataBufferSP m_data_sp; uint32_t m_completion_mask; + bool m_resolve; }; } // namespace lldb_private diff --git a/lldb/source/Interpreter/OptionValueFileSpec.cpp b/lldb/source/Interpreter/OptionValueFileSpec.cpp index 3f466985a83..6538a64627d 100644 --- a/lldb/source/Interpreter/OptionValueFileSpec.cpp +++ b/lldb/source/Interpreter/OptionValueFileSpec.cpp @@ -24,31 +24,36 @@ using namespace lldb; using namespace lldb_private; -OptionValueFileSpec::OptionValueFileSpec () : +OptionValueFileSpec::OptionValueFileSpec (bool resolve) : OptionValue(), m_current_value (), m_default_value (), m_data_sp(), - m_completion_mask (CommandCompletions::eDiskFileCompletion) + m_completion_mask (CommandCompletions::eDiskFileCompletion), + m_resolve (resolve) { } -OptionValueFileSpec::OptionValueFileSpec (const FileSpec &value) : +OptionValueFileSpec::OptionValueFileSpec (const FileSpec &value, + bool resolve) : OptionValue(), m_current_value (value), m_default_value (value), m_data_sp(), - m_completion_mask (CommandCompletions::eDiskFileCompletion) + m_completion_mask (CommandCompletions::eDiskFileCompletion), + m_resolve (resolve) { } OptionValueFileSpec::OptionValueFileSpec (const FileSpec ¤t_value, - const FileSpec &default_value) : + const FileSpec &default_value, + bool resolve) : OptionValue(), m_current_value (current_value), m_default_value (default_value), m_data_sp(), - m_completion_mask (CommandCompletions::eDiskFileCompletion) + m_completion_mask (CommandCompletions::eDiskFileCompletion), + m_resolve (resolve) { } @@ -99,7 +104,7 @@ OptionValueFileSpec::SetValueFromCString (const char *value_cstr, filepath.erase (suffix_chars_to_trim + 1); m_value_was_set = true; - m_current_value.SetFile(filepath.c_str(), true); + m_current_value.SetFile(filepath.c_str(), m_resolve); m_data_sp.reset(); NotifyValueChanged(); } diff --git a/lldb/source/Interpreter/Property.cpp b/lldb/source/Interpreter/Property.cpp index 5679ef8dd3b..ebc18bccbdf 100644 --- a/lldb/source/Interpreter/Property.cpp +++ b/lldb/source/Interpreter/Property.cpp @@ -94,10 +94,13 @@ Property::Property (const PropertyDefinition &definition) : break; case OptionValue::eTypeFileSpec: + { // "definition.default_uint_value" represents if the "definition.default_cstr_value" should // be resolved or not - m_value_sp.reset (new OptionValueFileSpec(FileSpec(definition.default_cstr_value, definition.default_uint_value != 0))); + const bool resolve = definition.default_uint_value != 0; + m_value_sp.reset (new OptionValueFileSpec(FileSpec(definition.default_cstr_value, resolve), resolve)); break; + } case OptionValue::eTypeFileSpecList: // "definition.default_uint_value" is not used for a OptionValue::eTypeFileSpecList diff --git a/lldb/test/settings/TestSettings.py b/lldb/test/settings/TestSettings.py index 2cb57dac7af..5043fa80d31 100644 --- a/lldb/test/settings/TestSettings.py +++ b/lldb/test/settings/TestSettings.py @@ -290,14 +290,19 @@ class SettingsCommandTestCase(TestBase): self.expect("settings show target.error-path", SETTING_MSG("target.error-path"), - substrs = ['target.error-path (file) = ', 'stderr.txt"']) + substrs = ['target.error-path (file) = "stderr.txt"']) self.expect("settings show target.output-path", SETTING_MSG("target.output-path"), - substrs = ['target.output-path (file) = ', 'stdout.txt"']) + substrs = ['target.output-path (file) = "stdout.txt"']) self.runCmd("run", RUN_SUCCEEDED) + if lldb.remote_platform: + self.runCmd('platform get-file "stderr.txt" "stderr.txt"') + self.runCmd('platform get-file "stdout.txt" "stdout.txt"') + + # The 'stderr.txt' file should now exist. self.assertTrue(os.path.isfile("stderr.txt"), "'stderr.txt' exists due to target.error-path.") |

