xref: /openbmc/qemu/tests/functional/test_x86_64_reverse_debug.py (revision 951ededf12a89534195cf5c5210242a169a85656)
1*951ededfSThomas Huth#!/usr/bin/env python3
2*951ededfSThomas Huth#
3*951ededfSThomas Huth# SPDX-License-Identifier: GPL-2.0-or-later
4*951ededfSThomas Huth#
5*951ededfSThomas Huth# Reverse debugging test
6*951ededfSThomas Huth#
7*951ededfSThomas Huth# Copyright (c) 2020 ISP RAS
8*951ededfSThomas Huth#
9*951ededfSThomas Huth# Author:
10*951ededfSThomas Huth#  Pavel Dovgalyuk <Pavel.Dovgalyuk@ispras.ru>
11*951ededfSThomas Huth#
12*951ededfSThomas Huth# This work is licensed under the terms of the GNU GPL, version 2 or
13*951ededfSThomas Huth# later.  See the COPYING file in the top-level directory.
14*951ededfSThomas Huth
15*951ededfSThomas Huthfrom qemu_test import skipIfMissingImports, skipFlakyTest
16*951ededfSThomas Huthfrom reverse_debugging import ReverseDebugging
17*951ededfSThomas Huth
18*951ededfSThomas Huth
19*951ededfSThomas Huth@skipIfMissingImports('avocado.utils')
20*951ededfSThomas Huthclass ReverseDebugging_X86_64(ReverseDebugging):
21*951ededfSThomas Huth
22*951ededfSThomas Huth    REG_PC = 0x10
23*951ededfSThomas Huth    REG_CS = 0x12
24*951ededfSThomas Huth    def get_pc(self, g):
25*951ededfSThomas Huth        return self.get_reg_le(g, self.REG_PC) \
26*951ededfSThomas Huth            + self.get_reg_le(g, self.REG_CS) * 0x10
27*951ededfSThomas Huth
28*951ededfSThomas Huth    @skipFlakyTest("https://gitlab.com/qemu-project/qemu/-/issues/2922")
29*951ededfSThomas Huth    def test_x86_64_pc(self):
30*951ededfSThomas Huth        self.set_machine('pc')
31*951ededfSThomas Huth        # start with BIOS only
32*951ededfSThomas Huth        self.reverse_debugging()
33*951ededfSThomas Huth
34*951ededfSThomas Huth
35*951ededfSThomas Huthif __name__ == '__main__':
36*951ededfSThomas Huth    ReverseDebugging.main()
37