16cf69179SStephen Tozer# DExTer : Debugging Experience Tester 26cf69179SStephen Tozer# ~~~~~~ ~ ~~ ~ ~~ 36cf69179SStephen Tozer# 46cf69179SStephen Tozer# Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 56cf69179SStephen Tozer# See https://llvm.org/LICENSE.txt for license information. 66cf69179SStephen Tozer# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 76cf69179SStephen Tozer"""A Command that enables test writers to terminate a test after a specified 86cf69179SStephen Tozerbreakpoint has been hit a number of times. 96cf69179SStephen Tozer""" 106cf69179SStephen Tozer 116cf69179SStephen Tozerfrom dex.command.CommandBase import CommandBase 126cf69179SStephen Tozer 13*f98ee40fSTobias Hieta 146cf69179SStephen Tozerclass DexFinishTest(CommandBase): 156cf69179SStephen Tozer def __init__(self, *args, **kwargs): 166cf69179SStephen Tozer if len(args) == 0: 176cf69179SStephen Tozer self.expression = None 186cf69179SStephen Tozer self.values = [] 196cf69179SStephen Tozer elif len(args) == 1: 206cf69179SStephen Tozer raise TypeError("expected 0 or at least 2 positional arguments") 216cf69179SStephen Tozer else: 226cf69179SStephen Tozer self.expression = args[0] 236cf69179SStephen Tozer self.values = [str(arg) for arg in args[1:]] 24*f98ee40fSTobias Hieta self.on_line = kwargs.pop("on_line") 25*f98ee40fSTobias Hieta self.hit_count = kwargs.pop("hit_count", 0) 266cf69179SStephen Tozer if kwargs: 27*f98ee40fSTobias Hieta raise TypeError("unexpected named args: {}".format(", ".join(kwargs))) 286cf69179SStephen Tozer super(DexFinishTest, self).__init__() 296cf69179SStephen Tozer 306cf69179SStephen Tozer def eval(self): 31*f98ee40fSTobias Hieta raise NotImplementedError("DexFinishTest commands cannot be evaled.") 326cf69179SStephen Tozer 336cf69179SStephen Tozer @staticmethod 346cf69179SStephen Tozer def get_name(): 356cf69179SStephen Tozer return __class__.__name__ 366cf69179SStephen Tozer 376cf69179SStephen Tozer @staticmethod 386cf69179SStephen Tozer def get_subcommands() -> dict: 396cf69179SStephen Tozer return None 40