github.com/pingcap/tiflow@v0.0.0-20240520035814-5bf52d54e205/dm/ctl/common/config_test.go (about)

     1  // Copyright 2022 PingCAP, Inc.
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  //
     7  //     http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // See the License for the specific language governing permissions and
    12  // limitations under the License.
    13  
    14  package common
    15  
    16  import (
    17  	"testing"
    18  
    19  	. "github.com/pingcap/check"
    20  )
    21  
    22  func TestConfig(t *testing.T) {
    23  	TestingT(t)
    24  }
    25  
    26  var _ = Suite(&testConfigSuite{})
    27  
    28  type testConfigSuite struct{}
    29  
    30  func (t *testConfigSuite) TestInteractiveQuotes(c *C) {
    31  	cases := []struct {
    32  		input    string
    33  		expected []string
    34  	}{
    35  		{`123`, []string{`123`}},
    36  		{`"123"`, []string{`123`}},
    37  		{`'123'`, []string{`123`}},
    38  		{`123 456`, []string{`123`, `456`}},
    39  		{`'123 456'`, []string{`123 456`}},
    40  		{`"123 456"`, []string{`123 456`}},
    41  		{`"123 456" 789`, []string{`123 456`, `789`}},
    42  		{`0 '123"456 789'`, []string{`0`, `123"456 789`}},
    43  		{`0'123"456 789'`, []string{`0123"456 789`}},
    44  		{`"123""456" 7 "89"`, []string{`123456`, `7`, `89`}},
    45  		// return original string when failed to split
    46  		{`123"456`, []string{`123"456`}},
    47  	}
    48  
    49  	for _, ca := range cases {
    50  		got := SplitArgsRespectQuote(ca.input)
    51  		c.Assert(got, DeepEquals, ca.expected)
    52  	}
    53  }