summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_tools/test_c_analyzer/test_common/test_show.py
blob: 91ca2f3b344dd39d81f72b536e6bab1ded4a4527 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import unittest

from .. import tool_imports_for_tests
with tool_imports_for_tests():
    from c_analyzer.variables import info
    from c_analyzer.common.show import (
            basic,
            )


TYPICAL = [
        info.Variable.from_parts('src1/spam.c', None, 'var1', 'static const char *'),
        info.Variable.from_parts('src1/spam.c', 'ham', 'initialized', 'static int'),
        info.Variable.from_parts('src1/spam.c', None, 'var2', 'static PyObject *'),
        info.Variable.from_parts('src1/eggs.c', 'tofu', 'ready', 'static int'),
        info.Variable.from_parts('src1/spam.c', None, 'freelist', 'static (PyTupleObject *)[10]'),
        info.Variable.from_parts('src1/sub/ham.c', None, 'var1', 'static const char const *'),
        info.Variable.from_parts('src2/jam.c', None, 'var1', 'static int'),
        info.Variable.from_parts('src2/jam.c', None, 'var2', 'static MyObject *'),
        info.Variable.from_parts('Include/spam.h', None, 'data', 'static const int'),
        ]


class BasicTests(unittest.TestCase):

    maxDiff = None

    def setUp(self):
        self.lines = []

    def print(self, line):
        self.lines.append(line)

    def test_typical(self):
        basic(TYPICAL,
              _print=self.print)

        self.assertEqual(self.lines, [
            'src1/spam.c:var1                                                 static const char *',
            'src1/spam.c:ham():initialized                                    static int',
            'src1/spam.c:var2                                                 static PyObject *',
            'src1/eggs.c:tofu():ready                                         static int',
            'src1/spam.c:freelist                                             static (PyTupleObject *)[10]',
            'src1/sub/ham.c:var1                                              static const char const *',
            'src2/jam.c:var1                                                  static int',
            'src2/jam.c:var2                                                  static MyObject *',
            'Include/spam.h:data                                              static const int',
            ])

    def test_no_rows(self):
        basic([],
              _print=self.print)

        self.assertEqual(self.lines, [])