summaryrefslogtreecommitdiffstats
path: root/testsuites/fstests/fslink/test.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--testsuites/fstests/fslink/test.c261
1 files changed, 91 insertions, 170 deletions
diff --git a/testsuites/fstests/fslink/test.c b/testsuites/fstests/fslink/test.c
index 50ec89d48a..a9df8ffd4b 100644
--- a/testsuites/fstests/fslink/test.c
+++ b/testsuites/fstests/fslink/test.c
@@ -1,4 +1,3 @@
-
/*
* COPYRIGHT (c) 1989-2011.
* On-Line Applications Research Corporation (OAR).
@@ -23,215 +22,137 @@
#include "fstest.h"
-mode_t mode = 0644;
/*
* Test if the successful call works as expect
*/
-void link_test01(void )
+void link_test01 (void)
{
- char *name0="t0";
- char *name1="t1";
- char *name2="t2";
- char *name3="t3";
+ char *name0 = "t0";
+ char *name1 = "t1";
+ char *name2 = "t2";
+
int status;
int fd;
+ mode_t mode = 0644;
struct stat statbuf;
- mode_t tmp_mode;
-
- time_t ctime1,dctime1,dmtime1;
- time_t ctime2,dctime2,dmtime2;
-
- puts("link creates hardlinks");
-
- status=mkdir(name3,0755);
- rtems_test_assert(status==0);
-
- status=chdir(name3);
- rtems_test_assert(status==0);
- fd=creat(name0,mode);
- status=close(fd);
- rtems_test_assert(status==0);
-
- status=stat(name0,&statbuf);
- rtems_test_assert(status==0);
- rtems_test_assert(S_ISREG(statbuf.st_mode));
- tmp_mode=(statbuf.st_mode)&ALLPERMS;
- rtems_test_assert(tmp_mode==0644);
- rtems_test_assert(statbuf.st_nlink==1);
- printf("the arg is %04o and the is %04o \n",tmp_mode,mode);
- puts("test if the stat is the same");
- status=link(name0,name1);
- rtems_test_assert(status==0);
- status=stat(name0,&statbuf);
- rtems_test_assert(status==0);
+ puts ("link creates hardlinks");
+ fd = creat (name0, mode);
+ status = close (fd);
+ rtems_test_assert (status == 0);
- rtems_test_assert(S_ISREG(statbuf.st_mode));
- tmp_mode=(statbuf.st_mode)&ALLPERMS;
- rtems_test_assert(tmp_mode==0644);
- rtems_test_assert(statbuf.st_nlink==2);
+ status = stat (name0, &statbuf);
+ rtems_test_assert (status == 0);
+ rtems_test_assert (statbuf.st_nlink == 1);
- status=stat(name1,&statbuf);
- rtems_test_assert(status==0);
+ puts ("test if the stat is the same");
+ status = link (name0, name1);
+ rtems_test_assert (status == 0);
- rtems_test_assert(S_ISREG(statbuf.st_mode));
- tmp_mode=(statbuf.st_mode)&ALLPERMS;
- rtems_test_assert(tmp_mode==0644);
- rtems_test_assert(statbuf.st_nlink==2);
+ status = stat (name0, &statbuf);
+ rtems_test_assert (status == 0);
- status=link(name1,name2);
+ rtems_test_assert (S_ISREG (statbuf.st_mode));
+ rtems_test_assert (statbuf.st_nlink == 2);
- status=stat(name0,&statbuf);
- rtems_test_assert(status==0);
-
- rtems_test_assert(S_ISREG(statbuf.st_mode));
- tmp_mode=(statbuf.st_mode)&ALLPERMS;
- rtems_test_assert(tmp_mode==0644);
- rtems_test_assert(statbuf.st_nlink==3);
-
- status=stat(name1,&statbuf);
- rtems_test_assert(status==0);
-
- rtems_test_assert(S_ISREG(statbuf.st_mode));
- tmp_mode=(statbuf.st_mode)&ALLPERMS;
- rtems_test_assert(tmp_mode==0644);
- rtems_test_assert(statbuf.st_nlink==3);
-
-
- status=stat(name2,&statbuf);
- rtems_test_assert(status==0);
-
- rtems_test_assert(S_ISREG(statbuf.st_mode));
- rtems_test_assert(statbuf.st_nlink==3);
- tmp_mode=(statbuf.st_mode)&ALLPERMS;
- rtems_test_assert(tmp_mode==0644);
-/*
- * call chmod and chown and test.
- */
+ status = stat (name1, &statbuf);
+ rtems_test_assert (status == 0);
- puts("chmod and chown");
+ rtems_test_assert (S_ISREG (statbuf.st_mode));
+ rtems_test_assert (statbuf.st_nlink == 2);
- chmod(name1,0201);
- chown(name1,65534,65533);
+ /*
+ * link the file and check the nlink
+ */
+ status = link (name1, name2);
+ rtems_test_assert (status == 0);
+ status = stat (name0, &statbuf);
+ rtems_test_assert (status == 0);
- status=stat(name0,&statbuf);
- rtems_test_assert(status==0);
+ rtems_test_assert (S_ISREG (statbuf.st_mode));
+ rtems_test_assert (statbuf.st_nlink == 3);
- rtems_test_assert(S_ISREG(statbuf.st_mode));
- rtems_test_assert(statbuf.st_nlink==3);
- tmp_mode=(statbuf.st_mode)&ALLPERMS;
- rtems_test_assert(tmp_mode==0201);
- rtems_test_assert(statbuf.st_uid=65534);
- rtems_test_assert(statbuf.st_gid=65533);
+ status = stat (name1, &statbuf);
+ rtems_test_assert (status == 0);
- status=stat(name1,&statbuf);
- rtems_test_assert(status==0);
+ rtems_test_assert (S_ISREG (statbuf.st_mode));
+ rtems_test_assert (statbuf.st_nlink == 3);
- rtems_test_assert(S_ISREG(statbuf.st_mode));
- tmp_mode=(statbuf.st_mode)&ALLPERMS;
- rtems_test_assert(tmp_mode==0201);
- rtems_test_assert(statbuf.st_nlink==3);
- rtems_test_assert(statbuf.st_uid=65534);
- rtems_test_assert(statbuf.st_gid=65533);
+ status = stat (name2, &statbuf);
+ rtems_test_assert (status == 0);
- status=stat(name2,&statbuf);
- rtems_test_assert(status==0);
+ rtems_test_assert (S_ISREG (statbuf.st_mode));
+ rtems_test_assert (statbuf.st_nlink == 3);
- rtems_test_assert(S_ISREG(statbuf.st_mode));
- tmp_mode=(statbuf.st_mode)&ALLPERMS;
- rtems_test_assert(tmp_mode==0201);
- rtems_test_assert(statbuf.st_nlink==3);
- rtems_test_assert(statbuf.st_nlink==3);
- rtems_test_assert(statbuf.st_uid=65534);
- rtems_test_assert(statbuf.st_gid=65533);
-/*
- *
- * unlink then test if the nlink changes
- */
+ /*
+ * call chmod and chown and test.
+ */
+ puts ("chmod and chown");
- puts("unlink then stat the file ");
+ chown (name1, 65534, 65533);
- status=unlink(name0);
- rtems_test_assert(status==0);
+ status = stat (name0, &statbuf);
+ rtems_test_assert (status == 0);
- status=stat(name0,&statbuf);
- rtems_test_assert(status==-1);
- rtems_test_assert(errno=ENOENT);
+ rtems_test_assert (S_ISREG (statbuf.st_mode));
+ rtems_test_assert (statbuf.st_nlink == 3);
+ rtems_test_assert (statbuf.st_uid = 65534);
+ rtems_test_assert (statbuf.st_gid = 65533);
+ status = stat (name1, &statbuf);
+ rtems_test_assert (status == 0);
- status=stat(name1,&statbuf);
- rtems_test_assert(status==0);
+ rtems_test_assert (S_ISREG (statbuf.st_mode));
+ rtems_test_assert (statbuf.st_nlink == 3);
+ rtems_test_assert (statbuf.st_uid = 65534);
+ rtems_test_assert (statbuf.st_gid = 65533);
- rtems_test_assert(S_ISREG(statbuf.st_mode));
- tmp_mode=(statbuf.st_mode)&ALLPERMS;
- rtems_test_assert(tmp_mode==0201);
- rtems_test_assert(statbuf.st_nlink==2);
+ status = stat (name2, &statbuf);
+ rtems_test_assert (status == 0);
+ rtems_test_assert (S_ISREG (statbuf.st_mode));
+ rtems_test_assert (statbuf.st_nlink == 3);
+ rtems_test_assert (statbuf.st_uid = 65534);
+ rtems_test_assert (statbuf.st_gid = 65533);
- status=stat(name2,&statbuf);
- rtems_test_assert(status==0);
+ /*
+ *
+ * unlink then test if the nlink changes
+ */
+ puts ("unlink then stat the file ");
- rtems_test_assert(S_ISREG(statbuf.st_mode));
- tmp_mode=(statbuf.st_mode)&ALLPERMS;
- rtems_test_assert(tmp_mode==0201);
- rtems_test_assert(statbuf.st_nlink==2);
+ status = unlink (name0);
+ rtems_test_assert (status == 0);
+ status = stat (name0, &statbuf);
+ rtems_test_assert (status == -1);
+ rtems_test_assert (errno = ENOENT);
- status=unlink(name1);
- rtems_test_assert(status==0);
+ status = stat (name1, &statbuf);
+ rtems_test_assert (status == 0);
+ rtems_test_assert (S_ISREG (statbuf.st_mode));
+ rtems_test_assert (statbuf.st_nlink == 2);
- status=unlink(name2);
- rtems_test_assert(status==0);
+ status = stat (name2, &statbuf);
+ rtems_test_assert (status == 0);
+ rtems_test_assert (S_ISREG (statbuf.st_mode));
+ rtems_test_assert (statbuf.st_nlink == 2);
+ status = unlink (name1);
+ rtems_test_assert (status == 0);
- /*
- * successful link() updates ctime
- * and the ctime and mtime of the
- * directory.
- */
- fd=creat(name0,0644);
- status=close(fd);
- rtems_test_assert(status==0);
-
- status=stat(name0,&statbuf);
- ctime1=statbuf.st_ctime;
- status=stat(".",&statbuf);
- rtems_test_assert(status==0);
- dctime1=statbuf.st_ctime;
- dmtime1=statbuf.st_mtime;
-
- puts("sleep a few seconds");
- sleep(TIME_PRECISION );
-
- status=link(name0,name1);
- rtems_test_assert(status==0);
- status=stat(name0,&statbuf);
- ctime2=statbuf.st_ctime;
- status=stat(".",&statbuf);
- dctime2=statbuf.st_ctime;
- dmtime2=statbuf.st_mtime;
-
- puts("test if the time changes");
- rtems_test_assert(!time_equal(ctime1,ctime2));
-#if !defined(IMFS_TEST) && !defined(MIMFS_TEST)
- rtems_test_assert(!time_equal(dctime1,dctime2));
-#endif
-#if !defined(IMFS_TEST) && !defined(MIMFS_TEST)
- rtems_test_assert(!time_equal(dmtime1,dmtime2));
-#endif
+ status = unlink (name2);
+ rtems_test_assert (status == 0);
}
-void test(void)
+
+void test (void)
{
- puts( "\n\n*** LINK TEST ***" );
-#if defined(MDOSFS_TEST)
-#else
- link_test01();
-#endif
- puts( "*** END OF LINK TEST ***" );
+ puts ("\n\n*** LINK TEST ***");
+ link_test01 ();
+ puts ("*** END OF LINK TEST ***");
}
-