Please follow the Maple User Guide to build the branch Maple-IDAT.
|_is_update_memo | enable the memoization option in Maple
|_is_fatal | detect only the first concurrency bug
|_num_of_candidate_testcase | initial number of candidate test inputs
|_rand_upper | upper bound of a random integer
|_rand_lower | lower bound of a random integer
$ <maple_home>/script/idiom my_rand_gen_10 --- <absolute_path_to_the_executable_under_test>
$ <maple_home>/script/idiom my_test_gen_10 --- <absolute_path_to_the_executable_under_test>
$ <maple_home>/script/idiom my_test_genp_10 --- <absolute_path_to_the_executable_under_test>
The SPLASH-2 programs experimented are from the PARSEC 3.0 Benchmark Suite. They are located at <parsec_home>/ext/splash2/kernels/
.
For radix
,
$ <maple_home>/script/idiom my_test_pro_10 --- <absolute_path_to_the_SPLASH2_executable_under_test>
This also works for other SPLASH-2 programs, e.g., fft
and lu_cb
, but gen_testcase_splash()
in <maple_home>/script/maple/idiom/main.py
may need to be revised accordingly to generate valid command options for these programs.
Han Yue, Peng Wu, Tsong-Yueh Chen and Yi Lv. Input-driven Active Testing of Multi-threaded Programs. APSEC 2015, pp. 246-253