/
make.go
93 lines (80 loc) · 2.12 KB
/
make.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
package main
import (
"flag"
"fmt"
"log"
"os"
"os/exec"
"path/filepath"
"github.com/nordicdyno/badger-spoiler/buildtools"
)
var badgerVersion string
func main() {
passArgs := argsParser()
badgerBuildTag := buildtools.BadgerBuildTag(badgerVersion)
fmt.Println("badgerVersion:", badgerVersion)
fmt.Println("badgerBuildTag:", badgerBuildTag)
fmt.Println("passArgs:", passArgs)
// compile data generator
buildModName := "datagen"
buildDir := "_" + buildModName
err := buildtools.InitBadgerModule(buildModName, buildDir, badgerVersion)
if err != nil {
log.Fatalf("datagen init module failed: %v", err)
}
cmdBuildGen := exec.Command("go", "build", "-v",
"-tags", badgerBuildTag,
"-o", filepath.Join("..", "bin", "datagen"),
".")
cmdBuildGen.Dir = buildDir
cmdBuildGen.Stdout = os.Stdout
cmdBuildGen.Stderr = os.Stderr
fmt.Println("BUILD DATA GEN:", cmdBuildGen.String())
if err = cmdBuildGen.Run(); err != nil {
log.Fatalf("datagen binary compilation failed: %v", err)
}
testModName := "spoiler_tests"
testDir := "_" + testModName
err = buildtools.InitBadgerModule(testModName, testDir, badgerVersion)
if err != nil {
log.Fatalf("Failed init module %v in directory %v: %v\n", testDir, testDir, err)
}
// run tests
args := []string{"test"}
args = append(args, "-tags", badgerBuildTag)
for _, arg := range passArgs {
args = append(args, arg)
}
args = append(args, ".")
cmdTest := exec.Command("go", args...)
cmdTest.Dir = testDir
cmdTest.Stdout = os.Stdout
cmdTest.Stderr = os.Stderr
fmt.Println("RUN TEST:", cmdTest.String())
if err := cmdTest.Run(); err != nil {
log.Fatalf("Failed run tests in directory %v: %v\n", testDir, err)
}
}
func argsParser() []string {
var pass bool
var args []string
var passArgs []string
for _, arg := range os.Args[1:] {
if arg == "--" {
pass = true
continue
}
if pass {
passArgs = append(passArgs, arg)
continue
}
args = append(args, arg)
}
f := flag.NewFlagSet("flag", flag.ExitOnError)
f.StringVar(&badgerVersion, "v", buildtools.BadgerDefaultVersion, "badger version")
err := f.Parse(args)
if err != nil {
panic(err)
}
return passArgs
}