Skip to content

Commit ca9c7a1

Browse files
author
Steve Salas
committed
Exports tree_node_data.method_start_line values
1 parent 1da7ff1 commit ca9c7a1

File tree

4 files changed

+57
-55
lines changed

4 files changed

+57
-55
lines changed

codepulse/src/main/scala/com/secdec/codepulse/tracer/export/ProjectExporter.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ object ProjectExporter extends JsonHelpers {
123123
for (traced <- node.traced) jg.writeBooleanField("traced", traced)
124124
for (sourceFileId <- node.sourceFileId) jg.writeNumberField("sourceFileId", sourceFileId)
125125
for (sourceLocationCount <- node.sourceLocationCount) jg.writeNumberField("sourceLocationCount", sourceLocationCount)
126+
for (methodStartLine <- node.methodStartLine) jg.writeNumberField("methodStartLine", methodStartLine)
126127

127128
jg.writeEndObject
128129
}

codepulse/src/test/scala/com/secdec/codepulse/tracer/export/test/ExportSuite.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,12 +111,13 @@ class ExportSuite extends FunSpec with BeforeAndAfter {
111111

112112
describe("Nodes of exported project") {
113113
it("should not reference source file when source file is unavailable") {
114-
data.treeNodeData.storeNode(TreeNodeData(1, None, "method1", CodeTreeNodeKind.Mth, Option(50), None, None, None))
114+
data.sourceData.importSourceFiles(Map[Int,String]((1, "C:\\code\\program.java")))
115+
data.treeNodeData.storeNode(TreeNodeData(1, None, "method1", CodeTreeNodeKind.Mth, Option(50), Option(1), Option(2), Option(3)))
115116

116117
val outputStream = new ByteArrayOutputStream()
117118
ProjectExporter.exportTo(outputStream, data)
118119
val contents = unzipExport(outputStream)
119-
assert(contents.get("nodes.json").get == "[ {\r\n \"id\" : 1,\r\n \"label\" : \"method1\",\r\n \"kind\" : \"method\",\r\n \"size\" : 50\r\n} ]")
120+
assert(contents.get("nodes.json").get == "[ {\r\n \"id\" : 1,\r\n \"label\" : \"method1\",\r\n \"kind\" : \"method\",\r\n \"size\" : 50,\r\n \"sourceFileId\" : 1,\r\n \"sourceLocationCount\" : 2,\r\n \"methodStartLine\" : 3\r\n} ]")
120121
}
121122

122123
it("should reference source file when source file is unavailable") {

codepulse/src/test/scala/com/secdec/codepulse/tracer/export/test/ImportSuite.scala

Lines changed: 53 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -79,22 +79,22 @@ class ImportSuite extends FunSpec with BeforeAndAfter with MockFactory {
7979
(24, 1, 107, 107, None, None)
8080
)
8181

82-
val treeNodeDataSet = Set[(Int,Option[Int], String, String, Option[Int], Option[Int], Option[Int])](
83-
(0, None, "Classes", "g", None, None, None),
84-
(3, Option(0), "com.codedx.invokeamethod", "p", None, None, None),
85-
(4, Option(3), "Main", "c", None, Option(1), Option(4)),
86-
(5, Option(4), "public void <init>()", "m", Option(2), Option(1), Option(5)),
87-
(6, Option(4), "public static void Method1()", "m", Option(2), Option(1), Option(6)),
88-
(7, Option(4), "public static void Method2()", "m", Option(2), Option(1), Option(7)),
89-
(8, Option(4), "public static void Method3()", "m", Option(2), Option(1), Option(8)),
90-
(9, Option(4), "public static void Method4()", "m", Option(2), Option(1), Option(9)),
91-
(10, Option(4), "public static void Method5()", "m", Option(2), Option(1), Option(10)),
92-
(11, Option(4), "public static void Method6()", "m", Option(2), Option(1), Option(11)),
93-
(12, Option(4), "public static void Method7()", "m", Option(2), Option(1), Option(12)),
94-
(13, Option(4), "public static void Method8()", "m", Option(2), Option(1), Option(13)),
95-
(14, Option(4), "public static void Method9()", "m", Option(2), Option(1), Option(14)),
96-
(15, Option(4), "public static void MethodInvoked(int)", "m", Option(9), Option(1), Option(15)),
97-
(16, Option(4), "public static void main(String[])", "m", Option(94), Option(1), Option(16)))
82+
val treeNodeDataSet = Set[(Int,Option[Int], String, String, Option[Int], Option[Int], Option[Int], Option[Int])](
83+
(0, None, "Classes", "g", None, None, None, None),
84+
(3, Option(0), "com.codedx.invokeamethod", "p", None, None, None, None),
85+
(4, Option(3), "Main", "c", None, Option(1), Option(4), None),
86+
(5, Option(4), "public void <init>()", "m", Option(2), Option(1), Option(5), Option(3)),
87+
(6, Option(4), "public static void Method1()", "m", Option(2), Option(1), Option(6), Option(7)),
88+
(7, Option(4), "public static void Method2()", "m", Option(2), Option(1), Option(7), Option(12)),
89+
(8, Option(4), "public static void Method3()", "m", Option(2), Option(1), Option(8), Option(17)),
90+
(9, Option(4), "public static void Method4()", "m", Option(2), Option(1), Option(9), Option(22)),
91+
(10, Option(4), "public static void Method5()", "m", Option(2), Option(1), Option(10), Option(27)),
92+
(11, Option(4), "public static void Method6()", "m", Option(2), Option(1), Option(11), Option(32)),
93+
(12, Option(4), "public static void Method7()", "m", Option(2), Option(1), Option(12), Option(37)),
94+
(13, Option(4), "public static void Method8()", "m", Option(2), Option(1), Option(13), Option(42)),
95+
(14, Option(4), "public static void Method9()", "m", Option(2), Option(1), Option(14), Option(47)),
96+
(15, Option(4), "public static void MethodInvoked(int)", "m", Option(9), Option(1), Option(15), Option(52)),
97+
(16, Option(4), "public static void main(String[])", "m", Option(94), Option(1), Option(16), Option(58)))
9898

9999
val nodeEncountersSet = Set[(Option[Int],Int,Option[Int])](
100100
(Option(1), 10, Option(10)),
@@ -148,22 +148,22 @@ class ImportSuite extends FunSpec with BeforeAndAfter with MockFactory {
148148

149149
val sourceLocationsSet = Set.empty[(Int,Int,Int,Int,Option[Int],Option[Int])]
150150

151-
val treeNodeDataSet = Set[(Int,Option[Int], String, String, Option[Int], Option[Int], Option[Int])](
152-
(0, None, "Classes", "g", None, None, None),
153-
(3, Option(0), "com.codedx.invokeamethod", "p", None, None, None),
154-
(4, Option(3), "Main", "c", None, None, None),
155-
(5, Option(4), "public void <init>()", "m", Option(2), None, None),
156-
(6, Option(4), "public static void Method1()", "m", Option(2), None, None),
157-
(7, Option(4), "public static void Method2()", "m", Option(2), None, None),
158-
(8, Option(4), "public static void Method3()", "m", Option(2), None, None),
159-
(9, Option(4), "public static void Method4()", "m", Option(2), None, None),
160-
(10, Option(4), "public static void Method5()", "m", Option(2), None, None),
161-
(11, Option(4), "public static void Method6()", "m", Option(2), None, None),
162-
(12, Option(4), "public static void Method7()", "m", Option(2), None, None),
163-
(13, Option(4), "public static void Method8()", "m", Option(2), None, None),
164-
(14, Option(4), "public static void Method9()", "m", Option(2), None, None),
165-
(15, Option(4), "public static void MethodInvoked(int)", "m", Option(9), None, None),
166-
(16, Option(4), "public static void main(String[])", "m", Option(94), None, None))
151+
val treeNodeDataSet = Set[(Int,Option[Int], String, String, Option[Int], Option[Int], Option[Int], Option[Int])](
152+
(0, None, "Classes", "g", None, None, None, None),
153+
(3, Option(0), "com.codedx.invokeamethod", "p", None, None, None, None),
154+
(4, Option(3), "Main", "c", None, None, None, None),
155+
(5, Option(4), "public void <init>()", "m", Option(2), None, None, None),
156+
(6, Option(4), "public static void Method1()", "m", Option(2), None, None, None),
157+
(7, Option(4), "public static void Method2()", "m", Option(2), None, None, None),
158+
(8, Option(4), "public static void Method3()", "m", Option(2), None, None, None),
159+
(9, Option(4), "public static void Method4()", "m", Option(2), None, None, None),
160+
(10, Option(4), "public static void Method5()", "m", Option(2), None, None, None),
161+
(11, Option(4), "public static void Method6()", "m", Option(2), None, None, None),
162+
(12, Option(4), "public static void Method7()", "m", Option(2), None, None, None),
163+
(13, Option(4), "public static void Method8()", "m", Option(2), None, None, None),
164+
(14, Option(4), "public static void Method9()", "m", Option(2), None, None, None),
165+
(15, Option(4), "public static void MethodInvoked(int)", "m", Option(9), None, None, None),
166+
(16, Option(4), "public static void main(String[])", "m", Option(94), None, None, None))
167167

168168
val nodeEncountersSet = Set[(Option[Int],Int,Option[Int])](
169169
(Option(1), 10, None),
@@ -183,7 +183,7 @@ class ImportSuite extends FunSpec with BeforeAndAfter with MockFactory {
183183
def assertV2Import(inputStore: InputStore, file: ZipFile,
184184
sourceFileSet: Set[(Int,String)],
185185
sourceLocationSet: Set[(Int,Int,Int,Int,Option[Int],Option[Int])],
186-
treeNodeDataSet: Set[(Int,Option[Int], String, String, Option[Int], Option[Int], Option[Int])],
186+
treeNodeDataSet: Set[(Int,Option[Int], String, String, Option[Int], Option[Int], Option[Int], Option[Int])],
187187
nodeEncountersSet: Set[(Option[Int],Int,Option[Int])]): Unit = {
188188

189189
//beforeTest()
@@ -274,22 +274,22 @@ class ImportSuite extends FunSpec with BeforeAndAfter with MockFactory {
274274
(2,"clientColor", "#8cd9d9")
275275
))
276276

277-
assertTreeNodeData(Set[(Int,Option[Int], String, String, Option[Int], Option[Int], Option[Int])](
278-
(0, None, "Classes", "g", None, None, None),
279-
(3, Option(0), "com.codedx.invokeamethod", "p", None, None, None),
280-
(4, Option(3), "Main", "c", None, None, None),
281-
(5, Option(4), "public void <init>()", "m", Option(2), None, None),
282-
(6, Option(4), "public static void Method1()", "m", Option(2), None, None),
283-
(7, Option(4), "public static void Method2()", "m", Option(2), None, None),
284-
(8, Option(4), "public static void Method3()", "m", Option(2), None, None),
285-
(9, Option(4), "public static void Method4()", "m", Option(2), None, None),
286-
(10, Option(4), "public static void Method5()", "m", Option(2), None, None),
287-
(11, Option(4), "public static void Method6()", "m", Option(2), None, None),
288-
(12, Option(4), "public static void Method7()", "m", Option(2), None, None),
289-
(13, Option(4), "public static void Method8()", "m", Option(2), None, None),
290-
(14, Option(4), "public static void Method9()", "m", Option(2), None, None),
291-
(15, Option(4), "public static void MethodInvoked(int)", "m", Option(9), None, None),
292-
(16, Option(4), "public static void main(String[])", "m", Option(94), None, None)
277+
assertTreeNodeData(Set[(Int,Option[Int], String, String, Option[Int], Option[Int], Option[Int], Option[Int])](
278+
(0, None, "Classes", "g", None, None, None, None),
279+
(3, Option(0), "com.codedx.invokeamethod", "p", None, None, None, None),
280+
(4, Option(3), "Main", "c", None, None, None, None),
281+
(5, Option(4), "public void <init>()", "m", Option(2), None, None, None),
282+
(6, Option(4), "public static void Method1()", "m", Option(2), None, None, None),
283+
(7, Option(4), "public static void Method2()", "m", Option(2), None, None, None),
284+
(8, Option(4), "public static void Method3()", "m", Option(2), None, None, None),
285+
(9, Option(4), "public static void Method4()", "m", Option(2), None, None, None),
286+
(10, Option(4), "public static void Method5()", "m", Option(2), None, None, None),
287+
(11, Option(4), "public static void Method6()", "m", Option(2), None, None, None),
288+
(12, Option(4), "public static void Method7()", "m", Option(2), None, None, None),
289+
(13, Option(4), "public static void Method8()", "m", Option(2), None, None, None),
290+
(14, Option(4), "public static void Method9()", "m", Option(2), None, None, None),
291+
(15, Option(4), "public static void MethodInvoked(int)", "m", Option(9), None, None, None),
292+
(16, Option(4), "public static void main(String[])", "m", Option(94), None, None, None)
293293
))
294294

295295
assertTraceNodes(Set[(Int,Boolean)](
@@ -364,11 +364,11 @@ class ImportSuite extends FunSpec with BeforeAndAfter with MockFactory {
364364
assert(actual.toSet == expected)
365365
}
366366

367-
def assertTreeNodeData(expected: Set[(Int,Option[Int], String, String, Option[Int], Option[Int], Option[Int])]): Unit = {
368-
val actual = collection.mutable.ListBuffer.empty[(Int,Option[Int], String, String, Option[Int], Option[Int], Option[Int])]
367+
def assertTreeNodeData(expected: Set[(Int,Option[Int], String, String, Option[Int], Option[Int], Option[Int], Option[Int])]): Unit = {
368+
val actual = collection.mutable.ListBuffer.empty[(Int,Option[Int], String, String, Option[Int], Option[Int], Option[Int], Option[Int])]
369369
projectDb.withSession(implicit x => {
370-
Q.queryNA[(Int,Option[Int], String, String, Option[Int], Option[Int], Option[Int])]("select * from \"tree_node_data\"").foreach( s => {
371-
actual.append((s._1, s._2, s._3, s._4, s._5, s._6, s._7))
370+
Q.queryNA[(Int,Option[Int], String, String, Option[Int], Option[Int], Option[Int], Option[Int])]("select * from \"tree_node_data\"").foreach( s => {
371+
actual.append((s._1, s._2, s._3, s._4, s._5, s._6, s._7, s._8))
372372
})
373373
})
374374
assert(actual.toSet == expected)

0 commit comments

Comments
 (0)