js/src/gdb/tests/test-prettyprinters.py

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/js/src/gdb/tests/test-prettyprinters.py	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,22 @@
     1.4 +import mozilla.prettyprinters
     1.5 +
     1.6 +run_fragment('prettyprinters.implemented_types')
     1.7 +
     1.8 +def implemented_type_names(expr):
     1.9 +    v = gdb.parse_and_eval(expr)
    1.10 +    it = mozilla.prettyprinters.implemented_types(v.type)
    1.11 +    return [str(_) for _ in it]
    1.12 +
    1.13 +assert_eq(implemented_type_names('i'), ['int'])
    1.14 +assert_eq(implemented_type_names('a'), ['A', 'int'])
    1.15 +assert_eq(implemented_type_names('b'), ['B', 'A', 'int'])
    1.16 +assert_eq(implemented_type_names('c'), ['C'])
    1.17 +assert_eq(implemented_type_names('c_'), ['C_', 'C'])
    1.18 +assert_eq(implemented_type_names('e'), ['E', 'C', 'D'])
    1.19 +assert_eq(implemented_type_names('e_'), ['E_', 'E', 'C', 'D'])
    1.20 +assert_eq(implemented_type_names('f'), ['F', 'C', 'D'])
    1.21 +assert_eq(implemented_type_names('h'), ['H', 'F', 'G', 'C', 'D'])
    1.22 +
    1.23 +# Check that our pretty-printers aren't interfering with printing other types.
    1.24 +assert_pretty('10', '10')
    1.25 +assert_pretty('(void*) 0', '') # Because of 'set print address off'

mercurial