Skip to content

seal-hub/bencheroid

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A benchmark for event-race analysis in android apps

BenchERoid is an open repository of (potential and actual) event-race bugs in Android apps.


We welcome your contributions!*

You are most welcome to contribute additional event-race bugs to BenchERoid. To do so, please fork the project, commit an appropriate Android Studio source project (in SourceCode) and APK (in APKs), update this README by adding a row to the end of Benchmark App Info and then send us a pull request.

* adapted from DroidBench

Publication

  • Salehnamadi, N., Alshayban, A., Ahmed, I. and Malek, S., 2020, June. A benchmark for event-race analysis in android apps. In Proceedings of the 18th International Conference on Mobile Systems, Applications, and Services (pp. 466-467).

Benchmark App Info

The locations of event races are represented as [Event1, Event2, Field] where Event1 and Event2 are defined as FileName (Line Number).

Id Name Concurrency API Synchronization Mechanism Involved Components Android Callbacks ICC Internal Entities #ER ER Location(s)
1 AsyncTask1 AsyncTask Parallel Activity LC, EL Thread 1 [MainActivity.java (61), MainActivity.java (47), coordinates]
2 AsyncTask2 AsyncTask Serial Activity LC, EL Execution Order,Thread 0
3 AsyncTask3 AsyncTask Parallel Activity LC, EL Input,Thread 1 [MainActivity.java (51), MainActivity.java (48), coordinates]
4 AsyncTask4 AsyncTask Parallel Activity LC, EL Thread 1 [MainActivity.java (62), MainActivity.java (48), coordinates]
5 AsyncTask5 AsyncTask Parallel, Serial Activity Thread 1 [MainActivity.java (44), MainActivity.java (44), A]
6 AsyncTask6 AsyncTask Serial Activity Thread 0
7 Executor1 Executor Activity LC, EL 1 [MainActivity.java (48), MainActivity.java (31), coordinates]
8 Executor2 Executor Serial Activity Execution Order 1 [MainActivity.java (33), MainActivity.java (42), B]
9 LifeCycle1 Activity LC 3 [MainActivity.java (20), MainActivity.java (56), onDestroy_onCreate], [MainActivity.java (43), MainActivity.java (25), onStart_onStop], [MainActivity.java (37), MainActivity.java (31), onResume_onPause]
10 LifeCycle2 Activity LC, EL 0
11 LifeCycle3 Activity LC 2 [MainActivity.java (33), MainActivity.java (42), onResume_onScrollChange], [MainActivity.java (26), MainActivity.java (48), onClick_onStop]
12 LifeCycle4 Thread Activity LC Time 1 [MainActivity.java (33), MainActivity.java (47), coordinates]
13 Looper1 Handler Looper Activity LC, EL Execution Order, Input, Thread 0
14 Looper2 Handler Looper Activity LC, EL Thread 1 [MainActivity.java (47), MainActivity.java (54), coordinates]
15 Looper3 Handler Looper, AtFrontOfQueue Activity 1 [MainActivity.java (29), MainActivity.java (23), A]
16 MultiComp1 Activity,BroadcastReceiver LC, EL Input 2 [MainActivity.java (58), MainActivity.java (51), A],[MyReceiver.java (16), Main2Activity.java (24), memoryObject.object]
17 Receiver1 Activity,BroadcastReceiver 1 [MainActivity.java (29), MainActivity.java (18), coordinates]
18 Service1 Activity,Service LC, EL Input 0
19 Service2 Handler withDelay Activity,Service LC, EL 3 [MainActivity.java(42), MyService.java (22), myMemoryObject], [MainActivity.java(48), MainActivity.java (32), secondMemoryObject],[MainActivity.java(49), MainActivity.java (32), myBinder]
20 Service3 IntentService Activity,Service LC 1 [MainActivity.java(27), Service3.java(26), mCoordinates]
21 Service4 IntentService Serial Activity,Service LC Execution Order 0
22 Service5 Serial Activity,Service LC &empty 1 [MainActivity.java(36), MyService.java (18), A]
23 SingleActivity1 Activity EL 1 [MainActivity.java(35), MainActivity.java (31), memoryObject]
24 SingleActivity2 Handler Activity 0
25 SingleActivity3 Handler Activity Thread 1 [MainActivity.java(22), MainActivity.java (22), memoryObject]
26 SingleActivity4 Handler Looper, withDelay, AtFrontOfQueue Activity LC Execution Order, Time 0
27 SingleActivity5 Handler Looper Activity LC Execution Order 2 [MainActivity.java(24), MainActivity.java (43), A],[MainActivity.java (52), MainActivity.java (33), D]
28 SingleActivity6 Thread, Handler Looper Activity LC Execution Order, Thread 2 [MainActivity.java(20), MainActivity.java (27), A],[MainActivity.java (32), MainActivity.java (38), C]
29 SingleActivity7 Handler Looper Activity LC, EL Execution Order, Thread 2 [MainActivity.java(24), MainActivity.java (25), B]
30 SingleActivity8 Handler, AsyncTask Looper Activity LC, EL Execution Order 2 [MainActivity.java(30), MainActivity.java (51), A], [MainActivity.java (41), MainActivity.java (23), flag]
31 TimerTask1 Timer withDelay Activity LC, EL 1 [MainActivity.java(37), MainActivity.java(51), coordinates]
32 TimerTask2 Timer withDelay Activity Time 1 [MainActivity.java(27), MainActivity.java(37), A]
33 Thread1 Thread wait/notify Activity Thread 1 [MainActivity.java(32), MainActivity.java(25), secondMemoryObject]
34 Thread2 Thread wait/notify Activity 1 [MainActivity.java(32), MainActivity.java(46), secondMemoryObject]

About

A Micro-Benchmark for Event Races in Android

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published