1*9a0e4156SSadaf Ebrahimi# Regression testing 2*9a0e4156SSadaf EbrahimiThis directory contains a tool for regression testing core of Capstone 3*9a0e4156SSadaf Ebrahimi 4*9a0e4156SSadaf Ebrahimi## Dependency 5*9a0e4156SSadaf Ebrahimi 6*9a0e4156SSadaf Ebrahimi- MacOS users can install cmocka with: 7*9a0e4156SSadaf Ebrahimi 8*9a0e4156SSadaf Ebrahimi``` 9*9a0e4156SSadaf Ebrahimibrew install cmocka 10*9a0e4156SSadaf Ebrahimi``` 11*9a0e4156SSadaf Ebrahimi 12*9a0e4156SSadaf Ebrahimi- Or download & build from source code [Cmocka](https://git.cryptomilk.org/projects/cmocka.git) 13*9a0e4156SSadaf Ebrahimi 14*9a0e4156SSadaf Ebrahimi- Build Cmocka 15*9a0e4156SSadaf Ebrahimi 16*9a0e4156SSadaf Ebrahimi``` 17*9a0e4156SSadaf Ebrahimicd cmocka_dir 18*9a0e4156SSadaf Ebrahimimkdir build 19*9a0e4156SSadaf Ebrahimicd build 20*9a0e4156SSadaf Ebrahimicmake .. 21*9a0e4156SSadaf Ebrahimimake 22*9a0e4156SSadaf Ebrahimisudo make isntall 23*9a0e4156SSadaf Ebrahimi``` 24*9a0e4156SSadaf Ebrahimi 25*9a0e4156SSadaf Ebrahimi## Build 26*9a0e4156SSadaf Ebrahimi 27*9a0e4156SSadaf Ebrahimi- Build `cstest` 28*9a0e4156SSadaf Ebrahimi 29*9a0e4156SSadaf Ebrahimi``` 30*9a0e4156SSadaf Ebrahimicd suite/cstest 31*9a0e4156SSadaf Ebrahimimake 32*9a0e4156SSadaf Ebrahimi``` 33*9a0e4156SSadaf Ebrahimi 34*9a0e4156SSadaf Ebrahimi## Usage 35*9a0e4156SSadaf Ebrahimi 36*9a0e4156SSadaf Ebrahimi- Usage: `cstest [-e] [-f <file_name.cs>] [-d <directory>]` 37*9a0e4156SSadaf Ebrahimi - `-e` : test all commented test 38*9a0e4156SSadaf Ebrahimi 39*9a0e4156SSadaf Ebrahimi- Test for all closed issues 40*9a0e4156SSadaf Ebrahimi 41*9a0e4156SSadaf Ebrahimi``` 42*9a0e4156SSadaf Ebrahimicd suite/cstest 43*9a0e4156SSadaf Ebrahimi./build/cstest -f ./issues.cs 44*9a0e4156SSadaf Ebrahimi``` 45*9a0e4156SSadaf Ebrahimi 46*9a0e4156SSadaf Ebrahimi- Test for some input from LLVM 47*9a0e4156SSadaf Ebrahimi 48*9a0e4156SSadaf Ebrahimi``` 49*9a0e4156SSadaf Ebrahimicd suite/cstest 50*9a0e4156SSadaf Ebrahimi./build/cstest -f ../MC/AArch64/basic-a64-instructions.s.cs 51*9a0e4156SSadaf Ebrahimi``` 52*9a0e4156SSadaf Ebrahimi 53*9a0e4156SSadaf Ebrahimi- Test for all cs file in a folder 54*9a0e4156SSadaf Ebrahimi 55*9a0e4156SSadaf Ebrahimi``` 56*9a0e4156SSadaf Ebrahimicd suite/cstest 57*9a0e4156SSadaf Ebrahimi./build/cstest -d ../MC 58*9a0e4156SSadaf Ebrahimi``` 59*9a0e4156SSadaf Ebrahimi 60*9a0e4156SSadaf Ebrahimi- Test all 61*9a0e4156SSadaf Ebrahimi 62*9a0e4156SSadaf Ebrahimi``` 63*9a0e4156SSadaf Ebrahimicd suite/cstest 64*9a0e4156SSadaf Ebrahimimake cstest 65*9a0e4156SSadaf Ebrahimi``` 66*9a0e4156SSadaf Ebrahimi 67*9a0e4156SSadaf Ebrahimi## Report tool 68*9a0e4156SSadaf Ebrahimi 69*9a0e4156SSadaf Ebrahimi- Usage `cstest_report.py [-Dc] -t <cstest_path> [-f <file_name.cs>] [-d <directory>]` 70*9a0e4156SSadaf Ebrahimi - `-D` : print details 71*9a0e4156SSadaf Ebrahimi - `-c` : auto comment out failed test 72*9a0e4156SSadaf Ebrahimi 73*9a0e4156SSadaf Ebrahimi- Example: 74*9a0e4156SSadaf Ebrahimi 75*9a0e4156SSadaf Ebrahimi``` 76*9a0e4156SSadaf Ebrahimi./cstest_report.py -t build/cstest -d ../MC/PowerPC/ 77*9a0e4156SSadaf Ebrahimi./cstest_report.py -t build/cstest -f issues.cs 78*9a0e4156SSadaf Ebrahimi``` 79