def METHOD_NAME(root_path: str, included_tests: List[str], excluded_tests: List[str]) -> List[SyscallTest]:
    def locate_in_dir(dir_path: str, excluded_tests: List[str]) -> List[SyscallTest]:
        logging.debug(f"Visiting {dir_path}")
        tests = []
        items_to_visit = [os.path.join(dir_path, i) for i in os.listdir(dir_path) if i not in excluded_tests]
        logging.debug(f"Found  {len(items_to_visit)} items to visit.")
        for item in items_to_visit:
            if os.path.isdir(item):
                tests.extend(locate_in_dir(item, excluded_tests))
            elif os.path.isfile(item) and os.access(item, os.X_OK):
                logging.debug(f"{item} is added to tests")
                tests.append(SyscallTest(path=item))
            else:
                logging.debug(f"{item} is not suitable for tests")
        return tests
    logging.debug(
        f"Locating tests. Root path: {root_path}, included tests: {included_tests}, excluded tests {excluded_tests}")
    if len(included_tests) > 0:
        locations = [os.path.join(root_path, i) for i in included_tests]
    else:
        locations = [root_path]
    tests = []
    for location in locations:
        tests.extend(locate_in_dir(location, excluded_tests))
    logging.info(f"Location {root_path}. {len(tests)} tests found.")
    return tests