github.com/qiniu/x@v1.11.9/cmdline/escape_test.go (about) 1 package cmdline 2 3 import ( 4 "testing" 5 ) 6 7 // --------------------------------------------------------------------------- 8 9 func TestEscape(t *testing.T) { 10 11 for i := 0; i < escTableBaseChar; i++ { 12 checkEscapeChar(t, i, i) 13 } 14 15 table := make([]int, escTableLen) 16 for i := 0; i < escTableLen; i++ { 17 table[i] = escTableBaseChar + i 18 } 19 table['0'-escTableBaseChar] = 0 20 table['r'-escTableBaseChar] = '\r' 21 table['t'-escTableBaseChar] = '\t' 22 table['n'-escTableBaseChar] = '\n' 23 for i := 0; i < escTableLen; i++ { 24 checkEscapeChar(t, escTableBaseChar+i, table[i]) 25 } 26 27 for i := int(escTableBaseChar + escTableLen); i < 256; i++ { 28 checkEscapeChar(t, i, i) 29 } 30 } 31 32 func checkEscapeChar(t *testing.T, i, exp int) { 33 34 ret := defaultEscape(byte(i)) 35 if ret != string(rune(exp)) { 36 t.Fatal("escapeChar failed:", i) 37 } 38 } 39 40 // ---------------------------------------------------------------------------