1#!/usr/bin/env python3 2# -*- coding: utf-8 -*- 3 4# 5# Copyright (c) 2022-2024 Huawei Device Co., Ltd. 6# Licensed under the Apache License, Version 2.0 (the "License"); 7# you may not use this file except in compliance with the License. 8# You may obtain a copy of the License at 9# 10# http://www.apache.org/licenses/LICENSE-2.0 11# 12# Unless required by applicable law or agreed to in writing, software 13# distributed under the License is distributed on an "AS IS" BASIS, 14# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15# See the License for the specific language governing permissions and 16# limitations under the License. 17# 18import argparse 19import logging 20 21parser = argparse.ArgumentParser(description="Sampler trace test") 22parser.add_argument("--file", type=str) 23args = parser.parse_args() 24file_name = args.file 25 26trace_list = [ 27 "LETSGLOBAL::execute_test; LETSGLOBAL::CallSlowFunction; LETSGLOBAL::SlowETSFunction;", 28 "LETSGLOBAL::execute_test; LETSGLOBAL::CallSlowFunction; LETSGLOBAL::SlowETSFunctionCopy1;", 29 "LETSGLOBAL::execute_test; LETSGLOBAL::CallSlowFunction; LETSGLOBAL::SlowETSFunctionCopy2;", 30 "LETSGLOBAL::execute_test; LETSGLOBAL::CallSlowFunction; LETSGLOBAL::SlowETSFunctionCopy3;" 31] 32 33ALL_TRACES_FOUND = True 34 35with open(file_name, 'r') as my_file: 36 content = my_file.read() 37 for string in trace_list: 38 if string not in content: 39 ALL_TRACES_FOUND = False 40 if not ALL_TRACES_FOUND: 41 logging.error("Actual stack trace") 42 logging.error(content) 43 raise Exception("Not all native traces found") 44