cltest: decodeLinkFile

This commit is contained in:
xushiwei
2024-05-07 21:18:04 +08:00
parent d478efe444
commit 4e1450bbb5

View File

@@ -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 {