cltest: decodeLinkFile
This commit is contained in:
@@ -17,10 +17,12 @@
|
|||||||
package cltest
|
package cltest
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"archive/zip"
|
||||||
"go/ast"
|
"go/ast"
|
||||||
"go/parser"
|
"go/parser"
|
||||||
"go/token"
|
"go/token"
|
||||||
"go/types"
|
"go/types"
|
||||||
|
"io"
|
||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
"path"
|
"path"
|
||||||
@@ -63,10 +65,35 @@ func FromDir(t *testing.T, sel, relDir string, byLLGen bool) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// *.ll => *.lla
|
||||||
|
func decodeLinkFile(llFile string) (data []byte, err error) {
|
||||||
|
zipFile := llFile + "a"
|
||||||
|
zipf, err := zip.OpenReader(zipFile)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
defer zipf.Close()
|
||||||
|
f, err := zipf.Open("llgo_autogen.ll")
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
defer f.Close()
|
||||||
|
data, err = io.ReadAll(f)
|
||||||
|
if err == nil {
|
||||||
|
os.WriteFile(llFile, data, 0644)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
func Pkg(t *testing.T, pkgPath, outFile string) {
|
func Pkg(t *testing.T, pkgPath, outFile string) {
|
||||||
b, err := os.ReadFile(outFile)
|
b, err := os.ReadFile(outFile)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal("ReadFile failed:", err)
|
if !os.IsNotExist(err) {
|
||||||
|
t.Fatal("ReadFile failed:", err)
|
||||||
|
}
|
||||||
|
if b, err = decodeLinkFile(outFile); err != nil {
|
||||||
|
t.Fatal("decodeLinkFile failed:", err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
expected := string(b)
|
expected := string(b)
|
||||||
if v := llgen.GenFrom(pkgPath); v != expected {
|
if v := llgen.GenFrom(pkgPath); v != expected {
|
||||||
|
|||||||
Reference in New Issue
Block a user