summaryrefslogtreecommitdiffstats
path: root/c/src/tests/psxtests/psxmount/test.c
diff options
context:
space:
mode:
authorRalf Corsepius <ralf.corsepius@rtems.org>2003-11-11 00:59:49 +0000
committerRalf Corsepius <ralf.corsepius@rtems.org>2003-11-11 00:59:49 +0000
commitff6ab1b594d9f073ece9b7fedf1f6977f52aeee5 (patch)
treef0b2e3afb63f53a922a0c42137a6d6763548edc5 /c/src/tests/psxtests/psxmount/test.c
parent2003-11-10 Ralf Corsepius <corsepiu@faw.uni-ulm.de> (diff)
downloadrtems-ff6ab1b594d9f073ece9b7fedf1f6977f52aeee5.tar.bz2
2003-11-10 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
* .cvsignore: Remove. * ChangeLog: Remove. * Makefile.am: Remove. * configure.ac: Remove. * psxtests.am: Remove. * include/.cvsignore: Remove. * include/Makefile.am: Remove. * include/pmacros.h: Remove. * psx01/.cvsignore: Remove. * psx01/Makefile.am: Remove. * psx01/init.c: Remove. * psx01/psx01.scn: Remove. * psx01/system.h: Remove. * psx01/task.c: Remove. * psx02/.cvsignore: Remove. * psx02/Makefile.am: Remove. * psx02/init.c: Remove. * psx02/psx02.scn: Remove. * psx02/system.h: Remove. * psx02/task.c: Remove. * psx03/.cvsignore: Remove. * psx03/Makefile.am: Remove. * psx03/init.c: Remove. * psx03/psx03.scn: Remove. * psx03/system.h: Remove. * psx03/task.c: Remove. * psx04/.cvsignore: Remove. * psx04/Makefile.am: Remove. * psx04/init.c: Remove. * psx04/psx04.scn: Remove. * psx04/system.h: Remove. * psx04/task1.c: Remove. * psx04/task2.c: Remove. * psx04/task3.c: Remove. * psx05/.cvsignore: Remove. * psx05/Makefile.am: Remove. * psx05/init.c: Remove. * psx05/psx05.scn: Remove. * psx05/system.h: Remove. * psx05/task.c: Remove. * psx05/task2.c: Remove. * psx05/task3.c: Remove. * psx06/.cvsignore: Remove. * psx06/Makefile.am: Remove. * psx06/init.c: Remove. * psx06/psx06.scn: Remove. * psx06/system.h: Remove. * psx06/task.c: Remove. * psx06/task2.c: Remove. * psx07/.cvsignore: Remove. * psx07/Makefile.am: Remove. * psx07/init.c: Remove. * psx07/psx07.scn: Remove. * psx07/system.h: Remove. * psx07/task.c: Remove. * psx08/.cvsignore: Remove. * psx08/Makefile.am: Remove. * psx08/init.c: Remove. * psx08/psx08.scn: Remove. * psx08/system.h: Remove. * psx08/task1.c: Remove. * psx08/task2.c: Remove. * psx08/task3.c: Remove. * psx09/.cvsignore: Remove. * psx09/Makefile.am: Remove. * psx09/init.c: Remove. * psx09/psx09.scn: Remove. * psx09/system.h: Remove. * psx10/.cvsignore: Remove. * psx10/Makefile.am: Remove. * psx10/init.c: Remove. * psx10/psx10.scn: Remove. * psx10/system.h: Remove. * psx10/task.c: Remove. * psx10/task2.c: Remove. * psx10/task3.c: Remove. * psx11/.cvsignore: Remove. * psx11/Makefile.am: Remove. * psx11/init.c: Remove. * psx11/psx11.scn: Remove. * psx11/system.h: Remove. * psx11/task.c: Remove. * psx12/.cvsignore: Remove. * psx12/Makefile.am: Remove. * psx12/init.c: Remove. * psx12/psx12.scn: Remove. * psx12/system.h: Remove. * psx12/task.c: Remove. * psx13/.cvsignore: Remove. * psx13/Makefile.am: Remove. * psx13/main.c: Remove. * psx13/psx13.scn: Remove. * psx13/test.c: Remove. * psxcancel/.cvsignore: Remove. * psxcancel/Makefile.am: Remove. * psxcancel/init.c: Remove. * psxcancel/psxcancel.scn: Remove. * psxchroot01/.cvsignore: Remove. * psxchroot01/Makefile.am: Remove. * psxchroot01/main.c: Remove. * psxchroot01/psxchroot01.scn: Remove. * psxchroot01/test.c: Remove. * psxfile01/.cvsignore: Remove. * psxfile01/Makefile.am: Remove. * psxfile01/main.c: Remove. * psxfile01/psxfile01.scn: Remove. * psxfile01/test.c: Remove. * psxfile01/test_cat.c: Remove. * psxfile01/test_extend.c: Remove. * psxfile01/test_write.c: Remove. * psxhdrs/.cvsignore: Remove. * psxhdrs/Makefile.am: Remove. * psxhdrs/clock01.c: Remove. * psxhdrs/clock02.c: Remove. * psxhdrs/clock03.c: Remove. * psxhdrs/clock04.c: Remove. * psxhdrs/clock05.c: Remove. * psxhdrs/clock06.c: Remove. * psxhdrs/cond01.c: Remove. * psxhdrs/cond02.c: Remove. * psxhdrs/cond03.c: Remove. * psxhdrs/cond04.c: Remove. * psxhdrs/cond05.c: Remove. * psxhdrs/cond06.c: Remove. * psxhdrs/cond07.c: Remove. * psxhdrs/cond08.c: Remove. * psxhdrs/cond09.c: Remove. * psxhdrs/cond10.c: Remove. * psxhdrs/key01.c: Remove. * psxhdrs/key02.c: Remove. * psxhdrs/key03.c: Remove. * psxhdrs/key04.c: Remove. * psxhdrs/mutex01.c: Remove. * psxhdrs/mutex02.c: Remove. * psxhdrs/mutex03.c: Remove. * psxhdrs/mutex04.c: Remove. * psxhdrs/mutex05.c: Remove. * psxhdrs/mutex06.c: Remove. * psxhdrs/mutex07.c: Remove. * psxhdrs/mutex08.c: Remove. * psxhdrs/mutex09.c: Remove. * psxhdrs/mutex10.c: Remove. * psxhdrs/mutex11.c: Remove. * psxhdrs/mutex12.c: Remove. * psxhdrs/mutex13.c: Remove. * psxhdrs/mutex14.c: Remove. * psxhdrs/mutex15.c: Remove. * psxhdrs/mutex16.c: Remove. * psxhdrs/proc01.c: Remove. * psxhdrs/proc02.c: Remove. * psxhdrs/proc03.c: Remove. * psxhdrs/proc04.c: Remove. * psxhdrs/proc05.c: Remove. * psxhdrs/proc06.c: Remove. * psxhdrs/proc07.c: Remove. * psxhdrs/proc08.c: Remove. * psxhdrs/proc09.c: Remove. * psxhdrs/proc10.c: Remove. * psxhdrs/proc11.c: Remove. * psxhdrs/proc12.c: Remove. * psxhdrs/proc13.c: Remove. * psxhdrs/proc14.c: Remove. * psxhdrs/pthread01.c: Remove. * psxhdrs/pthread02.c: Remove. * psxhdrs/pthread03.c: Remove. * psxhdrs/pthread04.c: Remove. * psxhdrs/pthread05.c: Remove. * psxhdrs/pthread06.c: Remove. * psxhdrs/pthread07.c: Remove. * psxhdrs/pthread08.c: Remove. * psxhdrs/pthread09.c: Remove. * psxhdrs/pthread10.c: Remove. * psxhdrs/pthread11.c: Remove. * psxhdrs/pthread12.c: Remove. * psxhdrs/pthread13.c: Remove. * psxhdrs/pthread14.c: Remove. * psxhdrs/pthread15.c: Remove. * psxhdrs/pthread16.c: Remove. * psxhdrs/pthread17.c: Remove. * psxhdrs/pthread18.c: Remove. * psxhdrs/pthread19.c: Remove. * psxhdrs/pthread20.c: Remove. * psxhdrs/pthread21.c: Remove. * psxhdrs/pthread22.c: Remove. * psxhdrs/pthread23.c: Remove. * psxhdrs/pthread24.c: Remove. * psxhdrs/pthread25.c: Remove. * psxhdrs/pthread26.c: Remove. * psxhdrs/pthread27.c: Remove. * psxhdrs/pthread28.c: Remove. * psxhdrs/pthread29.c: Remove. * psxhdrs/pthread30.c: Remove. * psxhdrs/pthread31.c: Remove. * psxhdrs/pthread32.c: Remove. * psxhdrs/pthread33.c: Remove. * psxhdrs/pthread34.c: Remove. * psxhdrs/pthread35.c: Remove. * psxhdrs/pthread36.c: Remove. * psxhdrs/sched01.c: Remove. * psxhdrs/sched02.c: Remove. * psxhdrs/sched03.c: Remove. * psxhdrs/sched04.c: Remove. * psxhdrs/sched05.c: Remove. * psxhdrs/sched06.c: Remove. * psxhdrs/sched07.c: Remove. * psxhdrs/sched08.c: Remove. * psxhdrs/signal01.c: Remove. * psxhdrs/signal02.c: Remove. * psxhdrs/signal03.c: Remove. * psxhdrs/signal04.c: Remove. * psxhdrs/signal05.c: Remove. * psxhdrs/signal06.c: Remove. * psxhdrs/signal07.c: Remove. * psxhdrs/signal08.c: Remove. * psxhdrs/signal09.c: Remove. * psxhdrs/signal10.c: Remove. * psxhdrs/signal11.c: Remove. * psxhdrs/signal12.c: Remove. * psxhdrs/signal13.c: Remove. * psxhdrs/signal14.c: Remove. * psxhdrs/signal15.c: Remove. * psxhdrs/signal16.c: Remove. * psxhdrs/signal17.c: Remove. * psxhdrs/signal18.c: Remove. * psxhdrs/signal19.c: Remove. * psxhdrs/signal20.c: Remove. * psxhdrs/signal21.c: Remove. * psxhdrs/signal22.c: Remove. * psxhdrs/signal23.c: Remove. * psxhdrs/sync01.c: Remove. * psxhdrs/sync02.c: Remove. * psxhdrs/sync03.c: Remove. * psxhdrs/time01.c: Remove. * psxhdrs/time02.c: Remove. * psxhdrs/time03.c: Remove. * psxhdrs/time04.c: Remove. * psxhdrs/time05.c: Remove. * psxhdrs/time06.c: Remove. * psxhdrs/time07.c: Remove. * psxhdrs/time08.c: Remove. * psxhdrs/time09.c: Remove. * psxhdrs/time10.c: Remove. * psxhdrs/time11.c: Remove. * psxhdrs/time12.c: Remove. * psxhdrs/time13.c: Remove. * psxhdrs/timer01.c: Remove. * psxhdrs/timer02.c: Remove. * psxhdrs/timer03.c: Remove. * psxhdrs/timer04.c: Remove. * psxhdrs/timer05.c: Remove. * psxhdrs/timer06.c: Remove. * psxhdrs/timer07.c: Remove. * psxmount/.cvsignore: Remove. * psxmount/Makefile.am: Remove. * psxmount/main.c: Remove. * psxmount/psxmount.scn: Remove. * psxmount/test.c: Remove. * psxmsgq01/.cvsignore: Remove. * psxmsgq01/Makefile.am: Remove. * psxmsgq01/init.c: Remove. * psxmsgq01/psxmsgq01.scn: Remove. * psxmsgq01/system.h: Remove. * psxreaddir/.cvsignore: Remove. * psxreaddir/Makefile.am: Remove. * psxreaddir/main.c: Remove. * psxreaddir/psxreaddir.scn: Remove. * psxreaddir/test.c: Remove. * psxsem01/.cvsignore: Remove. * psxsem01/Makefile.am: Remove. * psxsem01/init.c: Remove. * psxsem01/psxsem01.scn: Remove. * psxsem01/system.h: Remove. * psxstat/.cvsignore: Remove. * psxstat/Makefile.am: Remove. * psxstat/main.c: Remove. * psxstat/psxstat.scn: Remove. * psxstat/test.c: Remove. * psxtime/.cvsignore: Remove. * psxtime/Makefile.am: Remove. * psxtime/main.c: Remove. * psxtime/psxtime.scn: Remove. * psxtime/test.c: Remove. * psxtimer/.cvsignore: Remove. * psxtimer/Makefile.am: Remove. * psxtimer/psxtimer.c: Remove. * psxtimer/psxtimer.scn: Remove. * psxtimer/system.h: Remove.
Diffstat (limited to 'c/src/tests/psxtests/psxmount/test.c')
-rw-r--r--c/src/tests/psxtests/psxmount/test.c447
1 files changed, 0 insertions, 447 deletions
diff --git a/c/src/tests/psxtests/psxmount/test.c b/c/src/tests/psxtests/psxmount/test.c
deleted file mode 100644
index bf4a704c26..0000000000
--- a/c/src/tests/psxtests/psxmount/test.c
+++ /dev/null
@@ -1,447 +0,0 @@
-/*
- * This is a native test to explore how the readdir() family works.
- * Newlib supports the following readdir() family members:
- *
- * closedir() -
- * readdir() -
- * scandir() -
- * opendir() -
- * rewinddir() -
- * telldir() - BSD not in POSIX
- * seekdir() - BSD not in POSIX
- *
- *
- * seekdir() takes an offset which is a byte offset. The Linux
- * implementation of this appears to seek to the ((off/DIRENT_SIZE) + 1)
- * record where DIRENT_SIZE seems to be 12 bytes.
- *
- *
- *
- * $Id$
- */
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <dirent.h>
-#include <string.h>
-#include <assert.h>
-#include <unistd.h>
-#include <errno.h>
-#include <rtems.h>
-#include <rtems/libio.h>
-#include <imfs.h>
-#include <pmacros.h>
-
-extern rtems_filesystem_location_info_t rtems_filesystem_current;
-
-DIR *directory;
-DIR *directory2;
-DIR *directory3;
-DIR *directory_not;
-
-#ifndef __P
-#define __P(args)()
-#endif
-
-char *dnames[] = {
- "a",
- "b",
- "c",
- "d",
- "e",
- "f",
- "c/y",
- "c/z",
- "c/x",
- "c/y/a3333",
- "c/y/j123",
- "c/y/my_mount_point",
- "c/y/my_mount_point/my_dir",
- "c/z/my_mount_point",
- "END"
-};
-
-char *fnames[] = {
- "a",
- "b",
- "c",
- "d",
- "e",
- "f",
- "c/y",
- "c/z",
- "c/x",
- "c/y/a3333",
- "c/y/j123",
- "c/y/my_mount_point",
- "c/y/my_mount_point/my_dir",
- "c/y/my_mount_point/my_dir/d",
- "c/z/my_mount_point",
- "/c/z/my_mount_point/a/../../my_mount_point/a/g",
- "END"
-};
-
-#if defined(__rtems__)
-int test_main(void)
-#else
-int main(
- int argc,
- char **argv
-)
-#endif
-{
- int i;
- int fd;
- int status;
- struct stat statbuf;
- rtems_filesystem_mount_table_entry_t *mt_entry;
- static char mount_point_string[25] = { "/c/z/my_mount_point" };
-
-
- printf( "\n\n*** MOUNT/UNMOUNT TEST ***\n" );
-
- /*
- * Change directory to the root and create files under
- * the base file system.
- */
-
- printf( "\nchdir to the root directory\n" );
- status = chdir( "/" );
- printf( "chdir() status : %d\n\n", status );
-
- printf( "\nCreating a series of directories under /\n" );
- i=0;
- while ( strcmp(dnames[i], "END") != 0 )
- {
- status = mkdir( dnames[i], 0777 );
- printf("Creating : %25s %d %d ", dnames[i], status, errno );
- if ( status == 0 )
- printf(" Success\n");
- else
- printf(" Failure\n");
-
- i++;
- }
-
- /*
- * Create a Files with all rwx for others group and user. Verify
- * the created file.
- */
-
- printf("create /b/my_file\n");
- fd = open ("/b/my_file", O_CREAT, S_IRWXU|S_IRWXG|S_IRWXO);
- assert( fd != 0 );
- close (fd);
-
- printf("Verify /b/my_file\n");
- fd = open("/b/my_file", S_IRWXU|S_IRWXG|S_IRWXO);
- assert( fd != 0 );
- close( fd );
-
-
- printf("create c/y/my_mount_point/my_dir/d\n");
- fd = open ("c/y/my_mount_point/my_dir/d", O_CREAT, S_IRWXU|S_IRWXG|S_IRWXO);
- assert( fd != 0 );
- close (fd);
-
- printf("Verify c/y/my_mount_point/my_dir/d\n");
- fd = open("c/y/my_mount_point/my_dir/d", S_IRWXU|S_IRWXG|S_IRWXO);
- assert( fd != 0 );
- close( fd );
-
- /*
- * Mount an the IMFS file system on the base file system.
- */
-
- printf("Attempting to mount IMFS file system at /c/z/my_mount_point \n");
- status = mount(
- &mt_entry,
- &IMFS_ops,
- RTEMS_FILESYSTEM_READ_WRITE,
- NULL,
- mount_point_string );
- assert( status == 0 );
- if( mt_entry == NULL ){
- printf(" NULL mount table entry was returned\n");
- }
- else {
- printf("2nd file system successfully mounted at /c/z/my_mount_point \n");
- }
-
- /*
- * Change directory to the mount point and create a group of files under
- * the mounted file system.
- */
-
- printf( "\nchdir to /c/z/my_mount_point.\n" );
- status = chdir( "/c/z/my_mount_point" );
- printf( "chdir() status : %d\n\n", status );
-
- printf( "\nCreating a series of directories under /c/z/my_mount_point\n" );
- i=0;
- while ( strcmp(fnames[i], "END") != 0 )
- {
- status = mkdir( fnames[i], 0777 );
- printf("Creating: %46s %d %d ", fnames[i], status, errno );
- if ( status == 0 )
- printf(" Success\n");
- else {
- printf(" Failure\n");
- perror("errno");
- }
-
- status = stat( fnames[i], &statbuf );
- if ( status == -1 )
- printf( ": %s\n", strerror( errno ) );
-
- i++;
- }
-
- printf( "\nchdir to /\n" );
- status = chdir( "/" );
- printf( "chdir() status : %d\n\n", status );
-
- /*
- * Unmount the first file system we mounted
- */
-
- printf( "Unmount status:");
- status = unmount( "/c/z/my_mount_point" );
- printf( " %d\n", status );
-
-
- /*
- * Mount a NULL filesystem and verify it fails.
- */
-
- printf("Mount a NULL file system and verify EINVAL\n");
- status = mount(
- &mt_entry,
- NULL,
- RTEMS_FILESYSTEM_READ_WRITE,
- NULL,
- mount_point_string );
- assert( status == -1 );
- assert( errno == EINVAL );
-
- /*
- * Verify mount with option of -62 fails with EINVAL
- */
-
- printf("mount with option of -62 should fail with EINVAL\n");
- status = mount(
- &mt_entry,
- &IMFS_ops,
- -62,
- NULL,
- "/c/y/my_mount_point" );
- assert( status == -1 );
- assert( errno == EINVAL );
-
- /*
- * Mount a Read Only File system.
- */
-
- printf("Mount a Read Only filesystem at /c/y/my_mount_point \n");
- status = mount(
- &mt_entry,
- &IMFS_ops,
- RTEMS_FILESYSTEM_READ_ONLY,
- NULL,
- "/c/y/my_mount_point" );
- assert( status == 0 );
- if( mt_entry == NULL ){
- printf(" NULL mount table entry was returned\n");
- }
- else {
- printf("Read only file system successfully mounted at /c/y/my_mount_point \n");
- }
-
- /*
- * Create a directory that passes through the read only file system.
- */
-
- printf("create c/y/my_mount_point/../../y/my_mount_point/new_dir\n");
- status = mkdir("c/y/my_mount_point/../../y/my_mount_point/new_dir",S_IRWXU );
- assert( status == 0 );
- status = stat("c/y/my_mount_point/../../y/my_mount_point/new_dir",&statbuf );
- assert( status == 0 );
- status = stat("c/y/my_mount_point/new_dir/..", &statbuf );
- assert( status == 0 );
-
- /*
- * Attempt to mount a second file system at a used mount point.
- */
-
- printf("Verify a mount point returns EBUSY for another mount\n");
- status = mount(
- &mt_entry,
- &IMFS_ops,
- RTEMS_FILESYSTEM_READ_ONLY,
- NULL,
- "/c/y/my_mount_point" );
- assert( status == -1 );
- assert( errno == EBUSY);
-
- /*
- * Attempt to mount at a file.
- */
-
- printf("Mount on a file should fail with ENOTDIR\n");
- status = mount(
- &mt_entry,
- &IMFS_ops,
- RTEMS_FILESYSTEM_READ_ONLY,
- NULL,
- "/b/my_file" );
- assert( status == -1 );
- assert( errno == ENOTDIR );
-
-
- /*
- * Verify we cannot unmount a file system while we are in it.
- */
-
- printf("Create and chdir to /c/y/my_mount_point/mydir\n");
- status = mkdir( "/c/y/my_mount_point/mydir", 0777);
- assert( status == 0 );
-
- status = chdir( "/c/y/my_mount_point/mydir" );
- assert( status == 0 );
-
- printf("unmount of /c/y/my_mount_point should fail with EBUSY\n");
- status = unmount( "/c/y/my_mount_point" );
- assert( status == -1 );
- assert( errno == EBUSY );
-
- /*
- * Chdir to root and verify we can unmount the file system now.
- */
-
- printf("chdir to / and verify we can unmount /c/y/my_mount_point\n");
- status = chdir( "/" );
- assert( status == 0 );
-
- printf("unmount /c/y/my_mount_point \n");
- status = unmount( "/c/y/my_mount_point" );
- assert( status == 0 );
-
- /*
- * Attempt to unmount a directory that does not exist.
- */
-
- printf("unmount /b/mount_point should fail with EINVAL\n");
- status = unmount( "/b/mount_point" );
- assert( status == -1 );
- assert( errno == ENOENT );
-
- /*
- * Remount the filesystem.
- */
-
- printf("Mount /c/y/my_mount_point\n");
- status = mount(
- &mt_entry,
- &IMFS_ops,
- RTEMS_FILESYSTEM_READ_ONLY,
- NULL,
- "/c/y/my_mount_point" );
- assert( status == 0 );
-
- /*
- * Create a file and directory then open the directory.
- * Verify unmount will return EBUSY while directory is open.
- */
-
- printf("Create and open /c/y/my_mount_point/my_file\n");
- fd = open( "/c/y/my_mount_point/my_file", O_CREAT, S_IRWXU|S_IRWXG|S_IRWXO);
- assert( fd != -1 );
- status = close( fd );
- assert( status == 0 );
-
- printf("\nmkdir /c/y/my_mount_point/my_dir\n");
- status = mkdir( "/c/y/my_mount_point/my_dir", 0x1c0 );
- printf("Open /c/y/my_mount_point/my_dir\n");
- directory = opendir( "/c/y/my_mount_point/my_dir" );
- assert( directory );
-
- printf("Unmount /c/y/my_mount_point should fail with EBUSY\n");
- status = unmount( "/c/y/my_mount_point" );
- assert( status == -1 );
- assert( errno == EBUSY );
-
- printf("Close /c/y/my_mount_point/my_dir\n");
- status = closedir( directory );
- assert( status == 0 );
-
- /*
- * Attempt to unmount a directory that is not a mount point.
- */
-
- printf("Unmount /c/y/my_mount_point/my_dir should fail with EACCES\n");
- status = unmount( "/c/y/my_mount_point/my_dir" );
- assert( status == -1 );
- assert( errno == EACCES );
-
- /*
- * Verify a file system can not be unmounted with a mounted file system
- * in it.
- */
-
- printf("Mount a file system at /c/y/my_mount_point/my_dir\n");
- status = mount(
- &mt_entry,
- &IMFS_ops,
- RTEMS_FILESYSTEM_READ_WRITE,
- NULL,
- "/c/y/my_mount_point/my_dir");
- assert( status == 0 );
-
- printf("unmount /c/y/my_mount_point should fail with EBUSY\n");
- status = unmount( "/c/y/my_mount_point" );
- assert( status == -1 );
- assert( errno == EBUSY );
-
- /*
- * Verify you cannot create a hard link across mounted file systems.
- */
-
- printf("Verify a hard link across filesystems fails with EXDEV\n");
- status = mkdir( "/c/y/my_mount_point/my_dir2", S_IRWXU );
- assert( status == 0 );
-
- status = link( "/c/y/my_mount_point/my_dir2", "/c/y/my_mount_point/my_dir/my_link" );
- assert( status == -1 );
- assert( errno == EXDEV );
-
- /*
- * Create a symbolic link across mountpoints.
- */
-
- printf("Verify a symbolic link across file systems works\n");
- status = symlink( "/c/y/my_mount_point/my_dir2", "/c/y/my_mount_point/my_dir/my_link" );
- assert( status == 0 );
- status = stat( "/c/y/my_mount_point/my_dir/my_link", &statbuf );
- assert( status == 0 );
-
- printf("unmount /c/y/my_mount_point/my_dir\n");
- status = unmount( "/c/y/my_mount_point/my_dir" );
- assert( status == 0 );
-
- /*
- * Verify symblic link no longer works.
- */
-
- printf("Verify the symbolic link now fails\n");
- status = stat( "/c/y/my_mount_point/my_dir/my_link", &statbuf );
- assert( status != 0 );
-
- printf("unmount /c/y/my_mount_point\n");
- status = unmount( "/c/y/my_mount_point" );
- assert( status == 0 );
-
- printf( "\n\n*** END OF MOUNT/UNMOUNT TEST ***\n" );
- rtems_test_exit(0);
-}
-