r18041: started on the bodies of the testsuite functions for libreplace
authorAndrew Tridgell <tridge@samba.org>
Mon, 4 Sep 2006 13:10:49 +0000 (13:10 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:17:07 +0000 (14:17 -0500)
(This used to be commit a2a6782ec721312e329cd16b609fb3eff8ad284d)

source4/lib/replace/Makefile.in
source4/lib/replace/test/testsuite.c

index a53a1271ef854971211f8dcc4f6eb1602da4d946..2f13b978361f74bd4c4830c53a3965754f238650 100644 (file)
@@ -13,7 +13,7 @@ CFLAGS=-I. -I$(srcdir) @CFLAGS@
 
 OBJS = dlfcn.o getpass.o replace.o snprintf.o
 
-all: libreplace.a
+all: libreplace.a testsuite
 
 install: all
        mkdir -p $(libdir)
index 83da05ce456df7a6762607816ade89c4d4f4f141..c00e2a788fdd5b7fecaa5736b5300b9d96c16824 100644 (file)
 #include "../replace.h"
 #include <stdio.h>
 
+#if HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#if HAVE_TYPES_H
+#include <sys/types.h>
+#endif
+
+#if HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+
+#include <fcntl.h>
+#include <errno.h>
+
+#define TESTFILE "testfile.dat"
+
+/*
+  test ftruncate() function
+ */
 static int test_ftruncate()
 {
-       /* FIXME */
+       struct stat st;
+       int fd, i;
+       const int size;
+       printf("testing ftruncate\n");
+       unlink(TESTFILE);
+       fd = open(TESTFILE, O_RDWR|O_CREAT, 0600);
+       if (fd == -1) {
+               printf("creating '%s' failed - %s\n", TESTFILE, strerror(errno));
+               return false;
+       }
+       if (ftruncate(fd, size) != 0) {
+               printf("ftruncate failed - %s\n", strerror(errno));
+               return false;
+       }
+       if (fstat(fd, &st) != 0) {
+               printf("fstat failed - %s\n", strerror(errno));
+               return false;
+       }
+       if (st.st_size != size) {
+               printf("ftruncate gave wrong size %d - expected %d\n",
+                      (int)st.st_size, size);
+               return false;
+       }
        return true;
 }