{false,mockSubprocessCLIPlugin(t,"$foo -bar")},// Test leading chars
{false,mockSubprocessCLIPlugin(t,"$foo -bar"), "invalid name"},// Test leading chars
{false,mockSubprocessCLIPlugin(t,"foo -bar ")},// Test trailing chars
{false,mockSubprocessCLIPlugin(t,"foo -bar "), "invalid name"},// Test trailing chars
{false,mockSubprocessCLIPlugin(t,"foo\nbar")},// Test newline
{false,mockSubprocessCLIPlugin(t,"foo\nbar"), "invalid name"},// Test newline
{true,mockNoCommand},// Test no command metadata works
{true,mockNoCommand, ""},// Test no command metadata works
{true,mockLegacyCommand},// Test legacy command metadata works
{true,mockLegacyCommand, ""},// Test legacy command metadata works
{false,mockWithCommand},// Test platformCommand and command both set fails
{false,mockWithCommand, "runtime config validation failed: both platformCommand and command are set"},// Test platformCommand and command both set fails
{false,mockWithHooks},// Test platformHooks and hooks both set fails
{false,mockWithHooks, "runtime config validation failed: both platformHooks and hooks are set"},// Test platformHooks and hooks both set fails