From 5a70c3cb783a82416773cfbb94b24a568134e73c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Storsj=C3=B6?= Date: Fri, 7 Sep 2018 00:02:16 +0300 Subject: [PATCH] Extend the dll autoimport test to test references to a external variable with offset --- test/autoimport-lib.c | 10 ++++++++++ test/autoimport-lib.h | 3 +++ test/autoimport-main.c | 11 +++++++++++ 3 files changed, 24 insertions(+) diff --git a/test/autoimport-lib.c b/test/autoimport-lib.c index e8dbf04..a3bf1ab 100644 --- a/test/autoimport-lib.c +++ b/test/autoimport-lib.c @@ -20,6 +20,8 @@ int var; +int array[10]; + int getVar(void) { return var; } @@ -27,3 +29,11 @@ int getVar(void) { void setVar(int val) { var = val; } + +int getArray(int index) { + return array[index]; +} + +void setArray(int index, int val) { + array[index] = val; +} diff --git a/test/autoimport-lib.h b/test/autoimport-lib.h index 10e7281..576179c 100644 --- a/test/autoimport-lib.h +++ b/test/autoimport-lib.h @@ -20,7 +20,10 @@ #define AUTOIMPORT_LIB_H extern int var; +extern int array[10]; int getVar(void); void setVar(int val); +int getArray(int index); +void setArray(int index, int val); #endif diff --git a/test/autoimport-main.c b/test/autoimport-main.c index 53b1f63..7cd58f5 100644 --- a/test/autoimport-main.c +++ b/test/autoimport-main.c @@ -20,6 +20,8 @@ int *ptr = &var; +int *arrayptr = &array[3]; + int main(int argc, char *argv[]) { setVar(42); if (var != 42) return 1; @@ -27,5 +29,14 @@ int main(int argc, char *argv[]) { if (getVar() != 43) return 1; (*ptr)++; if (getVar() != 44) return 1; + + setArray(3, 100); + if (array[3] != 100) return 1; + if (*arrayptr != 100) return 1; + array[3]++; + if (*arrayptr != 101) return 1; + if (getArray(3) != 101) return 1; + (*arrayptr)++; + if (getArray(3) != 102) return 1; return 0; }