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