| # 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 |