diff options
Diffstat (limited to 'source4/lib/replace')
-rw-r--r-- | source4/lib/replace/Makefile.in | 2 | ||||
-rw-r--r-- | source4/lib/replace/repdir/config.m4 | 16 | ||||
-rw-r--r-- | source4/lib/replace/test/os2_delete.c | 10 | ||||
-rw-r--r-- | source4/lib/replace/test/testsuite.c | 9 |
4 files changed, 25 insertions, 12 deletions
diff --git a/source4/lib/replace/Makefile.in b/source4/lib/replace/Makefile.in index adaf0cd956..6940673a78 100644 --- a/source4/lib/replace/Makefile.in +++ b/source4/lib/replace/Makefile.in @@ -36,7 +36,7 @@ test: testsuite installcheck: install test -TEST_OBJS = test/testsuite.o +TEST_OBJS = test/testsuite.o test/os2_delete.o testsuite: libreplace.a $(TEST_OBJS) $(CC) -o testsuite $(TEST_OBJS) -L. -lreplace diff --git a/source4/lib/replace/repdir/config.m4 b/source4/lib/replace/repdir/config.m4 index b2a20ccee6..cc91f2a97a 100644 --- a/source4/lib/replace/repdir/config.m4 +++ b/source4/lib/replace/repdir/config.m4 @@ -1,15 +1,21 @@ AC_CACHE_CHECK([for broken readdir],samba_cv_HAVE_BROKEN_READDIR,[ - AC_TRY_RUN([#include "$libreplacedir/test/os2_delete.c"], - [samba_cv_HAVE_BROKEN_READDIR=no], - [samba_cv_HAVE_BROKEN_READDIR=yes], - [samba_cv_HAVE_BROKEN_READDIR="assuming not"])]) + AC_TRY_RUN([ +#define test_readdir_os2_delete main +#include "$libreplacedir/test/os2_delete.c"], + [samba_cv_HAVE_BROKEN_READDIR=no], + [samba_cv_HAVE_BROKEN_READDIR=yes], + [samba_cv_HAVE_BROKEN_READDIR="assuming not"]) +]) if test x"$samba_cv_HAVE_BROKEN_READDIR" = x"yes"; then AC_CACHE_CHECK([for replacing readdir],samba_cv_REPLACE_READDIR,[ AC_TRY_RUN([ #include "$libreplacedir/repdir/repdir.c" +#define test_readdir_os2_delete main #include "$libreplacedir/test/os2_delete.c"], - samba_cv_REPLACE_READDIR=yes,samba_cv_REPLACE_READDIR=no)]) + [samba_cv_REPLACE_READDIR=yes], + [samba_cv_REPLACE_READDIR=no]) +]) fi SMB_ENABLE(REPLACE_READDIR, NO) diff --git a/source4/lib/replace/test/os2_delete.c b/source4/lib/replace/test/os2_delete.c index 288e4a5d8f..c73b7e54cd 100644 --- a/source4/lib/replace/test/os2_delete.c +++ b/source4/lib/replace/test/os2_delete.c @@ -12,9 +12,6 @@ #include <errno.h> #include <string.h> #include <fcntl.h> -#ifdef REPLACE_READDIR -#include "lib/replace/repdir/repdir.h" -#endif #define NUM_FILES 700 #define READDIR_SIZE 100 @@ -22,7 +19,10 @@ #define TESTDIR "test.dir" -#define FAILED(d) (fprintf(stderr, "Failed for %s - %s\n", d, strerror(errno)), exit(1), 1) +static int test_readdir_os2_delete_ret; + +#define FAILED(d) (fprintf(stderr, "Failed for %s - %s\n", d, strerror(errno)), test_readdir_os2_delete_ret = 1, 1) +#define CHECK do { if (test_readdir_os2_delete_ret != 0) return test_readdir_os2_delete_ret; } while (0) #ifndef MIN #define MIN(a,b) ((a)<(b)?(a):(b)) @@ -78,7 +78,7 @@ static int os2_delete(DIR *d) return j; } -int main(void) +int test_readdir_os2_delete(void) { int total_deleted = 0; DIR *d; diff --git a/source4/lib/replace/test/testsuite.c b/source4/lib/replace/test/testsuite.c index 89d2ae6a88..6644fce6bd 100644 --- a/source4/lib/replace/test/testsuite.c +++ b/source4/lib/replace/test/testsuite.c @@ -229,8 +229,15 @@ static int test_opendir(void) return true; } -static int test_readdir(void) +extern int test_readdir_os2_delete(void); + +static bool test_readdir(void) { + printf("testing readdir\n"); + if (test_readdir_os2_delete() != 0) { + return false; + } + /* FIXME */ return true; } |