Files
llvm-project/lldb/test/Shell/Commands/command-plugin-list.test
David Peixotto c677a11c8d [lldb] Add support to list/enable/disable remaining plugin types. (#143970)
In #134418 we added support to list/enable/disable `SystemRuntime` and
`InstrumentationRuntime` plugins. We limited it to those two plugin
types to flesh out the idea with a smaller change.

This PR adds support for the remaining plugin types. We now support all
the plugins that can be registered directly with the plugin manager.
Plugins that are added by loading shared objects are still not
supported.
2025-06-17 13:47:20 -07:00

83 lines
3.4 KiB
Plaintext

# This test validates the plugin list command.
# 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 without an argument will list all plugins.
plugin list
# CHECK-LABEL: plugin list
# CHECK-DAG: instrumentation-runtime
# CHECK-DAG: [+] AddressSanitizer AddressSanitizer instrumentation runtime plugin.
# CHECK-DAG: system-runtime
# CHECK-DAG: [+] systemruntime-macosx System runtime plugin for Mac OS X native libraries
# Test plugin list works with fully qualified name.
plugin list system-runtime.systemruntime-macosx
# CHECK-LABEL: plugin list system-runtime.systemruntime-macosx
# CHECK: system-runtime
# CHECK: [+] systemruntime-macosx System runtime plugin for Mac OS X native libraries
# Test plugin list on plugin namespace works.
plugin list system-runtime
# CHECK-LABEL: plugin list system-runtime
# CHECK: system-runtime
# CHECK: [+] systemruntime-macosx System runtime plugin for Mac OS X native libraries
# Test plugin list on multiple args works.
plugin list system-runtime instrumentation-runtime.AddressSanitizer
# CHECK-LABEL: plugin list system-runtime instrumentation-runtime.AddressSanitizer
# 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 json output for plugin list.
plugin list --json
# CHECK-LABEL plugin list --json
# CHECK: {
# CHECK-DAG: "instrumentation-runtime":
# CHECK-DAG: "system-runtime":
# CHECK: }
# Test json output for plugin list with a namespace
plugin list system-runtime --json
# CHECK-LABEL plugin list --json
# CHECK: {
# CHECK: "system-runtime": [
# CHECK: {
# CHECK-DAG: "enabled": true
# CHECK-DAG: "name": "systemruntime-macosx"
# CHECK: }
# CHECK: ]
# CHECK: }
# Test json output for listing multiple plugins
plugin list --json system-runtime instrumentation-runtime.AddressSanitizer
# CHECK-LABEL plugin list --json system-runtime instrumentation-runtime.AddressSanitizer
# CHECK: {
# CHECK-DAG: "instrumentation-runtime":
# CHECK-DAG: "name": "AddressSanitizer"
# CHECK-DAG: "system-runtime":
# CHECK: }
# Test plugin list does not match a plugin name by substring.
# RUN: %lldb -o "plugin list macosx" 2>&1 | FileCheck %s --check-prefix=ERROR_PLUGIN_NOT_FOUND
# Test plugin list does not match a plugin namespace by substring.
# RUN: %lldb -o "plugin list system-runtime." 2>&1 | FileCheck %s --check-prefix=ERROR_PLUGIN_NOT_FOUND
# Test plugin list returns an error for unknown second argument
# RUN: %lldb -o "plugin list system-runtime foo" 2>&1 | FileCheck %s --check-prefix=ERROR_PLUGIN_NOT_FOUND
# Test plugin list returns an error for unknown second argument
# RUN: %lldb -o "plugin list --json system-runtime foo" 2>&1 | FileCheck %s --check-prefix=ERROR_PLUGIN_NOT_FOUND
# Test plugin list for unknown plugin returns an error.
# RUN: %lldb -o "plugin list 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