setDistributeDirectory($this->getDistributeDirectory()); } private function runJavaTest(string $testName, ?string $namespace = null): array { return $this->runJavaWithClassFileNameTest( $testName, null, $namespace ); } private function runJavaEntryPointTest(string $testName, ?string $namespace = null): array { return $this->runJavaWithClassFileNameTest( $testName, Runtime::PHP_ENTRY_POINT_CLASS_NAME, $namespace ); } private function runJavaWithClassFileNameTest(string $testName, string $classFileName = null, ?string $namespace = null) { $name = $this->getClassNameByTestName($testName); (new PackageAssembler($this->getFileStream($name))) ->assemble(); $classPath = ltrim(($namespace ?? '') . '.' . ($classFileName ?? $name), '.'); exec( 'cd ' . $this->getDistributeDirectory() . ' && java ' . $classPath, $output, $return ); return [$output, $return]; } }