# Modifying the interpreter settings is tricky because they don't take effect
# until we create a new command interpreter, which should be merely an
# implementation detail. This leads to confusing and unexpected scenarios.
#
# Below are a few scenarios that we should fix.

# CONTINUE: 123456789
# STOP-NOT: 111111111
# STOP-NOT: 123456789

# FIXME: Should stop
# RUN: %lldb -b -o 'settings set interpreter.stop-command-source-on-error false' -s %S/Inputs/StopCommandSource.in | FileCheck %s --check-prefix CONTINUE

# FIXME: Should continue
# RUN: not %lldb -b -s %S/Inputs/DontStopCommandSource.in -o 'bogus' -o 'expression 111100000 + 11111' | FileCheck %s --check-prefix STOP

# FIXME: Should continue
# RUN: not %lldb -b -o 'settings set interpreter.stop-command-source-on-error false' -o 'bogus' -o 'expression 123400000 + 56789'  | FileCheck %s --check-prefix STOP

# FIXME: Should continue
# RUN: not %lldb -b -s %S/Inputs/DontStopCommandSource.in | FileCheck %s --check-prefix STOP

# FIXME: Should continue
# RUN: not %lldb -b -o 'settings set interpreter.stop-command-source-on-error true' -s %S/Inputs/DontStopCommandSource.in | FileCheck %s --check-prefix STOP
