MCPcopy Create free account
hub / github.com/EmbeddedRPC/erpc / JavaTests

Class JavaTests

test/run_unit_tests.py:607–713  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

605
606
607class JavaTests(AbstractTests):
608
609 def __init__(self, maven: str, tcp_port: int, serial_port: str | None = None, **kwargs: dict[str, Any]) -> None:
610 super().__init__(**kwargs)
611
612 self.maven = Path(shutil.which("mvn")) if maven == "mvn" else Path(maven)
613 self.tcp_port = tcp_port
614 self.serial_port = serial_port
615 self.java_test_dir = self.test_dir.joinpath("java_impl_tests/src/test/java/io/github/embeddedrpc/erpc/tests/")
616 self.java_result_dir = self.test_dir.joinpath("java_impl_tests/target/surefire-reports")
617
618 def init_tests(self) -> bool:
619 return run([self.maven, "generate-test-sources"], cwd=self.test_dir.joinpath("java_impl_tests")).returncode == 0
620
621 def test_case_client_exist(self, test_case: str) -> bool:
622 return self.java_test_dir.joinpath("client").joinpath(f"{to_pascal_case(test_case)}.java").exists()
623
624 def test_case_server_exist(self, test_case: str) -> bool:
625 return self.java_test_dir.joinpath("server").joinpath(f"{to_pascal_case(test_case)}Server.java").exists()
626
627 def get_result_file(self) -> Path:
628 original_file = self.java_result_dir.joinpath(
629 f"TEST-io.github.embeddedrpc.erpc.tests.client.{to_pascal_case(self.test_case)}.xml")
630 new_file = self.result_dir.joinpath(f"{self.test_suit_name}_{self.test_case}.xml")
631 if original_file.exists():
632 shutil.move(original_file, new_file)
633 else:
634 self.create_failed_test_suite_xml(self.test_case, new_file)
635
636 return new_file
637
638 def client(self) -> None:
639 mvn_command = [
640 self.maven, "test",
641 f"-Dtest={to_pascal_case(self.test_case)}",
642 "-Dclient",
643 *self.client_extra_parameters
644 ]
645
646 if self.transport == "tcp":
647 mvn_command.append(f"-Dport={str(self.tcp_port)}")
648 elif self.transport == "serial" and self.serial_port:
649 mvn_command.append(f"-Dserial={self.serial_port}")
650 else:
651 raise ValueError
652
653 self.client_process = Popen(
654 mvn_command,
655 cwd=self.test_dir.joinpath('java_impl_tests')
656 )
657
658 def wait_client(self, timeout: int = 5) -> bool:
659 return super().wait_client(10)
660
661 def server(self) -> None:
662 mvn_command = [
663 self.maven, "test",
664 f"-Dtest={to_pascal_case(self.test_case)}Server",

Callers 1

mainFunction · 0.85

Calls

no outgoing calls

Tested by 1

mainFunction · 0.68