summaryrefslogtreecommitdiffstats
path: root/lldb/lit/Settings
diff options
context:
space:
mode:
authorJonas Devlieghere <jonas@devlieghere.com>2018-10-26 00:00:17 +0000
committerJonas Devlieghere <jonas@devlieghere.com>2018-10-26 00:00:17 +0000
commitb76e25a26d37e99ade8c686bf5d6a48d3d20e46d (patch)
treeafbfdea197e064fe50562a021fb62ec3915ade8a /lldb/lit/Settings
parent24faf859e52b5d06068c3696ca1c89c09ffa2698 (diff)
downloadbcm5719-llvm-b76e25a26d37e99ade8c686bf5d6a48d3d20e46d.tar.gz
bcm5719-llvm-b76e25a26d37e99ade8c686bf5d6a48d3d20e46d.zip
Add functionality to export settings
For the reproducer feature I need to be able to export and import the current LLDB configuration. To realize this I've extended the existing functionality to print settings. With the help of a new formatting option, we can now write the settings and their values to a file structured as regular commands. Concretely the functionality works as follows: (lldb) settings export -f /path/to/file This file contains a bunch of settings set commands, followed by the setting's name and value. ... settings set use-external-editor false settings set use-color true settings set auto-one-line-summaries true settings set auto-indent true ... You can import the settings again by either sourcing the file or using the settings read command. (lldb) settings read -f /path/to/file Differential revision: https://reviews.llvm.org/D52651 llvm-svn: 345346
Diffstat (limited to 'lldb/lit/Settings')
-rw-r--r--lldb/lit/Settings/TestExport.test32
1 files changed, 32 insertions, 0 deletions
diff --git a/lldb/lit/Settings/TestExport.test b/lldb/lit/Settings/TestExport.test
new file mode 100644
index 00000000000..fd1c5040e04
--- /dev/null
+++ b/lldb/lit/Settings/TestExport.test
@@ -0,0 +1,32 @@
+# This tests writing and reading settings from LLDB.
+
+# Check that the settings can be written to file and read again without
+# altering the values.
+# RUN: %lldb -b -o 'settings write -f %t.foo' -o 'settings read -f %t.foo' -o 'settings export %t.bar' -o 'settings read -f %t.bar' 2>&1 | FileCheck %s --check-prefix SUCCESS
+# RUN: diff -w %t.foo %t.bar
+# SUCCESS-NOT: error:
+
+# Check that exporting target settings only export target settings and nothing else.
+# RUN: %lldb -b -o 'settings write -f %t.target target' 2>&1 | FileCheck %s --check-prefix SUCCESS
+# RUN: cat %t.target | FileCheck %s --check-prefix TARGET
+# TARGET: settings set target
+# TARGET-NOT: settings set platform
+# TARGET-NOT: settings set symbols
+# TARGET-NOT: settings set interpreter
+# TARGET-NOT: settings set plugin
+
+# Check that settings appear twice when appending.
+# RUN: %lldb -b -o 'settings write -a -f %t.append target' -o 'settings write -a -f %t.append target' 2>&1 | FileCheck %s --check-prefix SUCCESS
+# RUN: cat %t.append | FileCheck %s --check-prefix APPEND
+# APPEND: settings set target.language
+# APPEND: settings set target.language
+
+# Check that an error is printed for non-existing setting.
+# RUN: echo "settings set bogus" > %t.bogus_setting
+# RUN: %lldb -b -o 'settings read -f %t.bogus_setting' 2>&1 | FileCheck %s --check-prefix BOGUS-SETTING
+# BOGUS-SETTING: error: invalid value path
+
+# Check that an error is printed for invalid value.
+# RUN: echo "settings set target.language bogus" > %t.bogus_value
+# RUN: %lldb -b -o 'settings read -f %t.bogus_value' 2>&1 | FileCheck %s --check-prefix BOGUS-VALUE
+# BOGUS-VALUE: error: invalid language type
OpenPOWER on IntegriCloud