mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-10-31 13:50:01 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			115 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			115 lines
		
	
	
		
			5.1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package ansiterm
 | |
| 
 | |
| import (
 | |
| 	"fmt"
 | |
| 	"testing"
 | |
| )
 | |
| 
 | |
| func getStateNames() []string {
 | |
| 	parser, _ := createTestParser("Ground")
 | |
| 
 | |
| 	stateNames := []string{}
 | |
| 	for _, state := range parser.stateMap {
 | |
| 		stateNames = append(stateNames, state.Name())
 | |
| 	}
 | |
| 
 | |
| 	return stateNames
 | |
| }
 | |
| 
 | |
| func stateTransitionHelper(t *testing.T, start string, end string, bytes []byte) {
 | |
| 	for _, b := range bytes {
 | |
| 		bytes := []byte{byte(b)}
 | |
| 		parser, _ := createTestParser(start)
 | |
| 		parser.Parse(bytes)
 | |
| 		validateState(t, parser.currState, end)
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func anyToXHelper(t *testing.T, bytes []byte, expectedState string) {
 | |
| 	for _, s := range getStateNames() {
 | |
| 		stateTransitionHelper(t, s, expectedState, bytes)
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func funcCallParamHelper(t *testing.T, bytes []byte, start string, expected string, expectedCalls []string) {
 | |
| 	parser, evtHandler := createTestParser(start)
 | |
| 	parser.Parse(bytes)
 | |
| 	validateState(t, parser.currState, expected)
 | |
| 	validateFuncCalls(t, evtHandler.FunctionCalls, expectedCalls)
 | |
| }
 | |
| 
 | |
| func parseParamsHelper(t *testing.T, bytes []byte, expectedParams []string) {
 | |
| 	params, err := parseParams(bytes)
 | |
| 
 | |
| 	if err != nil {
 | |
| 		t.Errorf("Parameter parse error: %v", err)
 | |
| 		return
 | |
| 	}
 | |
| 
 | |
| 	if len(params) != len(expectedParams) {
 | |
| 		t.Errorf("Parsed   parameters: %v", params)
 | |
| 		t.Errorf("Expected parameters: %v", expectedParams)
 | |
| 		t.Errorf("Parameter length failure: %d != %d", len(params), len(expectedParams))
 | |
| 		return
 | |
| 	}
 | |
| 
 | |
| 	for i, v := range expectedParams {
 | |
| 		if v != params[i] {
 | |
| 			t.Errorf("Parsed   parameters: %v", params)
 | |
| 			t.Errorf("Expected parameters: %v", expectedParams)
 | |
| 			t.Errorf("Parameter parse failure: %s != %s at position %d", v, params[i], i)
 | |
| 		}
 | |
| 	}
 | |
| }
 | |
| 
 | |
| func cursorSingleParamHelper(t *testing.T, command byte, funcName string) {
 | |
| 	funcCallParamHelper(t, []byte{command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([1])", funcName)})
 | |
| 	funcCallParamHelper(t, []byte{'0', command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([1])", funcName)})
 | |
| 	funcCallParamHelper(t, []byte{'2', command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([2])", funcName)})
 | |
| 	funcCallParamHelper(t, []byte{'2', '3', command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([23])", funcName)})
 | |
| 	funcCallParamHelper(t, []byte{'2', ';', '3', command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([2])", funcName)})
 | |
| 	funcCallParamHelper(t, []byte{'2', ';', '3', ';', '4', command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([2])", funcName)})
 | |
| }
 | |
| 
 | |
| func cursorTwoParamHelper(t *testing.T, command byte, funcName string) {
 | |
| 	funcCallParamHelper(t, []byte{command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([1 1])", funcName)})
 | |
| 	funcCallParamHelper(t, []byte{'0', command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([1 1])", funcName)})
 | |
| 	funcCallParamHelper(t, []byte{'2', command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([2 1])", funcName)})
 | |
| 	funcCallParamHelper(t, []byte{'2', '3', command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([23 1])", funcName)})
 | |
| 	funcCallParamHelper(t, []byte{'2', ';', '3', command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([2 3])", funcName)})
 | |
| 	funcCallParamHelper(t, []byte{'2', ';', '3', ';', '4', command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([2 3])", funcName)})
 | |
| }
 | |
| 
 | |
| func eraseHelper(t *testing.T, command byte, funcName string) {
 | |
| 	funcCallParamHelper(t, []byte{command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([0])", funcName)})
 | |
| 	funcCallParamHelper(t, []byte{'0', command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([0])", funcName)})
 | |
| 	funcCallParamHelper(t, []byte{'1', command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([1])", funcName)})
 | |
| 	funcCallParamHelper(t, []byte{'2', command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([2])", funcName)})
 | |
| 	funcCallParamHelper(t, []byte{'3', command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([3])", funcName)})
 | |
| 	funcCallParamHelper(t, []byte{'4', command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([0])", funcName)})
 | |
| 	funcCallParamHelper(t, []byte{'1', ';', '2', command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([1])", funcName)})
 | |
| }
 | |
| 
 | |
| func scrollHelper(t *testing.T, command byte, funcName string) {
 | |
| 	funcCallParamHelper(t, []byte{command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([1])", funcName)})
 | |
| 	funcCallParamHelper(t, []byte{'0', command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([1])", funcName)})
 | |
| 	funcCallParamHelper(t, []byte{'1', command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([1])", funcName)})
 | |
| 	funcCallParamHelper(t, []byte{'5', command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([5])", funcName)})
 | |
| 	funcCallParamHelper(t, []byte{'4', ';', '6', command}, "CsiEntry", "Ground", []string{fmt.Sprintf("%s([4])", funcName)})
 | |
| }
 | |
| 
 | |
| func clearOnStateChangeHelper(t *testing.T, start string, end string, bytes []byte) {
 | |
| 	p, _ := createTestParser(start)
 | |
| 	fillContext(p.context)
 | |
| 	p.Parse(bytes)
 | |
| 	validateState(t, p.currState, end)
 | |
| 	validateEmptyContext(t, p.context)
 | |
| }
 | |
| 
 | |
| func c0Helper(t *testing.T, bytes []byte, expectedState string, expectedCalls []string) {
 | |
| 	parser, evtHandler := createTestParser("Ground")
 | |
| 	parser.Parse(bytes)
 | |
| 	validateState(t, parser.currState, expectedState)
 | |
| 	validateFuncCalls(t, evtHandler.FunctionCalls, expectedCalls)
 | |
| }
 |