|
2 | 2 |
|
3 | 3 |
|
4 | 4 | This folder contains the visualization of the call graphs computed by `Salsa`.
|
5 |
| -Each PDF provides the call graph computed with and without Salsa, where we can see missing edges and nodes from the call graph. |
6 | 5 |
|
7 |
| -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. |
8 |
| -For the sake of clarity, each PDF only includes nodes and edges if they fulfill the following criteria: |
| 6 | +- Each PDF provides the call graph computed with and without Salsa, where we can see missing edges and nodes from the call graph. |
| 7 | +- 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; |
| 8 | +- 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). |
| 9 | +- 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. |
9 | 10 |
|
10 |
| -***For nodes***: |
| 11 | + For the sake of clarity, each PDF only includes nodes and edges if they fulfill the following criteria: |
| 12 | + |
| 13 | + ***For nodes***: |
| 14 | + |
| 15 | + - The node correspond to a method implemented by the application (application-scope); |
| 16 | + - The node is non-application (i.e., primordial or extension), but it has a call back edge to an application node; |
| 17 | + |
| 18 | + |
| 19 | + ***For edges***: |
| 20 | + |
| 21 | + - All the outgoing edges from application nodes; |
| 22 | + - 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); |
11 | 23 |
|
12 |
| -- The node correspond to a method implemented by the application (application-scope); |
13 |
| -- The node is non-application (i.e., primordial or extension), but it has a call back edge to an application node; |
14 | 24 |
|
15 | 25 |
|
16 |
| -***For edges***: |
17 |
| -- All the outgoing edges from application nodes; |
18 |
| -- 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); |
19 | 26 |
|
| 27 | +## Test Cases |
20 | 28 |
|
| 29 | +### Ser1 |
| 30 | + |
| 31 | +- **Expected Output**: It expects a direct call from `ser.Demo.writeObject` to |
| 32 | +`java.io.ObjectOutputStream.defaultWriteObject`. |
| 33 | + |
| 34 | +- **Actual Output**:![]() |
0 commit comments