(t *testing.T, dir string, cg *ClassGen)
| 244 | } |
| 245 | |
| 246 | func genJavaPackages(t *testing.T, dir string, cg *ClassGen) { |
| 247 | buf := cg.Buf |
| 248 | cg.Buf = new(bytes.Buffer) |
| 249 | pkgBase := filepath.Join(dir, "src", "Java") |
| 250 | if err := os.MkdirAll(pkgBase, 0700); err != nil { |
| 251 | t.Fatal(err) |
| 252 | } |
| 253 | for i, jpkg := range cg.Packages() { |
| 254 | pkgDir := filepath.Join(pkgBase, jpkg) |
| 255 | if err := os.MkdirAll(pkgDir, 0700); err != nil { |
| 256 | t.Fatal(err) |
| 257 | } |
| 258 | pkgFile := filepath.Join(pkgDir, "package.go") |
| 259 | cg.Buf.Reset() |
| 260 | cg.GenPackage(i) |
| 261 | if err := os.WriteFile(pkgFile, cg.Buf.Bytes(), 0600); err != nil { |
| 262 | t.Fatal(err) |
| 263 | } |
| 264 | io.Copy(buf, cg.Buf) |
| 265 | } |
| 266 | cg.Buf.Reset() |
| 267 | cg.GenInterfaces() |
| 268 | clsFile := filepath.Join(pkgBase, "interfaces.go") |
| 269 | if err := os.WriteFile(clsFile, cg.Buf.Bytes(), 0600); err != nil { |
| 270 | t.Fatal(err) |
| 271 | } |
| 272 | io.Copy(buf, cg.Buf) |
| 273 | cg.Buf = buf |
| 274 | |
| 275 | gocmd := filepath.Join(runtime.GOROOT(), "bin", "go") |
| 276 | cmd := exec.Command( |
| 277 | gocmd, |
| 278 | "install", |
| 279 | "-pkgdir="+filepath.Join(dir, "pkg", build.Default.GOOS+"_"+build.Default.GOARCH), |
| 280 | "Java/...", |
| 281 | ) |
| 282 | cmd.Env = append(os.Environ(), "GOPATH="+dir, "GO111MODULE=off") |
| 283 | if out, err := cmd.CombinedOutput(); err != nil { |
| 284 | t.Fatalf("failed to go install the generated Java wrappers: %v: %s", err, string(out)) |
| 285 | } |
| 286 | } |
| 287 | |
| 288 | func TestGenJava(t *testing.T) { |
| 289 | allTests := tests |
no test coverage detected