Skip to content

Commit aeaeb9a

Browse files
committed
work on artifact description
1 parent 960d639 commit aeaeb9a

File tree

33 files changed

+217
-2850
lines changed

33 files changed

+217
-2850
lines changed

implementation/ECOOP_AE_Submission_Document.md

+20-2
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,6 @@ ECOOP submission number for the paper: **303**
2121

2222
Please describe how reviewers can check the artifact's integrity and basic functionality.
2323

24-
TODO####!!!!!: test these on a different machine before submitting artifact.
25-
2624
There are two docker containers, one for Wistoria and another for the Infer/Pulse comparison.
2725
Separation of these containers was done to avoid dependency conflicts.
2826
Please test that both are working using the following instructions:
@@ -48,8 +46,20 @@ TODO####!!!! add instructions here once c has script
4846
Please list for each distinct component of your artifact:
4947

5048
* type of artifact (data, code, proof, etc.)
49+
* Wistoria: Source code for Wistoria (based on the Historia implementation)
50+
* Benchmarks: Data in the form of the source code for the 9 benchmarks from the paper.
51+
* CBCFTL specification: Data in the form of CBCFTL specifications used for the experiments.
52+
* Recorded Traces: Data in the form of recorded runtime traces for each app.
5153
* format (e.g., CSV, source code, binary, etc.)
54+
* Wistoria: Scala code
55+
* Benchmarks: Java code, Android project config files,
56+
* CBCFTL specifications: Defined directly using the CBCFTL AST case classes in Scala code (no human-readable parser).
57+
* Recorded Traces: text log files.
5258
* location in the container/VM
59+
* Wistoria: `/home/bounder/`
60+
* Benchmarks: `/home/testApps/ChatGPT_Benchmarks`. Each benchmark is in own directory corresponding to the names. The implementation is in `app_bug` subdirectory)
61+
* CBCFTL: `/home/notebooks/reachExpGPT/ReachExpGPT.ipynb` and `/home/bounder/src/main/scala/edu/colorado/plv/bounder/lifestate/Specification.scala`
62+
* Recorded Traces: May be found in the corresponding benchmark directory and are named `logcat.txt` or `logcat[n].txt` where n is some number.
5363

5464
## For authors claiming an available badge
5565

@@ -70,6 +80,14 @@ For example: “The data in table 1 can be obtained by running script ‘generat
7080

7181
Please note: we highly advise authors to provide a push-button evaluation (cf. call for artifacts).
7282

83+
* Table 1:
84+
* This is data that was obtained by manually counting and inspecting the applications in the Benchmarks directories mentioned earlier.
85+
* Table 2:
86+
* This is a summary of the error condition in `ReachExpGPT.ipynb` and may be found as the variable `query` for each benchmark.
87+
* Table 3:
88+
* After running the `ReachExpGPT.ipynb` notebook with `Kernel -> Restart Kernel and Run All Cells...`
89+
* Table 3 will be displayed under the header "Table 3 Producing Realistic Execution Histories"
90+
7391
## For authors claiming a reusable badge
7492

7593
If some parts of your artifacts contains software:

notebooks/reachExpGPT/Bitmap/stdout.tct

-1,246
Large diffs are not rendered by default.
Original file line numberDiff line numberDiff line change
@@ -1,32 +1 @@
11
java.library.path set to: /usr/lib/:/usr/java/packages/lib:/usr/lib/x86_64-linux-gnu/jni:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/jni:/lib:/usr/lib
2-
remaining tasks: 1 / 2
3-
ord depth: 0
4-
remaining tasks: 0 / 2
5-
ord depth: 0
6-
depth: 0
7-
depth: 0
8-
State: ( locals: @this -> p-0 heap: pure: types: List(p-0:{3963}) trace: )
9-
State: ( locals: @this -> p-0 heap: pure: types: List(p-0:{3963}) trace: )
10-
Loc : pre-line: 55 return
11-
Loc : pre-line: 55 return
12-
Method : Some(JimpleMethodLoc(<com.example.configchange.MainActivity: void onDestroy()>))
13-
Method : Some(JimpleMethodLoc(<com.example.configchange.MainActivity: void onDestroy()>))
14-
remaining tasks: 0 / 1
15-
ord depth: 2
16-
depth: 39
17-
State: ( locals: @this -> p-1 heap: pure: p-0 != NULL types: List(p-0:{3963}, p-1:{3963}) trace: O(CBExit I_CBExit_ActivityonCreate ( _T_,p-1 );O(CBEnter I_CBEnter_ActivityonDestroy ( _T_,p-0 ))
18-
Loc : post-line: 49 return
19-
Method : Some(JimpleMethodLoc(<com.example.configchange.MainActivity: void onCreate(android.os.Bundle)>))
20-
ecluded method: JimpleMethodLoc(<com.example.configchange.MainActivity: void dumpFields(java.lang.Object,java.lang.Class)>)
21-
!!!Found witness, terminating other processes.
22-
Writing trace 0 / 1, length: 233
23-
Writing trace 0 / 1, length: 37
24-
witness:
25-
( heap: pure: p-0 != NULL && p-1 != NULL types: List(p-0:{3963}, p-1:{3963}) trace: O(CBEnter I_CBEnter_ActivityonCreate ( _T_,p-1 );O(CBExit I_CBExit_ActivityonCreate ( _T_,p-1 );O(CBEnter I_CBEnter_ActivityonDestroy ( _T_,p-0 ))
26-
last state:
27-
Future trace:
28-
CBEnter void onCreate(android.os.Bundle)( _T_,@2 )
29-
CBExit void onCreate(android.os.Bundle)( _T_,@2 )
30-
CBEnter void onDestroy()( _T_,@2 )
31-
32-
analysis time(ms): 19346983059
Original file line numberDiff line numberDiff line change
@@ -1,37 +1 @@
11
java.library.path set to: /usr/lib/:/usr/java/packages/lib:/usr/lib/x86_64-linux-gnu/jni:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/jni:/lib:/usr/lib
2-
remaining tasks: 0 / 2
3-
ord depth: 0
4-
depth: 0
5-
remaining tasks: 1 / 2
6-
ord depth: 0
7-
depth: 0
8-
State: ( locals: @this -> p-0 heap: pure: types: List(p-0:{1199}) trace: )
9-
State: ( locals: @this -> p-0 heap: pure: types: List(p-0:{1199}) trace: )
10-
Loc : pre-line: 77 return
11-
Loc : pre-line: 77 return
12-
Method : Some(JimpleMethodLoc(<com.example.bitmapmishandle.MainActivity: void onDestroy()>))
13-
Method : Some(JimpleMethodLoc(<com.example.bitmapmishandle.MainActivity: void onDestroy()>))
14-
remaining tasks: 0 / 1
15-
ord depth: 2
16-
depth: 39
17-
State: ( locals: heap: pure: p-0 != NULL types: List(p-0:{1199}) trace: O(CBEnter I_CBEnter_ActivityonDestroy ( _T_,p-0 ))
18-
Loc : post-line: 71 return
19-
Method : Some(JimpleMethodLoc(<com.example.bitmapmishandle.MainActivity: void onCreate(android.os.Bundle)>))
20-
ecluded method: JimpleMethodLoc(<com.example.bitmapmishandle.MainActivity: void dumpFields(java.lang.Object,java.lang.Class)>)
21-
!!!Found witness, terminating other processes.
22-
Writing trace 0 / 1, length: 391
23-
Writing trace 0 / 1, length: 37
24-
witness:
25-
( heap: pure: p-2 != NULL && p-3 != NULL && p-0 != NULL && p-1 != NULL types: List(p-0:{1199}, p-1:{1213}, p-3:{1199}, p-2:{1207}) trace: O(CBEnter I_CBEnter_ActivityonCreate ( _T_,p-3 );p-2;O(CIExit I_CIExit_Dialoginit ( _T_,p-2,p-3 );O(CIExit I_CIExit_DialogsetMessage ( _T_,p-2,NULL );O(CIExit I_CIExit_Dialogshow ( _T_,_T_ );p-1;O(CIExit I_CIExit_Threadstart ( _T_,p-1 );O(CBEnter I_CBEnter_ActivityonDestroy ( _T_,p-0 ))
26-
last state:
27-
Future trace:
28-
CBEnter void onCreate(android.os.Bundle)( _T_,@7 )
29-
TNew(@2,{1})
30-
CIExit <init>(( _T_,@2,@7 )
31-
CIExit setMessage(( _T_,@2,NULL )
32-
CIExit show(( _T_,_T_ )
33-
TNew(@4,{2})
34-
CIExit void start(( _T_,@4 )
35-
CBEnter void onDestroy()( _T_,@5 )
36-
37-
analysis time(ms): 5986590275

0 commit comments

Comments
 (0)