| import os | |
| from enum import Enum | |
| from typing import Dict, List, Set | |
| # <project folder> | |
| HOME_DIR = os.environ["HOME"] | |
| TOOLS_FOLDER = os.path.join( | |
| os.path.dirname(os.path.realpath(__file__)), os.path.pardir, os.path.pardir | |
| ) | |
| # <profile folder> | |
| PROFILE_DIR = os.path.join(TOOLS_FOLDER, "profile") | |
| JSON_FOLDER_BASE_DIR = os.path.join(PROFILE_DIR, "json") | |
| MERGED_FOLDER_BASE_DIR = os.path.join(PROFILE_DIR, "merged") | |
| SUMMARY_FOLDER_DIR = os.path.join(PROFILE_DIR, "summary") | |
| # <log path> | |
| LOG_DIR = os.path.join(PROFILE_DIR, "log") | |
| # test type, DO NOT change the name, it should be consistent with [buck query --output-attribute] result | |
| class TestType(Enum): | |
| CPP: str = "cxx_test" | |
| PY: str = "python_test" | |
| class Test: | |
| name: str | |
| target_pattern: str | |
| test_set: str # like __aten__ | |
| test_type: TestType | |
| def __init__( | |
| self, name: str, target_pattern: str, test_set: str, test_type: TestType | |
| ) -> None: | |
| self.name = name | |
| self.target_pattern = target_pattern | |
| self.test_set = test_set | |
| self.test_type = test_type | |
| TestList = List[Test] | |
| TestStatusType = Dict[str, Set[str]] | |
| # option | |
| class Option: | |
| need_build: bool = False | |
| need_run: bool = False | |
| need_merge: bool = False | |
| need_export: bool = False | |
| need_summary: bool = False | |
| need_pytest: bool = False | |
| # test platform | |
| class TestPlatform(Enum): | |
| FBCODE: str = "fbcode" | |
| OSS: str = "oss" | |
| # compiler type | |
| class CompilerType(Enum): | |
| CLANG: str = "clang" | |
| GCC: str = "gcc" |