aboutsummaryrefslogtreecommitdiffstats
path: root/capstone/suite/cstest/include/capstone_test.h
diff options
context:
space:
mode:
Diffstat (limited to 'capstone/suite/cstest/include/capstone_test.h')
-rw-r--r--capstone/suite/cstest/include/capstone_test.h62
1 files changed, 62 insertions, 0 deletions
diff --git a/capstone/suite/cstest/include/capstone_test.h b/capstone/suite/cstest/include/capstone_test.h
new file mode 100644
index 000000000..5936678f0
--- /dev/null
+++ b/capstone/suite/cstest/include/capstone_test.h
@@ -0,0 +1,62 @@
+/* Capstone testing regression */
+/* By Do Minh Tuan <tuanit96@gmail.com>, 02-2019 */
+
+
+#ifndef CAPSTONE_TEST_H
+#define CAPSTONE_TEST_H
+
+#include <stdarg.h>
+#include <stddef.h>
+#include <setjmp.h>
+#include <cmocka.h>
+#include <stdlib.h>
+#include <string.h>
+#include <capstone/capstone.h>
+#include "helper.h"
+#include "factory.h"
+
+#define cs_assert_err(expect, err) \
+ do { \
+ cs_err __err = err; \
+ if (__err != expect) { \
+ fail_msg("%s",cs_strerror(__err)); \
+ } \
+ } while (0)
+
+
+#define cs_assert_success(err) cs_assert_err(CS_ERR_OK, err)
+
+
+#define cs_assert_fail(err) \
+ do { \
+ cs_err __err = err; \
+ if (__err == CS_ERR_OK) { \
+ fail_msg("%s",cs_strerror(__err)); \
+ } \
+ } while (0)
+
+#define NUMARCH 10
+#define NUMMODE 35
+#define NUMOPTION 41
+#define MAXMEM 1024
+
+typedef struct {
+ const char *str;
+ unsigned int value;
+} single_dict;
+
+typedef struct {
+ const char *str;
+ unsigned int first_value;
+ unsigned int second_value;
+} double_dict;
+
+extern char *(*function)(csh *, cs_mode, cs_insn*);
+
+int get_index(double_dict d[], unsigned size, const char *str);
+int get_value(single_dict d[], unsigned size, const char *str);
+void test_single_MC(csh *handle, int mc_mode, char *line);
+void test_single_issue(csh *handle, cs_mode mode, char *line, int detail);
+int set_function(int arch);
+
+#endif /* CAPSTONE_TEST_H */