Skip to content

Commit

Permalink
Create yamly.yml (#3)
Browse files Browse the repository at this point in the history
* Create yamly.yml

* Update yamly.yml

* test module fix lint, fix workflow file
  • Loading branch information
KSpaceer committed Sep 21, 2023
1 parent 7db65d2 commit f7fc794
Show file tree
Hide file tree
Showing 2 changed files with 81 additions and 20 deletions.
58 changes: 58 additions & 0 deletions .github/workflows/yamly.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
name: yamly

on:
push:
branches:
- "main"
pull_request:

jobs:
test:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
go-version: [ 1.21 ]
name: Tests with Go ${{ matrix.go-version }}

steps:
- uses: actions/checkout@v3

- name: Set up Go ${{ matrix.go-version }}
uses: actions/setup-go@v4
with:
go-version: ${{ matrix.go-version }}

- name: Build
run: go build -v ./...

- name: Build engines
run: find ./engines -type f -name go.mod -execdir go build -v ./... \;

- name: Test
run: go test -race -v ./...

- name: Test engines
run: find ./engines -type f -name go.mod -execdir go test -race -v ./... \;

- name: Test integration
run: cd ./test && go test -race -v ./...
lint:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
module: [".", "./engines/yayamls", "./engines/goyaml", "./test"]
steps:
- uses: actions/checkout@v3
- uses: actions/setup-go@v4
with:
go-version: 1.21
- name: golangci-lint
uses: golangci/golangci-lint-action@v3
with:
version: v1.54
working-directory: ${{ matrix.module }}
args: --timeout=5m -v


43 changes: 23 additions & 20 deletions test/yamly_gen_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ import (
)

func TestGenerator_EngineGoYAML(t *testing.T) {
var mainCode = `
t.Parallel()
mainCode := `
package main
import (
Expand Down Expand Up @@ -55,9 +56,9 @@ func main() {
}
`

var mainCodeTemplate = template.Must(template.New("maincode").Parse(mainCode))
mainCodeTemplate := template.Must(template.New("maincode").Parse(mainCode))

var typeDefinitionCode = `
typeDefinitionCode := `
package {{ .PkgName }}
{{ if .Imports }}
Expand All @@ -75,13 +76,14 @@ type ExtraType{{ $i }} {{ $typedef }}
{{ end }}
`

var typeDefinitionCodeTemplate = template.Must(template.New("typedef").Parse(typeDefinitionCode))
typeDefinitionCodeTemplate := template.Must(template.New("typedef").Parse(typeDefinitionCode))

runEngineTest(t, mainCodeTemplate, typeDefinitionCodeTemplate, "goyaml")
}

func TestGenerator_EngineYAYAMLS(t *testing.T) {
var mainCode = `
t.Parallel()
mainCode := `
package main
import (
Expand Down Expand Up @@ -120,9 +122,9 @@ func main() {
}
`

var mainCodeTemplate = template.Must(template.New("maincode").Parse(mainCode))
mainCodeTemplate := template.Must(template.New("maincode").Parse(mainCode))

var typeDefinitionCode = `
typeDefinitionCode := `
package {{ .PkgName }}
{{ if .Imports }}
Expand All @@ -140,7 +142,7 @@ type ExtraType{{ $i }} {{ $typedef }}
{{ end }}
`

var typeDefinitionCodeTemplate = template.Must(template.New("typedef").Parse(typeDefinitionCode))
typeDefinitionCodeTemplate := template.Must(template.New("typedef").Parse(typeDefinitionCode))

runEngineTest(t, mainCodeTemplate, typeDefinitionCodeTemplate, "yayamls")
}
Expand Down Expand Up @@ -228,14 +230,16 @@ func runEngineTest(
name: "linked list",
PkgName: "linkedlist",
TypeDef: "struct{ Value int; Next *TestType; }",
Value: "linkedlist.TestType{Value: 10, Next: &linkedlist.TestType{Value: 100, Next: &linkedlist.TestType{Value: 1000}}}",
Value: "linkedlist.TestType{Value: 10, Next: &linkedlist.TestType{Value: 100, Next: " +
"&linkedlist.TestType{Value: 1000}}}",
},
{
name: "linked list (with flags)",
flags: []string{"--encode-pointer-receiver", "--disallow-unknown-fields", "--omitempty"},
PkgName: "linkedlist",
TypeDef: "struct{ Value int; Next *TestType; }",
Value: "&linkedlist.TestType{Value: 10, Next: &linkedlist.TestType{Value: 100, Next: &linkedlist.TestType{Value: 1000}}}",
name: "linked list (with flags)",
flags: []string{"--encode-pointer-receiver", "--disallow-unknown-fields", "--omitempty"},
PkgName: "linkedlist",
TypeDef: "struct{ Value int; Next *TestType; }",
Value: "&linkedlist.TestType{Value: 10, Next: &linkedlist.TestType{Value: 100, Next: " +
"&linkedlist.TestType{Value: 1000}}}",
UsePointer: true,
},
{
Expand Down Expand Up @@ -272,17 +276,17 @@ func runEngineTest(

root = path.Clean(root)

if err := os.Mkdir(root+"/cmd", 0755); err != nil {
if err := os.Mkdir(root+"/cmd", 0o755); err != nil {
t.Fatalf("failed to create directory for main package: %v", err)
}

if err := os.Mkdir(root+"/"+tc.PkgName, 0755); err != nil {
if err := os.Mkdir(root+"/"+tc.PkgName, 0o755); err != nil {
t.Fatalf("failed to create directory for type package: %v", err)
}

tc.TmpRoot = root

mainFile, err := os.OpenFile(root+"/cmd/main.go", os.O_CREATE|os.O_WRONLY, 0755)
mainFile, err := os.OpenFile(root+"/cmd/main.go", os.O_CREATE|os.O_WRONLY, 0o755)
if err != nil {
t.Fatalf("failed to create main.go: %v", err)
}
Expand All @@ -292,7 +296,7 @@ func runEngineTest(
t.Fatalf("failed to execute main code template: %v", err)
}

typeFile, err := os.OpenFile(root+"/"+tc.PkgName+"/type.go", os.O_CREATE|os.O_WRONLY, 0755)
typeFile, err := os.OpenFile(root+"/"+tc.PkgName+"/type.go", os.O_CREATE|os.O_WRONLY, 0o755)
if err != nil {
t.Fatalf("failed to create type.go: %v", err)
}
Expand Down Expand Up @@ -323,7 +327,7 @@ func runEngineTest(
t.Logf("GENERATED DATA:\n\n\n%s\n\n\n===========", string(data))
}

cmd = exec.Command("go", "run", root+"/cmd/main.go")
cmd = exec.Command("go", "run", root+"/cmd/main.go") // nolint: gosec
cmd.Stdout = &stdout
cmd.Stderr = &stderr

Expand All @@ -338,5 +342,4 @@ func runEngineTest(
}
})
}

}

0 comments on commit f7fc794

Please sign in to comment.