diff options
Diffstat (limited to 'gcc/testsuite/gcc.dg/plugin/diagnostic-test-metadata-html.py')
-rw-r--r-- | gcc/testsuite/gcc.dg/plugin/diagnostic-test-metadata-html.py | 59 |
1 files changed, 32 insertions, 27 deletions
diff --git a/gcc/testsuite/gcc.dg/plugin/diagnostic-test-metadata-html.py b/gcc/testsuite/gcc.dg/plugin/diagnostic-test-metadata-html.py index e475e95..67fb241 100644 --- a/gcc/testsuite/gcc.dg/plugin/diagnostic-test-metadata-html.py +++ b/gcc/testsuite/gcc.dg/plugin/diagnostic-test-metadata-html.py @@ -8,12 +8,6 @@ import pytest def html_tree(): return html_tree_from_env() -XHTML = 'http://www.w3.org/1999/xhtml' -ns = {'xhtml': XHTML} - -def make_tag(local_name): - return f'{{{XHTML}}}' + local_name - def test_metadata(html_tree): root = html_tree.getroot () assert root.tag == make_tag('html') @@ -27,10 +21,24 @@ def test_metadata(html_tree): diag = diag_list.find('xhtml:div', ns) assert diag is not None - assert diag.attrib['class'] == 'gcc-diagnostic' + assert diag.attrib['class'] == 'alert alert-warning' + + icon = diag.find('xhtml:span', ns) + assert icon.attrib['class'] == 'pficon pficon-warning-triangle-o' + + message = diag.find("./xhtml:div[@class='gcc-message']", ns) + assert message.attrib['id'] == 'gcc-diag-0-message' - spans = diag.findall('xhtml:span', ns) - metadata = spans[1] + assert message[0].tag == make_tag('strong') + assert message[0].text == 'warning: ' + assert message[0].tail == " never use '" + + assert message[1].tag == make_tag('span') + assert message[1].attrib['class'] == 'gcc-quoted-text' + assert message[1].text == 'gets' + assert message[1].tail == "' " + + metadata = message[2] assert metadata.attrib['class'] == 'gcc-metadata' assert metadata[0].tag == make_tag('span') assert metadata[0].attrib['class'] == 'gcc-metadata-item' @@ -48,21 +56,18 @@ def test_metadata(html_tree): assert metadata[1][0].text == 'STR34-C' assert metadata[1][0].tail == ']' - src = diag.find('xhtml:pre', ns) - assert src.attrib['class'] == 'gcc-annotated-source' - assert src.text == ( - ' gets (buf);\n' - ' ^~~~~~~~~~\n') - -# For reference, here's the generated HTML: -""" - <body> - <div class="gcc-diagnostic-list"> - <div class="gcc-diagnostic"> - <span class="gcc-message">never use '<span class="gcc-quoted-text">gets</span>'</span> - <span class="gcc-metadata"><span class="gcc-metadata-item">[<a href="https://cwe.mitre.org/data/definitions/242.html">CWE-242</a>]</span><span class="gcc-metadata-item">[<a href="https://example.com/">STR34-C</a>]</span></span> - ...etc... - </div> - </div> - </body> -""" + src = diag.find('xhtml:table', ns) + assert src.attrib['class'] == 'locus' + + tbody = src.find('xhtml:tbody', ns) + assert tbody.attrib['class'] == 'line-span' + + rows = tbody.findall('xhtml:tr', ns) + + quoted_src_tr = rows[0] + assert_quoted_line(quoted_src_tr, + ' 10', ' gets (buf);') + + annotation_tr = rows[1] + assert_annotation_line(annotation_tr, + ' ^~~~~~~~~~') |