1// RUN: %exploded_graph_rewriter %s | FileCheck %s 2 3// FIXME: Substitution doesn't seem to work on Windows. 4// UNSUPPORTED: system-windows 5 6// CHECK: <b>Program points:</b> 7// CHECK-SAME: <table border="0" align="left" width="0"> 8// CHECK-SAME: <tr> 9// CHECK-SAME: <td width="0"> 10// CHECK-SAME: </td> 11// CHECK-SAME: <td align="left" width="0"> 12// CHECK-SAME: <font color="gold3">BlockEdge</font> 13// CHECK-SAME: </td> 14// CHECK-SAME: <td align="left"> 15// CHECK-SAME: [B0] -> [B1] 16// CHECK-SAME: </td> 17// CHECK-SAME: </tr> 18// CHECK-SAME: <tr> 19// CHECK-SAME: <td width="0"> 20// CHECK-SAME: </td> 21// CHECK-SAME: <td align="left" width="0"> 22// CHECK-SAME: <font color="gold3">BlockEntrance</font> 23// CHECK-SAME: </td> 24// CHECK-SAME: <td align="left"> 25// CHECK-SAME: [B1] 26// CHECK-SAME: </td> 27// CHECK-SAME: </tr> 28// CHECK-SAME: </table> 29Node0x1 [shape=record,label= 30 "{ 31 { 32 "state_id": 0, "program_state": null, "program_points": [ 33 { 34 "kind": "Edge", 35 "src_id": 0, 36 "dst_id": 1, 37 "terminator": null, 38 "term_kind": null, 39 "tag": null, 40 "node_id": 1, 41 "has_report": 0, 42 "is_sink": 0 43 }, 44 { 45 "kind": "BlockEntrance", 46 "block_id": 1, 47 "terminator": null, 48 "term_kind": null, 49 "tag": null, 50 "node_id": 2, 51 "has_report": 0, 52 "is_sink": 0 53 } 54 ]} 55\l}"]; 56 57// CHECK-NEXT: <b>Program point:</b> 58// CHECK-SAME: <table border="0" align="left" width="0"> 59// CHECK-SAME: <tr> 60// CHECK-SAME: <td align="left" width="0"> 61// CHECK-SAME: main.cpp:<b>4</b>:<b>5</b>: 62// CHECK-SAME: </td> 63// CHECK-SAME: <td align="left" width="0"> 64// CHECK-SAME: <font color="cyan4">DeclRefExpr</font> 65// CHECK-SAME: </td> 66// CHECK-SAME: <td align="left"><i>S3</i></td> 67// CHECK-SAME: <td align="left"> 68// CHECK-SAME: <font color="cyan3">PreStmt</font> 69// CHECK-SAME: </td> 70// CHECK-SAME: <td align="left">x</td> 71// CHECK-SAME: </tr> 72// CHECK-SAME: <tr> 73// CHECK-SAME: <td width="0"> 74// CHECK-SAME: </td> 75// CHECK-SAME: <td colspan="3" align="left"> 76// CHECK-SAME: <b>Tag: </b> 77// CHECK-SAME: <font color="crimson">ExprEngine : Clean Node</font> 78// CHECK-SAME: </td> 79// CHECK-SAME: </tr> 80// CHECK-SAME: </table> 81Node0x3 [shape=record,label= 82 "{ 83 { "state_id": 0, "program_state": null, "program_points": [ 84 { 85 "kind": "Statement", 86 "stmt_kind": "DeclRefExpr", 87 "stmt_point_kind": "PreStmt", 88 "stmt_id": 3, 89 "pointer": "0x3", 90 "pretty": "x", 91 "location": { 92 "file": "main.cpp", 93 "line": 4, 94 "column": 5 95 }, 96 "tag": "ExprEngine : Clean Node", 97 "node_id": 3, 98 "pointer": "0x3", 99 "has_report": 0, 100 "is_sink": 0 101 } 102 ]} 103\l}"]; 104 105// Test collapsing large pretty prints with braces. 106 107// CHECK-NEXT: <b>Program point:</b> 108// CHECK-SAME: <td align="left">\{ ... \}</td> 109Node0x4 [shape=record,label= 110 "{ 111 { 112 "state_id": 0, "program_state": null, "program_points": [ 113 { 114 "kind": "Statement", 115 "stmt_kind": "CompoundStmt", 116 "stmt_point_kind": "PostStmt", 117 "stmt_id": 6, 118 "pointer": "0x6", 119 "pretty": "{ very very very very very very long pretty print }", 120 "location": { 121 "line": 7, 122 "column": 8 123 }, 124 "tag": "ExprEngine : Clean Node", 125 "node_id": 4, 126 "has_report": 0, 127 "is_sink": 0 128 } 129 ]} 130\l}"]; 131 132// CHECK-NEXT: <b>Program point:</b> 133// CHECK-SAME: <table border="0" align="left" width="0"> 134// CHECK-SAME: <tr> 135// CHECK-SAME: <td align="left" width="0"> 136// CHECK-SAME: main.cpp:<b>8</b>:<b>9</b>: 137// CHECK-SAME: </td> 138// CHECK-SAME: <td align="left" width="0"> 139// CHECK-SAME: <font color="cyan4"> 140// CHECK-SAME: ImplicitCastExpr (LValueToRValue) 141// CHECK-SAME: </font> 142// CHECK-SAME: </td> 143// CHECK-SAME: <td align="left"><i>S5</i></td> 144// CHECK-SAME: <td align="left"> 145// CHECK-SAME: <font color="cyan3">PreStmt</font> 146// CHECK-SAME: </td> 147// CHECK-SAME: <td align="left">y</td> 148// CHECK-SAME: </tr> 149// CHECK-SAME: <tr> 150// CHECK-SAME: <td width="0"> 151// CHECK-SAME: </td> 152// CHECK-SAME: <td colspan="3" align="left"> 153// CHECK-SAME: <b>Tag: </b> 154// CHECK-SAME: <font color="crimson">ExprEngine : Clean Node</font> 155// CHECK-SAME: </td> 156// CHECK-SAME: </tr> 157// CHECK-SAME: </table> 158Node0x5 [shape=record,label= 159 "{ 160 { "state_id": 0, "program_state": null, "program_points": [ 161 { 162 "kind": "Statement", 163 "stmt_kind": "ImplicitCastExpr", 164 "cast_kind": "LValueToRValue", 165 "stmt_point_kind": "PreStmt", 166 "stmt_id": 5, 167 "pointer": "0x6", 168 "pretty": "y", 169 "location": { 170 "file": "main.cpp", 171 "line": 8, 172 "column": 9 173 }, 174 "tag": "ExprEngine : Clean Node", 175 "node_id": 5, 176 "has_report": 0, 177 "is_sink": 0 178 } 179 ]} 180\l}"]; 181