summaryrefslogtreecommitdiffstats
path: root/clang/test/Analysis
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test/Analysis')
-rw-r--r--clang/test/Analysis/exploded-graph-rewriter/edge.dot12
-rw-r--r--clang/test/Analysis/exploded-graph-rewriter/empty.dot9
-rw-r--r--clang/test/Analysis/exploded-graph-rewriter/environment.dot50
-rw-r--r--clang/test/Analysis/exploded-graph-rewriter/lit.local.cfg13
-rw-r--r--clang/test/Analysis/exploded-graph-rewriter/program_points.dot60
-rw-r--r--clang/test/Analysis/exploded-graph-rewriter/store.dot42
6 files changed, 186 insertions, 0 deletions
diff --git a/clang/test/Analysis/exploded-graph-rewriter/edge.dot b/clang/test/Analysis/exploded-graph-rewriter/edge.dot
new file mode 100644
index 00000000000..5fc695c1ce0
--- /dev/null
+++ b/clang/test/Analysis/exploded-graph-rewriter/edge.dot
@@ -0,0 +1,12 @@
+// RUN: %exploded_graph_rewriter %s | FileCheck %s
+
+Node0x1 [shape=record,label=
+ "{{ "node_id": 1, "pointer": "0x1",
+ "program_state": null, "program_points": []}\l}"];
+
+// CHECK: Node0x1 -> Node0x2;
+Node0x1 -> Node0x2;
+
+Node0x2 [shape=record,label=
+ "{{ "node_id": 2, "pointer": "0x2",
+ "program_state": null, "program_points": []}\l}"];
diff --git a/clang/test/Analysis/exploded-graph-rewriter/empty.dot b/clang/test/Analysis/exploded-graph-rewriter/empty.dot
new file mode 100644
index 00000000000..85c227dbab8
--- /dev/null
+++ b/clang/test/Analysis/exploded-graph-rewriter/empty.dot
@@ -0,0 +1,9 @@
+// RUN: %exploded_graph_rewriter %s | FileCheck %s
+
+digraph "Exploded Graph" {
+ label="Exploded Graph";
+}
+
+// CHECK: digraph "ExplodedGraph" {
+// CHECK-NEXT: label="";
+// CHECK-NEXT: }
diff --git a/clang/test/Analysis/exploded-graph-rewriter/environment.dot b/clang/test/Analysis/exploded-graph-rewriter/environment.dot
new file mode 100644
index 00000000000..31d2d72551d
--- /dev/null
+++ b/clang/test/Analysis/exploded-graph-rewriter/environment.dot
@@ -0,0 +1,50 @@
+// RUN: %exploded_graph_rewriter %s | FileCheck %s
+
+// CHECK: <b>Environment: </b>
+// CHECK-SAME: <table border="0">
+// CHECK-SAME: <tr>
+// CHECK-SAME: <td align="left">
+// CHECK-SAME: <b>#0 Call</b>
+// CHECK-SAME: </td>
+// CHECK-SAME: <td align="left">
+// CHECK-SAME: <font color="grey60">foo </font>(line 4)
+// CHECK-SAME: </td>
+// CHECK-SAME: </tr>
+// CHECK-SAME: <tr>
+// CHECK-SAME: <td align="left">
+// CHECK-SAME: <i>S5</i>
+// CHECK-SAME: </td>
+// CHECK-SAME: <td align="left">
+// CHECK-SAME: bar()
+// CHECK-SAME: </td>
+// CHECK-SAME: <td align="left">
+// CHECK-SAME: Unknown
+// CHECK-SAME: </td>
+// CHECK-SAME: </tr>
+// CHECK-SAME: </table>
+Node0x1 [shape=record,label=
+ "{
+ { "node_id": 1,
+ "pointer": "0x1",
+ "state_id": 2,
+ "program_points": [],
+ "program_state": {
+ "store": null,
+ "environment": [
+ {
+ "location_context": "#0 Call",
+ "lctx_id": 3,
+ "calling": "foo",
+ "call_line": 4,
+ "items": [
+ {
+ "stmt_id": 5,
+ "pretty": "bar()",
+ "value": "Unknown"
+ }
+ ]
+ }
+ ]
+ }
+ }
+\l}"];
diff --git a/clang/test/Analysis/exploded-graph-rewriter/lit.local.cfg b/clang/test/Analysis/exploded-graph-rewriter/lit.local.cfg
new file mode 100644
index 00000000000..1ebb25a4001
--- /dev/null
+++ b/clang/test/Analysis/exploded-graph-rewriter/lit.local.cfg
@@ -0,0 +1,13 @@
+import lit.util
+import lit.formats
+import os
+
+use_lit_shell = os.environ.get("LIT_USE_INTERNAL_SHELL")
+config.test_format = lit.formats.ShTest(use_lit_shell == "0")
+
+config.substitutions.append(('%exploded_graph_rewriter',
+ lit.util.which('exploded-graph-rewriter.py',
+ os.path.join(config.clang_src_dir,
+ 'utils', 'analyzer'))))
+
+config.suffixes = ['.dot']
diff --git a/clang/test/Analysis/exploded-graph-rewriter/program_points.dot b/clang/test/Analysis/exploded-graph-rewriter/program_points.dot
new file mode 100644
index 00000000000..a7696d27a9f
--- /dev/null
+++ b/clang/test/Analysis/exploded-graph-rewriter/program_points.dot
@@ -0,0 +1,60 @@
+// RUN: %exploded_graph_rewriter %s | FileCheck %s
+
+// CHECK: <b>Program point:</b>
+// CHECK-SAME: <table border="0" align="left" width="0">
+// CHECK-SAME: <tr>
+// CHECK-SAME: <td width="0">
+// CHECK-SAME: -
+// CHECK-SAME: </td>
+// CHECK-SAME: <td align="left" width="0">
+// CHECK-SAME: <font color="gold3">Edge</font>
+// CHECK-SAME: </td>
+// CHECK-SAME: <td align="left">
+// CHECK-SAME: [B0] -&gt; [B1]
+// CHECK-SAME: </td>
+// CHECK-SAME: </tr>
+// CHECK-SAME: </table>
+Node0x1 [shape=record,label=
+ "{
+ { "node_id": 1, "pointer": "0x1",
+ "program_state": null, "program_points": [
+ {
+ "kind": "Edge",
+ "src_id": 0,
+ "dst_id": 1,
+ "terminator": null,
+ "term_kind": null,
+ "tag": null }
+ ]}
+\l}"];
+
+// CHECK-NEXT: <b>Program point:</b>
+// CHECK-SAME: <table border="0" align="left" width="0">
+// CHECK-SAME: <tr>
+// CHECK-SAME: <td align="left" width="0">
+// CHECK-SAME: (main file):<b>4</b>:<b>5</b>:
+// CHECK-SAME: </td>
+// CHECK-SAME: <td align="left" width="0">
+// CHECK-SAME: <font color="cyan3">DeclRefExpr</font>
+// CHECK-SAME: </td>
+// CHECK-SAME: <td>x</td>
+// CHECK-SAME: </tr>
+// CHECK-SAME: </table>
+Node0x2 [shape=record,label=
+ "{
+ { "node_id": 2, "pointer": "0x2",
+ "program_state": null, "program_points": [
+ {
+ "kind": "Statement",
+ "stmt_kind": "DeclRefExpr",
+ "stmd_id": 3,
+ "pointer": "0x3",
+ "pretty": "x",
+ "location": {
+ "line": 4,
+ "column": 5
+ },
+ "tag": null
+ }
+ ]}
+\l}"];
diff --git a/clang/test/Analysis/exploded-graph-rewriter/store.dot b/clang/test/Analysis/exploded-graph-rewriter/store.dot
new file mode 100644
index 00000000000..0f0fa928b28
--- /dev/null
+++ b/clang/test/Analysis/exploded-graph-rewriter/store.dot
@@ -0,0 +1,42 @@
+// RUN: %exploded_graph_rewriter %s | FileCheck %s
+
+// CHECK: <b>Store: </b>
+// CHECK-SAME: <table border="0">
+// CHECK-SAME: <tr>
+// CHECK-SAME: <td align="left">
+// CHECK-SAME: x
+// CHECK-SAME: </td>
+// CHECK-SAME: <td align="left">
+// CHECK-SAME: 0
+// CHECK-SAME: </td>
+// CHECK-SAME: <td align="left">
+// CHECK-SAME: (<i>Default</i>)
+// CHECK-SAME: </td>
+// CHECK-SAME: <td align="left">
+// CHECK-SAME: Undefined
+// CHECK-SAME: </td>
+// CHECK-SAME: </tr>
+// CHECK-SAME: </table>
+Node0x1 [shape=record,label=
+ "{
+ { "node_id": 1,
+ "pointer": "0x1",
+ "state_id": 2,
+ "program_points": [],
+ "program_state": {
+ "environment": null,
+ "store": [
+ {
+ "cluster": "x",
+ "items": [
+ {
+ "kind": "Default",
+ "offset": 0,
+ "value": "Undefined"
+ }
+ ]
+ }
+ ]
+ }
+ }
+\l}"];
OpenPOWER on IntegriCloud