MCPcopy
hub / github.com/stretchr/testify / generateCode

Function generateCode

_codegen/main.go:55–95  ·  view source on GitHub ↗
(importer imports.Importer, funcs []testFunc)

Source from the content-addressed store, hash-verified

53}
54
55func generateCode(importer imports.Importer, funcs []testFunc) error {
56 buff := bytes.NewBuffer(nil)
57
58 tmplHead, tmplFunc, err := parseTemplates()
59 if err != nil {
60 return err
61 }
62
63 // Generate header
64 if err := tmplHead.Execute(buff, struct {
65 Name string
66 Imports map[string]string
67 }{
68 *outputPkg,
69 importer.Imports(),
70 }); err != nil {
71 return err
72 }
73
74 // Generate funcs
75 for _, fn := range funcs {
76 buff.Write([]byte("\n\n"))
77 if err := tmplFunc.Execute(buff, &fn); err != nil {
78 return err
79 }
80 }
81
82 code, err := format.Source(buff.Bytes())
83 if err != nil {
84 return err
85 }
86
87 // Write file
88 output, err := outputFile()
89 if err != nil {
90 return err
91 }
92 defer output.Close()
93 _, err = io.Copy(output, bytes.NewReader(code))
94 return err
95}
96
97func parseTemplates() (*template.Template, *template.Template, error) {
98 tmplHead, err := template.New("header").Parse(headerTemplate)

Callers 1

mainFunction · 0.85

Calls 4

parseTemplatesFunction · 0.85
outputFileFunction · 0.85
WriteMethod · 0.80
CopyMethod · 0.80

Tested by

no test coverage detected