diff options
Diffstat (limited to 'tools/add_tp_diff_test.py')
-rwxr-xr-x | tools/add_tp_diff_test.py | 164 |
1 files changed, 0 insertions, 164 deletions
diff --git a/tools/add_tp_diff_test.py b/tools/add_tp_diff_test.py deleted file mode 100755 index 83ce9d082..000000000 --- a/tools/add_tp_diff_test.py +++ /dev/null @@ -1,164 +0,0 @@ -#!/usr/bin/env python3 -# Copyright (C) 2020 The Android Open Source Project -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import argparse -import os -import pathlib -import sys - -ROOT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) - - -def create_if_not_exists(path): - create = not os.path.exists(path) - if create: - print('Creating empty file {}'.format(os.path.relpath(path, ROOT_DIR))) - with open(path, 'a'): - pass - return create - - -def stdout_write(*args, **kwargs): - sys.stdout.write(*args, **kwargs) - sys.stdout.flush() - - -def main(): - test_dir = os.path.join(ROOT_DIR, 'test', 'trace_processor') - include_index_path = os.path.join(test_dir, 'include_index') - - if not os.path.exists(include_index_path): - print('Error: include index does not exist at {}'.format( - os.path.relpath(include_index_path, ROOT_DIR))) - return 1 - - existing_folders = [] - with open(include_index_path, 'r') as include_index_file: - for line in include_index_file.readlines(): - stripped = line.rstrip() - existing_folders.append(stripped.replace('/index', '')) - - print('Pick a folder to add a test to. This can either be an existing ' - 'folder or a new one to create.') - print() - print('Picking the correct folder is important to the long term health ' - 'of trace processor. For help in this, please see the guidance at ' - 'http://perfetto.dev/docs/analysis/trace-processor#diff-tests') - print() - print('Existing folders: {}.'.format(existing_folders)) - stdout_write('Folder: ') - - chosen_folder = sys.stdin.readline().rstrip() - chosen_folder_path = os.path.abspath(os.path.join(test_dir, chosen_folder)) - chosen_folder_path_rel_root = os.path.relpath(chosen_folder_path, ROOT_DIR) - if chosen_folder not in existing_folders: - print('Creating new folder {} and adding include to include_index file' - .format(chosen_folder)) - os.mkdir(chosen_folder_path) - - out_include_index = list(map(lambda x: x + '/index', existing_folders)) - out_include_index.append(chosen_folder + '/index') - out_include_index.sort() - - with open(include_index_path, 'w') as include_index_file: - include_index_file.write('\n'.join(out_include_index)) - include_index_file.write('\n') - - print() - stdout_write('Pick the type of trace to be added [proto/textproto/python]: ') - trace_type = sys.stdin.readline().rstrip() - - print() - trace_file = '' - if trace_type == 'proto': - print('Proto traces should be added to the test-data zip ' - 'using the tools/add_test_trace.sh') - stdout_write('Provide the name of the trace (including any ' - 'extension) relative to test/data: ') - - pb_file = sys.stdin.readline().rstrip() - pb_path = os.path.abspath(os.path.join(ROOT_DIR, 'test', 'data', pb_file)) - if not os.path.exists(pb_path): - print('Error: provided pb file {} does not exist', - os.path.relpath(pb_path, ROOT_DIR)) - return 1 - - trace_file = os.path.relpath(pb_path, chosen_folder_path) - elif trace_type == 'textproto': - print('Provide the path to the textproto trace relative to the ' - 'chosen folder {}'.format(chosen_folder_path_rel_root)) - stdout_write( - 'If the file does not already exist, an empty file will be created: ') - - textproto_file = sys.stdin.readline().rstrip() - textproto_path = os.path.abspath( - os.path.join(chosen_folder_path, textproto_file)) - create_if_not_exists(textproto_path) - - trace_file = textproto_file - elif trace_type == 'python': - print( - 'Provide the path to the Python trace ' - 'relative to the chosen folder {}'.format(chosen_folder_path_rel_root)) - stdout_write( - 'If the file does not already exist, an empty file will be created: ') - - python_file = sys.stdin.readline().rstrip() - python_path = os.path.abspath(os.path.join(chosen_folder_path, python_file)) - if create_if_not_exists(python_path): - print('For examples of how Python traces are constructed, ' - 'check the existing traces in test/trace_processor') - - trace_file = python_file - else: - print('Error: unexpected trace type {}'.format(trace_type)) - return 1 - - print() - print('Provide the path to the SQL file relative to the chosen folder {}' - .format(chosen_folder_path_rel_root)) - stdout_write( - 'If the file does not already exist, an empty file will be created: ') - - sql_file = sys.stdin.readline().rstrip() - sql_path = os.path.abspath(os.path.join(chosen_folder_path, sql_file)) - create_if_not_exists(sql_path) - - default_out_file = '{}_{}.out'.format( - pathlib.Path(trace_file).stem, - pathlib.Path(sql_file).stem) - - print() - print('Provide the name of the output file (or leave empty ' - 'to accept the default: {})'.format(default_out_file)) - stdout_write( - 'If the file does not already exist, an empty file will be created: ') - out_file = sys.stdin.readline().rstrip() - if not out_file: - out_file = default_out_file - - out_path = os.path.abspath(os.path.join(chosen_folder_path, out_file)) - create_if_not_exists(out_path) - - print() - print('Appending test to index file') - with open(os.path.join(chosen_folder_path, 'index'), 'a') as index_file: - index_file.write('{} {} {}\n'.format(trace_file, sql_file, out_file)) - - return 0 - - -if __name__ == '__main__': - sys.exit(main()) |