xref: /llvm-project/lldb/test/Shell/Settings/TestSettingsWrite.test (revision 87aa9c9e4d41ed881453e2fab85b3d25f648bb55)
1*87aa9c9eSJonas Devlieghere# This tests writing and reading settings from LLDB.
2*87aa9c9eSJonas Devlieghere
3*87aa9c9eSJonas Devlieghere# Check that the settings can be written to file and read again without
4*87aa9c9eSJonas Devlieghere# altering the values.
5*87aa9c9eSJonas Devlieghere# RUN: %lldb -b -o 'settings write -f %t.foo' -o 'settings read -f %t.foo' -o 'settings write -f %t.bar' -o 'settings read -f %t.bar' 2>&1 | FileCheck %s --check-prefix SUCCESS
6*87aa9c9eSJonas Devlieghere# RUN: diff -w %t.foo %t.bar
7*87aa9c9eSJonas Devlieghere# SUCCESS-NOT: error:
8*87aa9c9eSJonas Devlieghere
9*87aa9c9eSJonas Devlieghere# Check that exporting target settings only export target settings and nothing else.
10*87aa9c9eSJonas Devlieghere# RUN: %lldb -b -o 'settings write -f %t.target target' 2>&1 | FileCheck %s --check-prefix SUCCESS
11*87aa9c9eSJonas Devlieghere# RUN: cat %t.target | FileCheck %s --check-prefix TARGET
12*87aa9c9eSJonas Devlieghere# TARGET: settings set -f target
13*87aa9c9eSJonas Devlieghere# TARGET-NOT: settings set -f platform
14*87aa9c9eSJonas Devlieghere# TARGET-NOT: settings set -f symbols
15*87aa9c9eSJonas Devlieghere# TARGET-NOT: settings set -f interpreter
16*87aa9c9eSJonas Devlieghere# TARGET-NOT: settings set -f plugin
17*87aa9c9eSJonas Devlieghere
18*87aa9c9eSJonas Devlieghere# Check that settings appear twice when appending.
19*87aa9c9eSJonas Devlieghere# 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
20*87aa9c9eSJonas Devlieghere# RUN: cat %t.append | FileCheck %s --check-prefix APPEND
21*87aa9c9eSJonas Devlieghere# APPEND: settings set -f target.language
22*87aa9c9eSJonas Devlieghere# APPEND: settings set -f target.language
23*87aa9c9eSJonas Devlieghere
24*87aa9c9eSJonas Devlieghere# Check that an error is printed for non-existing setting.
25*87aa9c9eSJonas Devlieghere# RUN: echo "settings set -f bogus" > %t.bogus_setting
26*87aa9c9eSJonas Devlieghere# RUN: %lldb -b -o 'settings read -f %t.bogus_setting' 2>&1 | FileCheck %s --check-prefix BOGUS-SETTING
27*87aa9c9eSJonas Devlieghere# BOGUS-SETTING: error: invalid value path
28*87aa9c9eSJonas Devlieghere
29*87aa9c9eSJonas Devlieghere# Check that an error is printed for invalid value.
30*87aa9c9eSJonas Devlieghere# RUN: echo "settings set -f target.language bogus" > %t.bogus_value
31*87aa9c9eSJonas Devlieghere# RUN: %lldb -b -o 'settings read -f %t.bogus_value' 2>&1 | FileCheck %s --check-prefix BOGUS-VALUE
32*87aa9c9eSJonas Devlieghere# BOGUS-VALUE: error: invalid language type
33