#!/usr/bin/env python3 # Copyright 2022 The IREE Authors # # Licensed under the Apache License v2.0 with LLVM Exceptions. # See https://llvm.org/LICENSE.txt for license information. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception import pathlib import tempfile import unittest import common.common_arguments class CommonArgumentsTest(unittest.TestCase): def setUp(self): self._build_dir_manager = tempfile.TemporaryDirectory() self.build_dir = pathlib.Path(self._build_dir_manager.name).resolve() self.e2e_test_artifacts_dir = self.build_dir / "e2e_test_artifacts" self.e2e_test_artifacts_dir.mkdir() self.normal_tool_dir = self.build_dir / "normal_tool" self.normal_tool_dir.mkdir() self.traced_tool_dir = self.build_dir / "traced_tool" self.traced_tool_dir.mkdir() self.trace_capture_tool = self.build_dir / "tracy_capture" # Create capture tool with executable file mode. self.trace_capture_tool.touch(mode=0o755) self.execution_config = self.build_dir / "execution_config.json" self.execution_config.touch() def tearDown(self): self._build_dir_manager.cleanup() def test_parser(self): common.common_arguments.Parser().parse_args( [ f"--normal_benchmark_tool_dir={self.normal_tool_dir}", f"--traced_benchmark_tool_dir={self.traced_tool_dir}", f"--trace_capture_tool={self.trace_capture_tool}", f"--e2e_test_artifacts_dir={self.e2e_test_artifacts_dir}", f"--execution_benchmark_config={self.execution_config}", "--target_device=test", ] ) def test_parser_check_normal_benchmark_tool(self): arg_parser = common.common_arguments.Parser() with self.assertRaises(SystemExit): arg_parser.parse_args( [ "--normal_benchmark_tool_dir=nonexistent", f"--e2e_test_artifacts_dir={self.e2e_test_artifacts_dir}", f"--execution_benchmark_config={self.execution_config}", "--target_device=test", ] ) def test_parser_check_traced_benchmark_tool(self): arg_parser = common.common_arguments.Parser() with self.assertRaises(SystemExit): arg_parser.parse_args( [ "--traced_benchmark_tool_dir=nonexistent", f"--e2e_test_artifacts_dir={self.e2e_test_artifacts_dir}", f"--execution_benchmark_config={self.execution_config}", "--target_device=test", ] ) def test_parser_check_trace_capture_tool(self): arg_parser = common.common_arguments.Parser() with self.assertRaises(SystemExit): arg_parser.parse_args( [ "--trace_capture_tool=nonexistent", f"--e2e_test_artifacts_dir={self.e2e_test_artifacts_dir}", f"--execution_benchmark_config={self.execution_config}", "--target_device=test", ] ) if __name__ == "__main__": unittest.main()