xref: /aosp_15_r20/external/capstone/suite/cstest/README.md (revision 9a0e4156d50a75a99ec4f1653a0e9602a5d45c18)
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