| // RUN: %exploded_graph_rewriter -d %s | FileCheck %s |
| |
| // FIXME: Substitution doesn't seem to work on Windows. |
| // UNSUPPORTED: system-windows |
| |
| // No diffs on the first node, nothing to check. |
| Node0x1 [shape=record,label= |
| "{ |
| { |
| "state_id": 2, |
| "program_points": [ |
| { |
| "kind": "BlockEntrance", "block_id": 1, |
| "terminator": null, "term_kind": null, |
| "tag": null, "node_id": 1, |
| "has_report": 0, "is_sink": 0 |
| } |
| ], |
| "program_state": { |
| "store": null, |
| "constraints": null, |
| "dynamic_types": null, |
| "constructing_objects": null, |
| "checker_messages": null, |
| "environment": { |
| "pointer": "0x2", |
| "items": [ |
| { |
| "location_context": "#0 Call", |
| "lctx_id": 3, |
| "calling": "foo", |
| "location": null, |
| "items": [ |
| { |
| "stmt_id": 5, |
| "pretty": "bar()", |
| "value": "Unknown" |
| } |
| ] |
| } |
| ] |
| } |
| } |
| } |
| \l}"]; |
| |
| Node0x1 -> Node0x6; |
| |
| // CHECK: Node0x6 [ |
| // CHECK-SAME: <tr> |
| // CHECK-SAME: <td><font color="red">-</font></td> |
| // CHECK-SAME: <td align="left"><i>S5</i></td> |
| // CHECK-SAME: <td align="left">bar()</td> |
| // CHECK-SAME: <td align="left">Unknown</td> |
| // CHECK-SAME: </tr> |
| // CHECK-SAME: <tr> |
| // CHECK-SAME: <td><font color="forestgreen">+</font></td> |
| // CHECK-SAME: <td align="left"><i>S9</i></td> |
| // CHECK-SAME: <td align="left">baz()</td> |
| // CHECK-SAME: <td align="left">Undefined</td> |
| // CHECK-SAME: </tr> |
| Node0x6 [shape=record,label= |
| "{ |
| { |
| "state_id": 7, |
| "program_points": [ |
| { |
| "kind": "BlockEntrance", "block_id": 1, |
| "terminator": null, "term_kind": null, |
| "tag": null, "node_id": 1, |
| "has_report": 0, "is_sink": 0 |
| } |
| ], |
| "program_state": { |
| "store": null, |
| "constraints": null, |
| "dynamic_types": null, |
| "constructing_objects": null, |
| "checker_messages": null, |
| "environment": { |
| "pointer": "0x2", |
| "items": [ |
| { |
| "location_context": "#0 Call", |
| "lctx_id": 3, |
| "calling": "foo", |
| "location": null, |
| "items": [ |
| { |
| "stmt_id": 9, |
| "pretty": "baz()", |
| "value": "Undefined" |
| } |
| ] |
| } |
| ] |
| } |
| } |
| } |
| \l}"]; |
| |
| Node0x6 -> Node0x9; |
| // Make sure that the last node in the path is not diffed. |
| // CHECK: Node0x9 [ |
| // CHECK-SAME: <tr> |
| // CHECK-SAME: <td></td> |
| // CHECK-SAME: <td align="left"><i>S9</i></td> |
| // CHECK-SAME: <td align="left">baz()</td> |
| // CHECK-SAME: <td align="left">Undefined</td> |
| // CHECK-SAME: </tr> |
| Node0x9 [shape=record,label= |
| "{ |
| { |
| "state_id": 7, |
| "program_points": [ |
| { |
| "kind": "BlockEntrance", "block_id": 1, |
| "terminator": null, "term_kind": null, |
| "tag": null, "node_id": 1, |
| "has_report": 0, "is_sink": 0 |
| } |
| ], |
| "program_state": { |
| "store": null, |
| "constraints": null, |
| "dynamic_types": null, |
| "constructing_objects": null, |
| "checker_messages": null, |
| "environment": { |
| "pointer": "0x2", |
| "items": [ |
| { |
| "location_context": "#0 Call", |
| "lctx_id": 3, |
| "calling": "foo", |
| "location": null, |
| "items": [ |
| { |
| "stmt_id": 9, |
| "pretty": "baz()", |
| "value": "Undefined" |
| } |
| ] |
| } |
| ] |
| } |
| } |
| } |
| \l}"]; |