test: improvement on the generator, small fixes

This commit is contained in:
Michael Muré
2024-12-04 19:55:29 +01:00
parent 72e0f353e7
commit 0f59088d0b
9 changed files with 268 additions and 98 deletions

View File

@@ -213,33 +213,60 @@ func (g *generator) writeGoFile() error {
err = f.Close()
}()
fmt.Fprintln(f, "// Code generated by delegationtest - DO NOT EDIT.")
fmt.Fprintln(f)
fmt.Fprintln(f, "package delegationtest")
fmt.Fprintln(f)
fmt.Fprintln(f, "import \"github.com/ipfs/go-cid\"")
_, _ = fmt.Fprintln(f, "// Code generated by delegationtest - DO NOT EDIT.")
_, _ = fmt.Fprintln(f)
_, _ = fmt.Fprintln(f, "package delegationtest")
_, _ = fmt.Fprintln(f)
_, _ = fmt.Fprintln(f, "import (")
_, _ = fmt.Fprintln(f, "\t\"github.com/ipfs/go-cid\"")
_, _ = fmt.Fprintln(f)
_, _ = fmt.Fprintln(f, "\t\"github.com/ucan-wg/go-ucan/token/delegation\"")
_, _ = fmt.Fprintln(f, ")")
refs := make(map[cid.Cid]string, len(g.dlgs))
for _, d := range g.dlgs {
refs[d.id] = d.name + "CID"
fmt.Fprintln(f)
fmt.Fprintln(f, "var (")
fmt.Fprintf(f, "\t%s = cid.MustParse(\"%s\")\n", d.name+"CID", d.id.String())
fmt.Fprintf(f, "\t%s = mustGetDelegation(%s)\n", d.name, d.name+"CID")
fmt.Fprintln(f, ")")
_, _ = fmt.Fprintln(f)
_, _ = fmt.Fprintln(f, "var (")
_, _ = fmt.Fprintf(f, "\t%sCID = cid.MustParse(\"%s\")\n", d.name, d.id.String())
_, _ = fmt.Fprintf(f, "\t%sSealed = mustGetBundle(%s).Sealed\n", d.name, d.name+"CID")
_, _ = fmt.Fprintf(f, "\t%sBundle = mustGetBundle(%s)\n", d.name, d.name+"CID")
_, _ = fmt.Fprintf(f, "\t%s = mustGetBundle(%s).Decoded\n", d.name, d.name+"CID")
_, _ = fmt.Fprintln(f, ")")
}
_, _ = fmt.Fprintln(f)
_, _ = fmt.Fprintln(f, "var AllTokens = []*delegation.Token{")
for _, d := range g.dlgs {
_, _ = fmt.Fprintf(f, "\t%s,\n", d.name)
}
_, _ = fmt.Fprintln(f, "}")
_, _ = fmt.Fprintln(f)
_, _ = fmt.Fprintln(f, "var AllBundles = []*delegation.Bundle{")
for _, d := range g.dlgs {
_, _ = fmt.Fprintf(f, "\t%sBundle,\n", d.name)
}
_, _ = fmt.Fprintln(f, "}")
_, _ = fmt.Fprintln(f)
_, _ = fmt.Fprintln(f, "var cidToName = map[cid.Cid]string{")
for _, d := range g.dlgs {
_, _ = fmt.Fprintf(f, "\t%sCID: \"%s\",\n", d.name, d.name)
}
_, _ = fmt.Fprintln(f, "}")
for _, c := range g.chains {
fmt.Fprintln(f)
fmt.Fprintf(f, "var %s = []cid.Cid{\n", c.name)
_, _ = fmt.Fprintln(f)
_, _ = fmt.Fprintf(f, "var %s = []cid.Cid{\n", c.name)
for _, d := range slices.Backward(c.prf) {
fmt.Fprintf(f, "\t%s,\n", refs[d])
_, _ = fmt.Fprintf(f, "\t%s,\n", refs[d])
}
fmt.Fprintln(f, "}")
_, _ = fmt.Fprintln(f, "}")
}
return err