| 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, []) |