46 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package main
 | |
| 
 | |
| import (
 | |
| 	"fmt"
 | |
| 	"log"
 | |
| 	"strings"
 | |
| 	"testing"
 | |
| )
 | |
| 
 | |
| func TestStrings(t *testing.T) {
 | |
| 	tests := [][]string{
 | |
| 		[]string{
 | |
| 			`  a   'b'   ''   '"d" e' " f " ""''""''''"""" g"h"'i'jkl'mno'pqr $("dangerous dangerous danger-ous-ous-ous")`,
 | |
| 			"a", "b", "", `"d" e`, " f ", "", "ghijklmnopqr", "$(dangerous dangerous danger-ous-ous-ous)",
 | |
| 		},
 | |
| 		[]string{
 | |
| 			` arg1 arg2 '   hello    world'"'" '' " '  another hello world   ' "  `,
 | |
| 			"arg1", "arg2", "   hello    world'", "", " '  another hello world   ' ",
 | |
| 		},
 | |
| 		[]string{
 | |
| 			`arg1 arg2 '   hello    world'"'" " "" '  another hello world   ' "`,
 | |
| 			"arg1", "arg2", "   hello    world'", "  '  another hello world   ' ",
 | |
| 		},
 | |
| 		[]string{
 | |
| 			` arg1 arg2 '   hello    world'"'" "" " '  another hello world   ' "`,
 | |
| 			"arg1", "arg2", "   hello    world'", "", " '  another hello world   ' ",
 | |
| 		},
 | |
| 		[]string{
 | |
| 			`arg1 arg2 '   hello    world'"'" "" " '  another hello world   ' `,
 | |
| 		},
 | |
| 	}
 | |
| 
 | |
| 	for i := range tests {
 | |
| 		strs := tests[i]
 | |
| 		in := strs[0]
 | |
| 		expected := strs[1:]
 | |
| 
 | |
| 		actual, _ := ParseArgs(in)
 | |
| 		if strings.Join(actual, "#") != strings.Join(expected, "#") {
 | |
| 			fmt.Printf("Expected: %#v\n", expected)
 | |
| 			fmt.Printf("Actual: %#v\n", actual)
 | |
| 			log.Fatal("Test failed.")
 | |
| 		}
 | |
| 	}
 | |
| }
 |