• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

mlange-42 / ark / 13521963365

25 Feb 2025 01:07PM CUT coverage: 69.617%. First build
13521963365

Pull #67

github

web-flow
Merge fb3821f8a into 5e435fa80
Pull Request #67: Code-gen tests for queries

0 of 11 new or added lines in 1 file covered. (0.0%)

2470 of 3548 relevant lines covered (69.62%)

50922.97 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/ecs/generate/main.go
1
package main
2

3
import (
4
        "bytes"
5
        "fmt"
6
        "os"
7
        "strings"
8
        "text/template"
9
)
10

11
type genFile struct {
12
        Source string
13
        Target string
14
}
15

16
var files = []genFile{
17
        {"./filter.go.template", "../filter_gen.go"},
18
        {"./query.go.template", "../query_gen.go"},
19
        {"./query_test.go.template", "../query_gen_test.go"},
20
        {"./maps.go.template", "../maps_gen.go"},
21
        {"./exchange.go.template", "../exchange_gen.go"},
22
}
23

24
func main() {
×
25
        funcMap := template.FuncMap{
×
26
                "makeRange":    makeRange,
×
27
                "lowerLetters": lowerLetters,
×
28
                "upperLetters": upperLetters,
×
29
                "concat":       concat,
×
30
                "join":         join,
×
31
                "arguments":    arguments,
×
NEW
32
                "blanks":       blanks,
×
33
        }
×
34

×
35
        for _, file := range files {
×
36
                t, err := template.New("template").Funcs(funcMap).ParseFiles(file.Source)
×
37
                if err != nil {
×
38
                        panic(err)
×
39
                }
40

41
                var result bytes.Buffer
×
42
                err = t.ExecuteTemplate(&result, "template", nil)
×
43
                if err != nil {
×
44
                        panic(err)
×
45
                }
46
                os.WriteFile(file.Target, result.Bytes(), 0644)
×
47
        }
48
}
49

50
func makeRange(min, max int) []int {
×
51
        r := make([]int, max-min+1)
×
52
        for i := range r {
×
53
                r[i] = min + i
×
54
        }
×
55
        return r
×
56
}
57

58
func lowerLetters(n int) []string {
×
59
        letters := make([]string, n)
×
60
        for i := 0; i < n; i++ {
×
61
                letters[i] = string(rune('a' + i))
×
62
        }
×
63
        return letters
×
64
}
65

66
func upperLetters(n int) []string {
×
67
        letters := make([]string, n)
×
68
        for i := 0; i < n; i++ {
×
69
                letters[i] = string(rune('A' + i))
×
70
        }
×
71
        return letters
×
72
}
73

74
func concat(args ...interface{}) string {
×
75
        var result strings.Builder
×
76
        for _, arg := range args {
×
77
                result.WriteString(fmt.Sprintf("%v", arg))
×
78
        }
×
79
        return result.String()
×
80
}
81

82
func join(before, sep, after string, args []string) string {
×
83
        return fmt.Sprintf("%s%s%s", before, strings.Join(args, sep), after)
×
84
}
×
85

NEW
86
func arguments(names []string, types []string, prefix string) string {
×
87
        str := make([]string, len(names))
×
88
        for i, name := range names {
×
NEW
89
                str[i] = fmt.Sprintf("%s *%s%s", name, prefix, types[i])
×
90
        }
×
91
        return strings.Join(str, ", ")
×
92
}
93

NEW
94
func blanks(count int) string {
×
NEW
95
        b := strings.Builder{}
×
NEW
96
        for i := range count {
×
NEW
97
                if i > 0 {
×
NEW
98
                        b.WriteString(", ")
×
NEW
99
                }
×
NEW
100
                b.WriteString("_")
×
101
        }
NEW
102
        return b.String()
×
103
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc