Skip to content

Commit

Permalink
Meta - fix json generation (#522)
Browse files Browse the repository at this point in the history
* fix json generation

* modify qbft generator

* fix generation of types jsons

* fix permission
  • Loading branch information
MatusKysel authored Feb 19, 2025
1 parent de6806c commit 3a9cb8e
Show file tree
Hide file tree
Showing 4 changed files with 40 additions and 135 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
## IDE
.idea
.DS_Store
.vscode

# binaries
.bin
Expand Down
58 changes: 13 additions & 45 deletions qbft/spectest/generate/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import (
"os"
"path/filepath"
"reflect"
"runtime"
"strings"

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

//go:generate go run main.go

var testsDir = "tests"
var stateComparisonDir = "state_comparison"

func main() {
clearStateComparisonFolder()
clearTestsFolder()
Expand All @@ -38,13 +40,6 @@ func main() {
log.Fatalf("did not generate all tests\n")
}

// write small json files for each test
// try to create directory if it doesn't exist
_, basedir, _, ok := runtime.Caller(0)
if !ok {
log.Fatalf("no caller info")
}
testsDir := filepath.Join(strings.TrimSuffix(basedir, "main.go"), "tests")
if err := os.MkdirAll(testsDir, 0700); err != nil && !os.IsExist(err) {
panic(err.Error())
}
Expand All @@ -55,7 +50,7 @@ func main() {
}
name = strings.ReplaceAll(name, " ", "_")
name = strings.ReplaceAll(name, "*", "")
name = "tests/" + name
name = filepath.Join(testsDir, name)
writeJson(name, byts)
}

Expand All @@ -64,7 +59,7 @@ func main() {
if err != nil {
panic(err.Error())
}
writeJson("tests", byts)
writeJson(testsDir, byts)

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

func clearStateComparisonFolder() {
_, basedir, _, ok := runtime.Caller(0)
if !ok {
panic("no caller info")
}
dir := filepath.Join(strings.TrimSuffix(basedir, "main.go"), "state_comparison")

if err := os.RemoveAll(dir); err != nil {
if err := os.RemoveAll(stateComparisonDir); err != nil {
panic(err.Error())
}

if err := os.Mkdir(dir, 0700); err != nil {
if err := os.Mkdir(stateComparisonDir, 0700); err != nil {
panic(err.Error())
}
}

func clearTestsFolder() {
_, basedir, _, ok := runtime.Caller(0)
if !ok {
panic("no caller info")
}
dir := filepath.Join(strings.TrimSuffix(basedir, "main.go"), "tests")

if err := os.RemoveAll(dir); err != nil {
if err := os.RemoveAll(testsDir); err != nil {
panic(err.Error())
}

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

file := filepath.Join(scDir, fmt.Sprintf("%s.json", name))
log.Printf("writing state comparison json: %s\n", file)
if err := os.WriteFile(file, byts, 0400); err != nil {
if err := os.WriteFile(file, byts, 0664); err != nil {
panic(err.Error())
}
}

func scDir(testType string) string {
_, basedir, _, ok := runtime.Caller(0)
if !ok {
panic("no caller info")
}
basedir = strings.TrimSuffix(basedir, "main.go")
scDir := comparable2.GetSCDir(basedir, testType)
return scDir
return comparable2.GetSCDir(".", testType)
}

func writeJson(name string, data []byte) {
_, basedir, _, ok := runtime.Caller(0)
if !ok {
panic("no caller info")
}
basedir = strings.TrimSuffix(basedir, "main.go")

// try to create directory if it doesn't exist
_ = os.Mkdir(basedir, os.ModeDir)

file := filepath.Join(basedir, name+".json")
file := name + ".json"
log.Printf("writing spec tests json to: %s\n", file)
if err := os.WriteFile(file, data, 0400); err != nil {
if err := os.WriteFile(file, data, 0664); err != nil {
panic(err.Error())
}
}
58 changes: 13 additions & 45 deletions ssv/spectest/generate/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import (
"os"
"path/filepath"
"reflect"
"runtime"
"strings"

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

//go:generate go run main.go

var testsDir = "tests"
var stateComparisonDir = "state_comparison"

func main() {
clearStateComparisonFolder()
clearTestsFolder()
Expand All @@ -38,13 +40,6 @@ func main() {
log.Fatalf("did not generate all tests\n")
}

// write small json files for each test
// try to create directory if it doesn't exist
_, basedir, _, ok := runtime.Caller(0)
if !ok {
log.Fatalf("no caller info")
}
testsDir := filepath.Join(strings.TrimSuffix(basedir, "main.go"), "tests")
if err := os.MkdirAll(testsDir, 0700); err != nil && !os.IsExist(err) {
panic(err.Error())
}
Expand All @@ -55,7 +50,7 @@ func main() {
}
name = strings.ReplaceAll(name, " ", "_")
name = strings.ReplaceAll(name, "*", "")
name = "tests/" + name
name = filepath.Join(testsDir, name)
writeJson(name, byts)
}

Expand All @@ -64,7 +59,7 @@ func main() {
if err != nil {
panic(err.Error())
}
writeJson("tests", byts)
writeJson(testsDir, byts)

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

func clearStateComparisonFolder() {
_, basedir, _, ok := runtime.Caller(0)
if !ok {
panic("no caller info")
}
dir := filepath.Join(strings.TrimSuffix(basedir, "main.go"), "state_comparison")

if err := os.RemoveAll(dir); err != nil {
if err := os.RemoveAll(stateComparisonDir); err != nil {
panic(err.Error())
}

if err := os.Mkdir(dir, 0700); err != nil {
if err := os.Mkdir(stateComparisonDir, 0700); err != nil {
panic(err.Error())
}
}
Expand All @@ -109,17 +98,11 @@ func writeJsonStateComparison(name, testType string, post interface{}) {
}

func clearTestsFolder() {
_, basedir, _, ok := runtime.Caller(0)
if !ok {
panic("no caller info")
}
dir := filepath.Join(strings.TrimSuffix(basedir, "main.go"), "tests")

if err := os.RemoveAll(dir); err != nil {
if err := os.RemoveAll(testsDir); err != nil {
panic(err.Error())
}

if err := os.Mkdir(dir, 0700); err != nil {
if err := os.Mkdir(testsDir, 0700); err != nil {
panic(err.Error())
}
}
Expand All @@ -143,34 +126,19 @@ func writeSingleSCJson(path string, testType string, post interface{}) {
}

log.Printf("writing state comparison json: %s\n", file)
if err := os.WriteFile(file, byts, 0400); err != nil {
if err := os.WriteFile(file, byts, 0664); err != nil {
panic(err.Error())
}
}

func scDir(testType string) string {
_, basedir, _, ok := runtime.Caller(0)
if !ok {
panic("no caller info")
}
basedir = strings.TrimSuffix(basedir, "main.go")
scDir := comparable2.GetSCDir(basedir, testType)
return scDir
return comparable2.GetSCDir(".", testType)
}

func writeJson(name string, data []byte) {
_, basedir, _, ok := runtime.Caller(0)
if !ok {
panic("no caller info")
}
basedir = strings.TrimSuffix(basedir, "main.go")

// try to create directory if it doesn't exist
_ = os.Mkdir(basedir, os.ModeDir)

file := filepath.Join(basedir, name+".json")
file := name + ".json"
log.Printf("writing spec tests json to: %s\n", file)
if err := os.WriteFile(file, data, 0400); err != nil {
if err := os.WriteFile(file, data, 0664); err != nil {
panic(err.Error())
}
}
58 changes: 13 additions & 45 deletions types/spectest/generate/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import (
"os"
"path/filepath"
"reflect"
"runtime"
"strings"

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

//go:generate go run main.go

var testsDir = "tests"
var stateComparisonDir = "state_comparison"

func main() {
clearStateComparisonFolder()
clearTestsFolder()
Expand All @@ -33,13 +35,6 @@ func main() {
log.Fatalf("did not generate all tests\n")
}

// write small json files for each test
// try to create directory if it doesn't exist
_, basedir, _, ok := runtime.Caller(0)
if !ok {
log.Fatalf("no caller info")
}
testsDir := filepath.Join(strings.TrimSuffix(basedir, "main.go"), "tests")
if err := os.MkdirAll(testsDir, 0700); err != nil && !os.IsExist(err) {
panic(err.Error())
}
Expand All @@ -50,7 +45,7 @@ func main() {
}
name = strings.ReplaceAll(name, " ", "_")
name = strings.ReplaceAll(name, "*", "")
name = "tests/" + name
name = filepath.Join(testsDir, name)
writeJson(name, byts)
}

Expand All @@ -59,7 +54,7 @@ func main() {
if err != nil {
panic(err.Error())
}
writeJson("tests", byts)
writeJson(testsDir, byts)

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

func clearStateComparisonFolder() {
_, basedir, _, ok := runtime.Caller(0)
if !ok {
panic("no caller info")
}
dir := filepath.Join(strings.TrimSuffix(basedir, "main.go"), "state_comparison")

if err := os.RemoveAll(dir); err != nil {
if err := os.RemoveAll(stateComparisonDir); err != nil {
panic(err.Error())
}

if err := os.Mkdir(dir, 0700); err != nil {
if err := os.Mkdir(stateComparisonDir, 0700); err != nil {
panic(err.Error())
}
}

func clearTestsFolder() {
_, basedir, _, ok := runtime.Caller(0)
if !ok {
panic("no caller info")
}
dir := filepath.Join(strings.TrimSuffix(basedir, "main.go"), "tests")

if err := os.RemoveAll(dir); err != nil {
if err := os.RemoveAll(testsDir); err != nil {
panic(err.Error())
}

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

file := filepath.Join(scDir, fmt.Sprintf("%s.json", name))
log.Printf("writing state comparison json: %s\n", file)
if err := os.WriteFile(file, byts, 0400); err != nil {
if err := os.WriteFile(file, byts, 0664); err != nil {
panic(err.Error())
}
}

func scDir(testType string) string {
_, basedir, _, ok := runtime.Caller(0)
if !ok {
panic("no caller info")
}
basedir = strings.TrimSuffix(basedir, "main.go")
scDir := comparable2.GetSCDir(basedir, testType)
return scDir
return comparable2.GetSCDir(".", testType)
}

func writeJson(name string, data []byte) {
_, basedir, _, ok := runtime.Caller(0)
if !ok {
panic("no caller info")
}
basedir = strings.TrimSuffix(basedir, "main.go")

// try to create directory if it doesn't exist
_ = os.Mkdir(basedir, os.ModeDir)

file := filepath.Join(basedir, name+".json")
file := name + ".json"
log.Printf("writing spec tests json to: %s\n", file)
if err := os.WriteFile(file, data, 0400); err != nil {
if err := os.WriteFile(file, data, 0664); err != nil {
panic(err.Error())
}
}

0 comments on commit 3a9cb8e

Please sign in to comment.