mirror of
https://github.com/k3s-io/k3s.git
synced 2024-06-07 19:41:36 +00:00
parent
92005c5874
commit
f99b1c8798
1
contrib/gotests_templates/call.tmpl
Normal file
1
contrib/gotests_templates/call.tmpl
Normal file
@ -0,0 +1 @@
|
||||
{{define "call"}}{{with .Receiver}}{{if not .IsStruct}}tt.{{end}}{{Receiver .}}.{{end}}{{.Name}}({{range $i, $el := .Parameters}}{{if $i}}, {{end}}{{if not .IsWriter}}tt.args.{{end}}{{Param .}}{{if .Type.IsVariadic}}...{{end}}{{end}}){{end}}
|
107
contrib/gotests_templates/function.tmpl
Normal file
107
contrib/gotests_templates/function.tmpl
Normal file
@ -0,0 +1,107 @@
|
||||
{{define "function"}}
|
||||
{{- $f := .}}
|
||||
|
||||
func {{.TestName}}(t *testing.T) {
|
||||
{{- with .Receiver}}
|
||||
{{- if .IsStruct}}
|
||||
{{- if .Fields}}
|
||||
type fields struct {
|
||||
{{- range .Fields}}
|
||||
{{Field .}} {{.Type}}
|
||||
{{- end}}
|
||||
}
|
||||
{{- end}}
|
||||
{{- end}}
|
||||
{{- end}}
|
||||
{{- if .TestParameters}}
|
||||
type args struct {
|
||||
{{- range .TestParameters}}
|
||||
{{Param .}} {{.Type}}
|
||||
{{- end}}
|
||||
}
|
||||
{{- end}}
|
||||
tests := []struct {
|
||||
name string
|
||||
{{- with .Receiver}}
|
||||
{{- if and .IsStruct .Fields}}
|
||||
fields fields
|
||||
{{- else}}
|
||||
{{Receiver .}} {{.Type}}
|
||||
{{- end}}
|
||||
{{- end}}
|
||||
{{- if .TestParameters}}
|
||||
args args
|
||||
{{- end}}
|
||||
setup func() error // Optional, delete if unused
|
||||
teardown func() error // Optional, delete if unused
|
||||
{{- range .TestResults}}
|
||||
{{Want .}} {{.Type}}
|
||||
{{- end}}
|
||||
{{- if .ReturnsError}}
|
||||
wantErr bool
|
||||
{{- end}}
|
||||
}{
|
||||
// TODO: Add test cases.
|
||||
// {
|
||||
// name: "Example Test",
|
||||
// args: args {
|
||||
// },
|
||||
// {{- range .TestResults}}
|
||||
// want: {{Want .}} {{.Type}}
|
||||
// {{- end}}
|
||||
// setup: func() error { return nil },
|
||||
// teardown: func() error { return nil },
|
||||
// },
|
||||
}
|
||||
for {{if (or .Subtests (not .IsNaked))}} _, tt := {{end}} range tests {
|
||||
{{- if .Subtests}}
|
||||
{{- if .Parallel}}tt := tt{{end}}
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
{{- if .Parallel}}t.Parallel(){{end}}
|
||||
{{- end}}
|
||||
{{- with .Receiver}}
|
||||
{{- if .IsStruct}}
|
||||
{{Receiver .}} := {{if .Type.IsStar}}&{{end}}{{.Type.Value}}{
|
||||
{{- range .Fields}}
|
||||
{{.Name}}: tt.fields.{{Field .}},
|
||||
{{- end}}
|
||||
}
|
||||
{{- end}}
|
||||
{{- end}}
|
||||
{{- range .Parameters}}
|
||||
{{- if .IsWriter}}
|
||||
{{Param .}} := &bytes.Buffer{}
|
||||
{{- end}}
|
||||
{{- end}}
|
||||
defer tt.teardown()
|
||||
if err := tt.setup(); err != nil {
|
||||
t.Errorf("Setup for {{template "message" $f}} failed = %v", err)
|
||||
return
|
||||
}
|
||||
{{- if and (not .OnlyReturnsError) (not .OnlyReturnsOneValue) }}
|
||||
{{template "results" $f}} {{template "call" $f}}
|
||||
{{- end}}
|
||||
{{- if .ReturnsError}}
|
||||
if {{if .OnlyReturnsError}} err := {{template "call" $f}}; {{end}} (err != nil) != tt.wantErr {
|
||||
t.Errorf("{{template "message" $f}} error = %v, wantErr %v", {{template "inputs" $f}} err, tt.wantErr)
|
||||
{{- if .TestResults}}
|
||||
{{if .Subtests }}return{{else}}continue{{end}}
|
||||
{{- end}}
|
||||
}
|
||||
{{- end}}
|
||||
{{- range .TestResults}}
|
||||
{{- if .IsWriter}}
|
||||
if {{Got .}} := {{Param .}}.String(); {{Got .}} != tt.{{Want .}} {
|
||||
{{- else if .IsBasicType}}
|
||||
if {{if $f.OnlyReturnsOneValue}}{{Got .}} := {{template "inline" $f}}; {{end}} {{Got .}} != tt.{{Want .}} {
|
||||
{{- else}}
|
||||
if {{if $f.OnlyReturnsOneValue}}{{Got .}} := {{template "inline" $f}}; {{end}} !reflect.DeepEqual({{Got .}}, tt.{{Want .}}) {
|
||||
{{- end}}
|
||||
t.Errorf("{{template "message" $f}} {{if $f.ReturnsMultiple}}{{Got .}} {{end}}= %+v\nWant = %+v", {{template "inputs" $f}} {{Got .}}, tt.{{Want .}})
|
||||
}
|
||||
{{- end}}
|
||||
{{- if .Subtests }} }) {{- end -}}
|
||||
}
|
||||
}
|
||||
|
||||
{{end}}
|
10
contrib/gotests_templates/header.tmpl
Normal file
10
contrib/gotests_templates/header.tmpl
Normal file
@ -0,0 +1,10 @@
|
||||
{{define "header"}}
|
||||
{{range .Comments}}{{.}}
|
||||
{{end -}}
|
||||
package {{.Package}}
|
||||
|
||||
import (
|
||||
{{range .Imports}}{{.Name}} {{.Path}}
|
||||
{{end}}
|
||||
)
|
||||
{{end}}
|
1
contrib/gotests_templates/inline.tmpl
Normal file
1
contrib/gotests_templates/inline.tmpl
Normal file
@ -0,0 +1 @@
|
||||
{{define "inline"}} {{template "call" .}} {{end}}
|
1
contrib/gotests_templates/inputs.tmpl
Normal file
1
contrib/gotests_templates/inputs.tmpl
Normal file
@ -0,0 +1 @@
|
||||
{{define "inputs"}}{{$f := .}}{{if not .Subtests}}tt.name, {{end}}{{if $f.PrintInputs}}{{range $f.Parameters}}tt.args.{{Param .}}, {{end}}{{end}}{{end}}
|
3
contrib/gotests_templates/message.tmpl
Normal file
3
contrib/gotests_templates/message.tmpl
Normal file
@ -0,0 +1,3 @@
|
||||
{{define "message" -}}
|
||||
{{if not .Subtests}}%q. {{end}}{{with .Receiver}}{{.Type.Value}}.{{end}}{{.Name}}({{if .PrintInputs}}{{range $i, $el := .Parameters}}{{if $i}}, {{end}}%v{{end}}{{end}})
|
||||
{{- end}}
|
1
contrib/gotests_templates/results.tmpl
Normal file
1
contrib/gotests_templates/results.tmpl
Normal file
@ -0,0 +1 @@
|
||||
{{define "results"}} {{range $i, $el := .Results}}{{if $i}}, {{end}}{{Got .}}{{end}}{{if .ReturnsError}}, err{{end}} {{if or .Results .ReturnsError}} := {{end}} {{end}}
|
Loading…
Reference in New Issue
Block a user