aboutsummaryrefslogtreecommitdiff
path: root/tests/abitest.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/abitest.c')
-rw-r--r--tests/abitest.c39
1 files changed, 25 insertions, 14 deletions
diff --git a/tests/abitest.c b/tests/abitest.c
index 9cdeb87..896e97b 100644
--- a/tests/abitest.c
+++ b/tests/abitest.c
@@ -13,8 +13,24 @@
#define LONG_DOUBLE_LITERAL(x) x ## L
#endif
-static const char *tccdir = NULL;
-static const char *include_dir = NULL;
+static int g_argc;
+static char **g_argv;
+
+static void set_options(TCCState *s, int argc, char **argv)
+{
+ int i;
+ for (i = 1; i < argc; ++i) {
+ char *a = argv[i];
+ if (a[0] == '-') {
+ if (a[1] == 'B')
+ tcc_set_lib_path(s, a+2);
+ else if (a[1] == 'I')
+ tcc_add_include_path(s, a+2);
+ else if (a[1] == 'L')
+ tcc_add_library_path(s, a+2);
+ }
+ }
+}
typedef int (*callback_type) (void*);
@@ -29,12 +45,9 @@ static int run_callback(const char *src, callback_type callback) {
s = tcc_new();
if (!s)
return -1;
- if (tccdir)
- tcc_set_lib_path(s, tccdir);
- if (include_dir) {
- if (tcc_add_include_path(s, include_dir) == -1)
- return -1;
- }
+
+ set_options(s, g_argc, g_argv);
+
if (tcc_set_output_type(s, TCC_OUTPUT_MEMORY) == -1)
return -1;
if (tcc_compile_string(s, src) == -1)
@@ -611,13 +624,11 @@ int main(int argc, char **argv) {
/* if tcclib.h and libtcc1.a are not installed, where can we find them */
for (i = 1; i < argc; ++i) {
- if (!memcmp(argv[i], "lib_path=",9))
- tccdir = argv[i] + 9;
- else if (!memcmp(argv[i], "run_test=", 9))
+ if (!memcmp(argv[i], "run_test=", 9))
testname = argv[i] + 9;
- else if (!memcmp(argv[i], "include=", 8))
- include_dir = argv[i] + 8;
- }
+ }
+
+ g_argv = argv, g_argc = argc;
RUN_TEST(ret_int_test);
RUN_TEST(ret_longlong_test);