Skip to content

Commit 60e42fa

Browse files
authored
add exclude-substrings flag (#16)
Previous version of performance CLI was working with file extensions, however now it should be run inside the Jenkins environment, at the same time Jenkinsfile will be generated from SDK that does not have such metadata as extension. Thus extensions flag was changed to exclude-substrings. Default values are set with the respect to a fixtures suite of every driver, excluding files with AST contents. Signed-off-by: lwsanty <lwsanty@gmail.com>
1 parent eb3694b commit 60e42fa

File tree

3 files changed

+33
-18
lines changed

3 files changed

+33
-18
lines changed

README.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -72,23 +72,23 @@ Full examples of usage scripts are following:
7272
# for prometheus pushgateway
7373
export PROM_ADDRESS="localhost:9091"
7474
export PROM_JOB=pushgateway
75-
./bblfsh-performance end-to-end --language=go --commit=3d9682b --extension=".go" --storage="prom" /var/testdata/benchmarks
75+
./bblfsh-performance end-to-end --language=go --commit=3d9682b --filter-prefix="bench_" --exclude-suffixes=".legacy",".native",".uast" --storage="prom" /var/testdata/benchmarks
7676
7777
# for influx db
7878
export INFLUX_ADDRESS="http://localhost:8086"
7979
export INFLUX_USERNAME=""
8080
export INFLUX_PASSWORD=""
8181
export INFLUX_DB=mydb
8282
export INFLUX_MEASUREMENT=benchmark
83-
bblfsh-performance end-to-end --language=go --commit=3d9682b --filter-prefix="bench_" --extension=".go" --storage="influxdb" /var/testdata/benchmarks
83+
bblfsh-performance end-to-end --language=go --commit=3d9682b --filter-prefix="bench_" --exclude-suffixes=".legacy",".native",".uast" --storage="influxdb" /var/testdata/benchmarks
8484
8585
Flags:
86-
-c, --commit string commit id that's being tested and will be used as a tag in performance report
87-
--custom-driver if this flag is set to true CLI pulls corresponding language driver repo's commit, builds docker image and installs it onto the bblfsh container
88-
-t, --docker-tag string bblfshd docker image tag to be tested (default "latest-drivers")
89-
-e, --extension string file extension to be filtered
90-
--filter-prefix string file prefix to be filtered (default "bench_")
91-
-h, --help help for end-to-end
92-
-l, --language string name of the language to be tested
93-
-s, --storage string storage kind to store the results(prom, influxdb, file) (default "prom")
86+
-c, --commit string commit id that's being tested and will be used as a tag in performance report
87+
--custom-driver if this flag is set to true CLI pulls corresponding language driver repo's commit, builds docker image and installs it onto the bblfsh container
88+
-t, --docker-tag string bblfshd docker image tag to be tested (default "latest-drivers")
89+
--exclude-suffixes strings file suffixes to be excluded (default [.legacy,.native,.uast])
90+
--filter-prefix string file prefix to be filtered (default "bench_")
91+
-h, --help help for end-to-end
92+
-l, --language string name of the language to be tested
93+
-s, --storage string storage kind to store the results(prom, influxdb, file) (default "prom")
9494
```

cmd/bblfsh-performance/endtoend/endtoend.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,19 +55,19 @@ Full examples of usage scripts are following:
5555
# for prometheus pushgateway
5656
export PROM_ADDRESS="localhost:9091"
5757
export PROM_JOB=pushgateway
58-
./bblfsh-performance end-to-end --language=go --commit=3d9682b --extension=".go" --storage="prom" /var/testdata/benchmarks
58+
./bblfsh-performance end-to-end --language=go --commit=3d9682b --filter-prefix="bench_" --exclude-suffixes=".legacy",".native",".uast" --storage="prom" /var/testdata/benchmarks
5959
6060
# for influx db
6161
export INFLUX_ADDRESS="http://localhost:8086"
6262
export INFLUX_USERNAME=""
6363
export INFLUX_PASSWORD=""
6464
export INFLUX_DB=mydb
6565
export INFLUX_MEASUREMENT=benchmark
66-
bblfsh-performance end-to-end --language=go --commit=3d9682b --filter-prefix="bench_" --extension=".go" --storage="influxdb" /var/testdata/benchmarks`,
66+
bblfsh-performance end-to-end --language=go --commit=3d9682b --filter-prefix="bench_" --exclude-suffixes=".legacy",".native",".uast" --storage="influxdb" /var/testdata/benchmarks`,
6767
RunE: performance.RunESilenced(func(cmd *cobra.Command, args []string) error {
6868
language, _ := cmd.Flags().GetString("language")
6969
commit, _ := cmd.Flags().GetString("commit")
70-
extension, _ := cmd.Flags().GetString("extension")
70+
excludeSubstrings, _ := cmd.Flags().GetStringSlice("exclude-suffixes")
7171
stor, _ := cmd.Flags().GetString("storage")
7272
filterPrefix, _ := cmd.Flags().GetString("filter-prefix")
7373
customDriver, _ := cmd.Flags().GetBool("custom-driver")
@@ -121,7 +121,7 @@ bblfsh-performance end-to-end --language=go --commit=3d9682b --filter-prefix="be
121121
}
122122
defer client.Close()
123123

124-
files, err := performance.GetFiles(filterPrefix, extension, args...)
124+
files, err := performance.GetFiles(filterPrefix, excludeSubstrings, args...)
125125
if err != nil {
126126
return errGetFiles.Wrap(err)
127127
} else if len(files) == 0 {
@@ -168,7 +168,7 @@ bblfsh-performance end-to-end --language=go --commit=3d9682b --filter-prefix="be
168168
flags := cmd.Flags()
169169
flags.StringP("language", "l", "", "name of the language to be tested")
170170
flags.StringP("commit", "c", "", "commit id that's being tested and will be used as a tag in performance report")
171-
flags.StringP("extension", "e", "", "file extension to be filtered")
171+
flags.StringSlice("exclude-suffixes", []string{".legacy", ".native", ".uast"}, "file suffixes to be excluded")
172172
flags.StringP("docker-tag", "t", bblfshDefaultConfTag, "bblfshd docker image tag to be tested")
173173
flags.String("filter-prefix", fileFilterPrefix, "file prefix to be filtered")
174174
flags.StringP("storage", "s", prom_pushgateway.Kind, "storage kind to store the results"+

common.go

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,16 +73,31 @@ func RunESilenced(f RunE) RunE {
7373
}
7474
}
7575

76+
func stringInSlice(s string, strSlice []string) bool {
77+
for _, sl := range strSlice {
78+
if strings.HasSuffix(s, sl) {
79+
return true
80+
}
81+
}
82+
return false
83+
}
84+
7685
// GetFiles is a simple "get files by pattern" function
7786
// Purpose: filter required fixtures
78-
func GetFiles(pref, ext string, dirs ...string) ([]string, error) {
87+
func GetFiles(pref string, exclusionSuffixes []string, dirs ...string) ([]string, error) {
7988
var res []string
8089
for _, d := range dirs {
81-
matches, err := filepath.Glob(filepath.Join(d, pref+"*"+ext))
90+
matches, err := filepath.Glob(filepath.Join(d, pref+"*"))
8291
if err != nil {
8392
return nil, err
8493
}
85-
res = append(res, matches...)
94+
95+
for _, m := range matches {
96+
if stringInSlice(m, exclusionSuffixes) {
97+
continue
98+
}
99+
res = append(res, m)
100+
}
86101
}
87102
return res, nil
88103
}

0 commit comments

Comments
 (0)