blob: af646e60abef068aa91ee1a5051fa9d1729c08a0 [file] [log] [blame]
# This test validates the plugin enable and disable commands.
# Currently it works only for system-runtime plugins and we only have one
# system runtime plugin so testing is a bit limited.
#
# Note that commands that return errors will stop running a script, so we
# have new RUN lines for any command that is expected to return an error.
# RUN: %lldb -s %s -o exit 2>&1 | FileCheck %s
# Test plugin list shows the default state which is expected to be enabled.
plugin list
# CHECK-LABEL: plugin list
# CHECK: system-runtime
# CHECK: [+] systemruntime-macosx System runtime plugin for Mac OS X native libraries
# Test plugin disable disables a plugin.
plugin disable system-runtime.systemruntime-macosx
# CHECK-LABEL: plugin disable system-runtime.systemruntime-macosx
# CHECK: system-runtime
# CHECK: [-] systemruntime-macosx System runtime plugin for Mac OS X native libraries
# Make sure plugin list shows it disabled as well.
plugin list
# CHECK: system-runtime
# CHECK: [-] systemruntime-macosx System runtime plugin for Mac OS X native libraries
# Test plugin enable re-enables a plugin.
plugin enable system-runtime.systemruntime-macosx
# CHECK-LABEL: plugin enable system-runtime.systemruntime-macosx
# CHECK: system-runtime
# CHECK: [+] systemruntime-macosx System runtime plugin for Mac OS X native libraries
# Make sure plugin list shows it enabled as well.
plugin list
# CHECK: system-runtime
# CHECK: [+] systemruntime-macosx System runtime plugin for Mac OS X native libraries
# Test plugin disable with namespace works.
plugin disable system-runtime
# CHECK-LABEL: plugin disable system-runtime
# CHECK: system-runtime
# CHECK: [-] systemruntime-macosx System runtime plugin for Mac OS X native libraries
# Test plugin enable with namespace works.
plugin enable system-runtime
# CHECK-LABEL: plugin enable system-runtime
# CHECK: system-runtime
# CHECK: [+] systemruntime-macosx System runtime plugin for Mac OS X native libraries
# Test plugin enable/disable for instrumentation plugin works.
plugin enable instrumentation-runtime
# CHECK-LABEL: plugin enable instrumentation-runtime
# CHECK: instrumentation-runtime
# CHECK: [+] AddressSanitizer
plugin disable instrumentation-runtime
# CHECK-LABEL: plugin disable instrumentation-runtime
# CHECK: instrumentation-runtime
# CHECK: [-] AddressSanitizer
# Test plugin enable with multiple arguments.
plugin enable system-runtime instrumentation-runtime
# CHECK-LABEL: plugin enable system-runtime instrumentation-runtime
# CHECK: system-runtime
# CHECK: [+] systemruntime-macosx System runtime plugin for Mac OS X native libraries.
# CHECK: instrumentation-runtime
# CHECK: [+] AddressSanitizer AddressSanitizer instrumentation runtime plugin.
# Test plugin disable with multiple arguments.
plugin disable system-runtime instrumentation-runtime
# CHECK-LABEL: plugin disable system-runtime instrumentation-runtime
# CHECK: system-runtime
# CHECK: [-] systemruntime-macosx System runtime plugin for Mac OS X native libraries.
# CHECK: instrumentation-runtime
# CHECK: [-] AddressSanitizer AddressSanitizer instrumentation runtime plugin.
# Test plugin enable/disable for unknown plugin returns an error.
# RUN: %lldb -o "plugin enable some-plugin-that-does-not-exist" 2>&1 | FileCheck %s --check-prefix=ERROR_PLUGIN_NOT_FOUND
# RUN: %lldb -o "plugin disable some-plugin-that-does-not-exist" 2>&1 | FileCheck %s --check-prefix=ERROR_PLUGIN_NOT_FOUND
# RUN: %lldb -o "plugin enable system-runtime some-plugin-that-does-not-exist" 2>&1 | FileCheck %s --check-prefix=ERROR_PLUGIN_NOT_FOUND
# ERROR_PLUGIN_NOT_FOUND: error: Found no matching plugins
# Test plugin enable/disable requires a plugin name.
# RUN: %lldb -o "plugin enable" 2>&1 | FileCheck %s --check-prefix=ERROR_ARGUMENTS_ENABLE
# ERROR_ARGUMENTS_ENABLE: error: 'plugin enable' requires one or more arguments
# RUN: %lldb -o "plugin disable" 2>&1 | FileCheck %s --check-prefix=ERROR_ARGUMENTS_DISABLE
# ERROR_ARGUMENTS_DISABLE: error: 'plugin disable' requires one or more arguments