MCPcopy
hub / github.com/XiaoMi/Gaea / runNodeRestoreTestWithFlags

Function runNodeRestoreTestWithFlags

parser/ast/util_test.go:106–127  ·  view source on GitHub ↗
(t *testing.T, nodeTestCases []NodeRestoreTestCase, template string, extractNodeFunc func(node Node) Node, flags RestoreFlags)

Source from the content-addressed store, hash-verified

104}
105
106func runNodeRestoreTestWithFlags(t *testing.T, nodeTestCases []NodeRestoreTestCase, template string, extractNodeFunc func(node Node) Node, flags RestoreFlags) {
107 p := parser.New()
108 p.EnableWindowFunc(true)
109 for _, testCase := range nodeTestCases {
110 sourceSQL := fmt.Sprintf(template, testCase.sourceSQL)
111 expectSQL := fmt.Sprintf(template, testCase.expectSQL)
112 stmt, err := p.ParseOneStmt(sourceSQL, "", "")
113 comment := fmt.Sprintf("source %#v", testCase)
114 require.NoError(t, err, comment)
115 var sb strings.Builder
116 err = extractNodeFunc(stmt).Restore(NewRestoreCtx(flags, &sb))
117 require.NoError(t, err, comment)
118 restoreSql := fmt.Sprintf(template, sb.String())
119 comment = fmt.Sprintf("source %#v; restore %v", testCase, restoreSql)
120 require.Equal(t, expectSQL, restoreSql, comment)
121 stmt2, err := p.ParseOneStmt(restoreSql, "", "")
122 require.NoError(t, err, comment)
123 CleanNodeText(stmt)
124 CleanNodeText(stmt2)
125 require.Equal(t, stmt, stmt2, comment)
126 }
127}

Callers 1

runNodeRestoreTestFunction · 0.85

Calls 8

NewFunction · 0.92
NewRestoreCtxFunction · 0.85
ParseOneStmtMethod · 0.80
CleanNodeTextFunction · 0.70
RestoreMethod · 0.65
StringMethod · 0.65
EnableWindowFuncMethod · 0.45
EqualMethod · 0.45

Tested by

no test coverage detected