# DExTer : Debugging Experience Tester # ~~~~~~ ~ ~~ ~ ~~ # # Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. # See https://llvm.org/LICENSE.txt for license information. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception """Command used to give a line in a test a named psuedonym. Every DexLabel has a line number and Label string component. """ from dex.command.CommandBase import CommandBase class DexLabel(CommandBase): def __init__(self, label, **kwargs): if not isinstance(label, str): raise TypeError("invalid argument type") try: self.on_line = kwargs.pop("on_line") except KeyError: # We cannot use self.lineno because it hasn't been set yet. pass if kwargs: raise TypeError(f'unexpected named args: {", ".join(kwargs)}') self._label = label super(DexLabel, self).__init__() def get_line(self): return getattr(self, "on_line", self.lineno) def get_as_pair(self): return (self._label, self.get_line()) @staticmethod def get_name(): return __class__.__name__ def eval(self): return self._label