Fix the .experimental. settings feature so that we don't return an error
authorJason Molenda <jmolenda@apple.com>
Tue, 1 May 2018 22:49:01 +0000 (22:49 +0000)
committerJason Molenda <jmolenda@apple.com>
Tue, 1 May 2018 22:49:01 +0000 (22:49 +0000)
commitb81afd6598fbd50e0bc09c6825db5f3fd3b3c9da
treed1af88a51c59508f8a6e9dad9fe7432388a56123
parente2dfe8a8539bd457f517eaa3bb859c0f9ff21b31
Fix the .experimental. settings feature so that we don't return an error
if an experimental setting has been removed/is missing.

Add tests for the .experimental. settings behaviors -- that they correctly
forward through to the real setting if it has become a real setting,
that they don't generate errors when a settig has been removed.

As Pavel notes in https://reviews.llvm.org/D45348, the way I'm suppressing
errors in the setting is not completely correct - if any of the setting
path components include "experimental", a missing setting would be declared
a non-error.  So

settings set target.experimental.setting-that-does-not-exist true

would not generate an error, which is correct.  But as Pavel notes,

settings set setting-does-not-exist.experimental.run-stopped true

should generate an error because the unknown name occurs before the
"experimental".  The amount of change to do this correctly hasn't
thrilled me, so I'm leaving this as-is for now.

<rdar://problem/39223054>
Differential Revision: https://reviews.llvm.org/D45348

llvm-svn: 331315
lldb/packages/Python/lldbsuite/test/settings/TestSettings.py
lldb/source/Interpreter/OptionValueProperties.cpp