Skip to content

Commit 3a9cb8e

Browse files
authored
Meta - fix json generation (#522)
* fix json generation * modify qbft generator * fix generation of types jsons * fix permission
1 parent de6806c commit 3a9cb8e

File tree

4 files changed

+40
-135
lines changed

4 files changed

+40
-135
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
## IDE
1818
.idea
1919
.DS_Store
20+
.vscode
2021

2122
# binaries
2223
.bin

qbft/spectest/generate/main.go

+13-45
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import (
77
"os"
88
"path/filepath"
99
"reflect"
10-
"runtime"
1110
"strings"
1211

1312
"github.com/pkg/errors"
@@ -19,6 +18,9 @@ import (
1918

2019
//go:generate go run main.go
2120

21+
var testsDir = "tests"
22+
var stateComparisonDir = "state_comparison"
23+
2224
func main() {
2325
clearStateComparisonFolder()
2426
clearTestsFolder()
@@ -38,13 +40,6 @@ func main() {
3840
log.Fatalf("did not generate all tests\n")
3941
}
4042

41-
// write small json files for each test
42-
// try to create directory if it doesn't exist
43-
_, basedir, _, ok := runtime.Caller(0)
44-
if !ok {
45-
log.Fatalf("no caller info")
46-
}
47-
testsDir := filepath.Join(strings.TrimSuffix(basedir, "main.go"), "tests")
4843
if err := os.MkdirAll(testsDir, 0700); err != nil && !os.IsExist(err) {
4944
panic(err.Error())
5045
}
@@ -55,7 +50,7 @@ func main() {
5550
}
5651
name = strings.ReplaceAll(name, " ", "_")
5752
name = strings.ReplaceAll(name, "*", "")
58-
name = "tests/" + name
53+
name = filepath.Join(testsDir, name)
5954
writeJson(name, byts)
6055
}
6156

@@ -64,7 +59,7 @@ func main() {
6459
if err != nil {
6560
panic(err.Error())
6661
}
67-
writeJson("tests", byts)
62+
writeJson(testsDir, byts)
6863

6964
// write state comparison json files
7065
for _, testF := range spectest.AllTests {
@@ -79,33 +74,21 @@ func main() {
7974
}
8075

8176
func clearStateComparisonFolder() {
82-
_, basedir, _, ok := runtime.Caller(0)
83-
if !ok {
84-
panic("no caller info")
85-
}
86-
dir := filepath.Join(strings.TrimSuffix(basedir, "main.go"), "state_comparison")
87-
88-
if err := os.RemoveAll(dir); err != nil {
77+
if err := os.RemoveAll(stateComparisonDir); err != nil {
8978
panic(err.Error())
9079
}
9180

92-
if err := os.Mkdir(dir, 0700); err != nil {
81+
if err := os.Mkdir(stateComparisonDir, 0700); err != nil {
9382
panic(err.Error())
9483
}
9584
}
9685

9786
func clearTestsFolder() {
98-
_, basedir, _, ok := runtime.Caller(0)
99-
if !ok {
100-
panic("no caller info")
101-
}
102-
dir := filepath.Join(strings.TrimSuffix(basedir, "main.go"), "tests")
103-
104-
if err := os.RemoveAll(dir); err != nil {
87+
if err := os.RemoveAll(testsDir); err != nil {
10588
panic(err.Error())
10689
}
10790

108-
if err := os.Mkdir(dir, 0700); err != nil {
91+
if err := os.Mkdir(testsDir, 0700); err != nil {
10992
panic(err.Error())
11093
}
11194
}
@@ -130,34 +113,19 @@ func writeJsonStateComparison(name, testType string, post interface{}) {
130113

131114
file := filepath.Join(scDir, fmt.Sprintf("%s.json", name))
132115
log.Printf("writing state comparison json: %s\n", file)
133-
if err := os.WriteFile(file, byts, 0400); err != nil {
116+
if err := os.WriteFile(file, byts, 0664); err != nil {
134117
panic(err.Error())
135118
}
136119
}
137120

138121
func scDir(testType string) string {
139-
_, basedir, _, ok := runtime.Caller(0)
140-
if !ok {
141-
panic("no caller info")
142-
}
143-
basedir = strings.TrimSuffix(basedir, "main.go")
144-
scDir := comparable2.GetSCDir(basedir, testType)
145-
return scDir
122+
return comparable2.GetSCDir(".", testType)
146123
}
147124

148125
func writeJson(name string, data []byte) {
149-
_, basedir, _, ok := runtime.Caller(0)
150-
if !ok {
151-
panic("no caller info")
152-
}
153-
basedir = strings.TrimSuffix(basedir, "main.go")
154-
155-
// try to create directory if it doesn't exist
156-
_ = os.Mkdir(basedir, os.ModeDir)
157-
158-
file := filepath.Join(basedir, name+".json")
126+
file := name + ".json"
159127
log.Printf("writing spec tests json to: %s\n", file)
160-
if err := os.WriteFile(file, data, 0400); err != nil {
128+
if err := os.WriteFile(file, data, 0664); err != nil {
161129
panic(err.Error())
162130
}
163131
}

ssv/spectest/generate/main.go

+13-45
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import (
77
"os"
88
"path/filepath"
99
"reflect"
10-
"runtime"
1110
"strings"
1211

1312
"github.com/pkg/errors"
@@ -20,6 +19,9 @@ import (
2019

2120
//go:generate go run main.go
2221

22+
var testsDir = "tests"
23+
var stateComparisonDir = "state_comparison"
24+
2325
func main() {
2426
clearStateComparisonFolder()
2527
clearTestsFolder()
@@ -38,13 +40,6 @@ func main() {
3840
log.Fatalf("did not generate all tests\n")
3941
}
4042

41-
// write small json files for each test
42-
// try to create directory if it doesn't exist
43-
_, basedir, _, ok := runtime.Caller(0)
44-
if !ok {
45-
log.Fatalf("no caller info")
46-
}
47-
testsDir := filepath.Join(strings.TrimSuffix(basedir, "main.go"), "tests")
4843
if err := os.MkdirAll(testsDir, 0700); err != nil && !os.IsExist(err) {
4944
panic(err.Error())
5045
}
@@ -55,7 +50,7 @@ func main() {
5550
}
5651
name = strings.ReplaceAll(name, " ", "_")
5752
name = strings.ReplaceAll(name, "*", "")
58-
name = "tests/" + name
53+
name = filepath.Join(testsDir, name)
5954
writeJson(name, byts)
6055
}
6156

@@ -64,7 +59,7 @@ func main() {
6459
if err != nil {
6560
panic(err.Error())
6661
}
67-
writeJson("tests", byts)
62+
writeJson(testsDir, byts)
6863

6964
// write state comparison json files
7065
for _, testF := range spectest.AllTests {
@@ -80,17 +75,11 @@ func main() {
8075
}
8176

8277
func clearStateComparisonFolder() {
83-
_, basedir, _, ok := runtime.Caller(0)
84-
if !ok {
85-
panic("no caller info")
86-
}
87-
dir := filepath.Join(strings.TrimSuffix(basedir, "main.go"), "state_comparison")
88-
89-
if err := os.RemoveAll(dir); err != nil {
78+
if err := os.RemoveAll(stateComparisonDir); err != nil {
9079
panic(err.Error())
9180
}
9281

93-
if err := os.Mkdir(dir, 0700); err != nil {
82+
if err := os.Mkdir(stateComparisonDir, 0700); err != nil {
9483
panic(err.Error())
9584
}
9685
}
@@ -109,17 +98,11 @@ func writeJsonStateComparison(name, testType string, post interface{}) {
10998
}
11099

111100
func clearTestsFolder() {
112-
_, basedir, _, ok := runtime.Caller(0)
113-
if !ok {
114-
panic("no caller info")
115-
}
116-
dir := filepath.Join(strings.TrimSuffix(basedir, "main.go"), "tests")
117-
118-
if err := os.RemoveAll(dir); err != nil {
101+
if err := os.RemoveAll(testsDir); err != nil {
119102
panic(err.Error())
120103
}
121104

122-
if err := os.Mkdir(dir, 0700); err != nil {
105+
if err := os.Mkdir(testsDir, 0700); err != nil {
123106
panic(err.Error())
124107
}
125108
}
@@ -143,34 +126,19 @@ func writeSingleSCJson(path string, testType string, post interface{}) {
143126
}
144127

145128
log.Printf("writing state comparison json: %s\n", file)
146-
if err := os.WriteFile(file, byts, 0400); err != nil {
129+
if err := os.WriteFile(file, byts, 0664); err != nil {
147130
panic(err.Error())
148131
}
149132
}
150133

151134
func scDir(testType string) string {
152-
_, basedir, _, ok := runtime.Caller(0)
153-
if !ok {
154-
panic("no caller info")
155-
}
156-
basedir = strings.TrimSuffix(basedir, "main.go")
157-
scDir := comparable2.GetSCDir(basedir, testType)
158-
return scDir
135+
return comparable2.GetSCDir(".", testType)
159136
}
160137

161138
func writeJson(name string, data []byte) {
162-
_, basedir, _, ok := runtime.Caller(0)
163-
if !ok {
164-
panic("no caller info")
165-
}
166-
basedir = strings.TrimSuffix(basedir, "main.go")
167-
168-
// try to create directory if it doesn't exist
169-
_ = os.Mkdir(basedir, os.ModeDir)
170-
171-
file := filepath.Join(basedir, name+".json")
139+
file := name + ".json"
172140
log.Printf("writing spec tests json to: %s\n", file)
173-
if err := os.WriteFile(file, data, 0400); err != nil {
141+
if err := os.WriteFile(file, data, 0664); err != nil {
174142
panic(err.Error())
175143
}
176144
}

types/spectest/generate/main.go

+13-45
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import (
77
"os"
88
"path/filepath"
99
"reflect"
10-
"runtime"
1110
"strings"
1211

1312
"github.com/ssvlabs/ssv-spec/types/spectest"
@@ -16,6 +15,9 @@ import (
1615

1716
//go:generate go run main.go
1817

18+
var testsDir = "tests"
19+
var stateComparisonDir = "state_comparison"
20+
1921
func main() {
2022
clearStateComparisonFolder()
2123
clearTestsFolder()
@@ -33,13 +35,6 @@ func main() {
3335
log.Fatalf("did not generate all tests\n")
3436
}
3537

36-
// write small json files for each test
37-
// try to create directory if it doesn't exist
38-
_, basedir, _, ok := runtime.Caller(0)
39-
if !ok {
40-
log.Fatalf("no caller info")
41-
}
42-
testsDir := filepath.Join(strings.TrimSuffix(basedir, "main.go"), "tests")
4338
if err := os.MkdirAll(testsDir, 0700); err != nil && !os.IsExist(err) {
4439
panic(err.Error())
4540
}
@@ -50,7 +45,7 @@ func main() {
5045
}
5146
name = strings.ReplaceAll(name, " ", "_")
5247
name = strings.ReplaceAll(name, "*", "")
53-
name = "tests/" + name
48+
name = filepath.Join(testsDir, name)
5449
writeJson(name, byts)
5550
}
5651

@@ -59,7 +54,7 @@ func main() {
5954
if err != nil {
6055
panic(err.Error())
6156
}
62-
writeJson("tests", byts)
57+
writeJson(testsDir, byts)
6358

6459
// write state comparison json files
6560
for _, testF := range spectest.AllTests {
@@ -69,33 +64,21 @@ func main() {
6964
}
7065

7166
func clearStateComparisonFolder() {
72-
_, basedir, _, ok := runtime.Caller(0)
73-
if !ok {
74-
panic("no caller info")
75-
}
76-
dir := filepath.Join(strings.TrimSuffix(basedir, "main.go"), "state_comparison")
77-
78-
if err := os.RemoveAll(dir); err != nil {
67+
if err := os.RemoveAll(stateComparisonDir); err != nil {
7968
panic(err.Error())
8069
}
8170

82-
if err := os.Mkdir(dir, 0700); err != nil {
71+
if err := os.Mkdir(stateComparisonDir, 0700); err != nil {
8372
panic(err.Error())
8473
}
8574
}
8675

8776
func clearTestsFolder() {
88-
_, basedir, _, ok := runtime.Caller(0)
89-
if !ok {
90-
panic("no caller info")
91-
}
92-
dir := filepath.Join(strings.TrimSuffix(basedir, "main.go"), "tests")
93-
94-
if err := os.RemoveAll(dir); err != nil {
77+
if err := os.RemoveAll(testsDir); err != nil {
9578
panic(err.Error())
9679
}
9780

98-
if err := os.Mkdir(dir, 0700); err != nil {
81+
if err := os.Mkdir(testsDir, 0700); err != nil {
9982
panic(err.Error())
10083
}
10184
}
@@ -120,34 +103,19 @@ func writeJsonStateComparison(name, testType string, post interface{}) {
120103

121104
file := filepath.Join(scDir, fmt.Sprintf("%s.json", name))
122105
log.Printf("writing state comparison json: %s\n", file)
123-
if err := os.WriteFile(file, byts, 0400); err != nil {
106+
if err := os.WriteFile(file, byts, 0664); err != nil {
124107
panic(err.Error())
125108
}
126109
}
127110

128111
func scDir(testType string) string {
129-
_, basedir, _, ok := runtime.Caller(0)
130-
if !ok {
131-
panic("no caller info")
132-
}
133-
basedir = strings.TrimSuffix(basedir, "main.go")
134-
scDir := comparable2.GetSCDir(basedir, testType)
135-
return scDir
112+
return comparable2.GetSCDir(".", testType)
136113
}
137114

138115
func writeJson(name string, data []byte) {
139-
_, basedir, _, ok := runtime.Caller(0)
140-
if !ok {
141-
panic("no caller info")
142-
}
143-
basedir = strings.TrimSuffix(basedir, "main.go")
144-
145-
// try to create directory if it doesn't exist
146-
_ = os.Mkdir(basedir, os.ModeDir)
147-
148-
file := filepath.Join(basedir, name+".json")
116+
file := name + ".json"
149117
log.Printf("writing spec tests json to: %s\n", file)
150-
if err := os.WriteFile(file, data, 0400); err != nil {
118+
if err := os.WriteFile(file, data, 0664); err != nil {
151119
panic(err.Error())
152120
}
153121
}

0 commit comments

Comments
 (0)