Skip to content

Commit

Permalink
Added results for Ser1
Browse files Browse the repository at this point in the history
  • Loading branch information
joannacss committed Jun 11, 2020
1 parent 5fc87fa commit 2fb4b02
Show file tree
Hide file tree
Showing 10 changed files with 45 additions and 9 deletions.
32 changes: 23 additions & 9 deletions callgraphs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,33 @@


This folder contains the visualization of the call graphs computed by `Salsa`.
Each PDF provides the call graph computed with and without Salsa, where we can see missing edges and nodes from the call graph.

Please notice that each PDF has only a **subset** of nodes and edges from the original call graph because each call graph includes many nodes from API calls.
For the sake of clarity, each PDF only includes nodes and edges if they fulfill the following criteria:
- Each PDF provides the call graph computed with and without Salsa, where we can see missing edges and nodes from the call graph.
- Nodes in light green are *application nodes*, nodes in light orange are *primordial nodes*, and underlined nodes are *synthetic nodes* added by Salsa to handle the call backs during serialization/deserialization;
- Each node is preceded by an `id` number to avoid labels to be duplicated (when a same method is invoked multiple times in an application).
- Please notice that each PDF has only a **subset** of nodes and edges from the original call graph because each call graph includes many nodes from API calls.

***For nodes***:
For the sake of clarity, each PDF only includes nodes and edges if they fulfill the following criteria:

***For nodes***:

- The node correspond to a method implemented by the application (application-scope);
- The node is non-application (i.e., primordial or extension), but it has a call back edge to an application node;


***For edges***:

- All the outgoing edges from application nodes;
- All the outgoing edges from non-application nodes but wholse target is an application node (or is in a path that will lead to a call back to the application);

- The node correspond to a method implemented by the application (application-scope);
- The node is non-application (i.e., primordial or extension), but it has a call back edge to an application node;


***For edges***:
- All the outgoing edges from application nodes;
- All the outgoing edges from non-application nodes but wholse target is an application node (or is in a path that will lead to a call back to the application);

## Test Cases

### Ser1

- **Expected Output**: It expects a direct call from `ser.Demo.writeObject` to
`java.io.ObjectOutputStream.defaultWriteObject`.

- **Actual Output**:![]()
22 changes: 22 additions & 0 deletions callgraphs/Ser1-JRE1.8.jar.dot
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
digraph G {
rankdir=LR;
graph[label="Call graph view for Ser1-JRE1.8.jar"];
node[style=filled,fillcolor ="white",shape=box,margin=0.02,width=0,height=0];
"4_Object.<init>()"[fillcolor=peachpuff,color=salmon2];
"5_Demo.main(String[])"[fillcolor=palegreen,color=darkseagreen];
"8_Demo.<init>()"[fillcolor=palegreen,color=darkseagreen];
"10_FileOutputStream.<init>(String)"[fillcolor=peachpuff,color=salmon2];
"12_ObjectOutputStream.<init>(OutputStream)"[fillcolor=peachpuff,color=salmon2];
"14_salsa.model.ObjectOutputStream.writeObject(Object)"[shape=underline,fillcolor=white,color=darkslategray];
"15_ObjectOutputStream.close()"[fillcolor=peachpuff,color=salmon2];
"410_Demo.writeObject(ObjectOutputStream)"[fillcolor=palegreen,color=darkseagreen];
"411_ObjectOutputStream.defaultWriteObject()"[fillcolor=peachpuff,color=salmon2];
"5_Demo.main(String[])" -> "8_Demo.<init>()";
"5_Demo.main(String[])" -> "10_FileOutputStream.<init>(String)";
"5_Demo.main(String[])" -> "12_ObjectOutputStream.<init>(OutputStream)";
"5_Demo.main(String[])" -> "14_salsa.model.ObjectOutputStream.writeObject(Object)";
"5_Demo.main(String[])" -> "15_ObjectOutputStream.close()";
"8_Demo.<init>()" -> "4_Object.<init>()";
"14_salsa.model.ObjectOutputStream.writeObject(Object)" -> "410_Demo.writeObject(ObjectOutputStream)";
"410_Demo.writeObject(ObjectOutputStream)" -> "411_ObjectOutputStream.defaultWriteObject()";
}
Binary file added callgraphs/Ser1-JRE1.8.jar.pdf
Binary file not shown.
Binary file added callgraphs/Ser1-JRE1.8.jar.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified jars/Ser1-JRE1.8.jar
Binary file not shown.
Binary file removed jars/Ser2-JRE1.8.jar
Binary file not shown.
Binary file removed jars/Ser3-JRE1.8.jar
Binary file not shown.
Binary file removed jars/Ser4-JRE1.8.jar
Binary file not shown.
Binary file removed jars/Ser5-JRE1.8.jar
Binary file not shown.
Binary file removed jars/Ser9-JRE1.8.jar
Binary file not shown.

0 comments on commit 2fb4b02

Please sign in to comment.