<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>change log for rtems (2010-07-27)</title>
</head>
<body text='#000000' bgcolor='#ffffff'>
<a name='cs1'></a>
<table border='0' cellspacing='0' cellpadding='5' width='100%' bgcolor='#eeeeee'>
<tr><td colspan='3' bgcolor='#dddddd'>
 <font color='#bb2222'><strong>joel</strong></font>
</td></tr>
<tr><td colspan='3' bgcolor='#dddddd'><pre>2010-07-27 Joel Sherrill <joel.sherrill@oarcorp.com>

        * libfs/src/imfs/imfs_load_tar.c, libmisc/untar/untar.c: Now supports
        both pax and GNU tar created tar files.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/ChangeLog.diff?r1=text&tr1=1.2530&r2=text&tr2=1.2531&diff_format=h">M</a></td><td width='1%'>1.2531</td><td width='100%'>cpukit/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/libfs/src/imfs/imfs_load_tar.c.diff?r1=text&tr1=1.18&r2=text&tr2=1.19&diff_format=h">M</a></td><td width='1%'>1.19</td><td width='100%'>cpukit/libfs/src/imfs/imfs_load_tar.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/libmisc/untar/untar.c.diff?r1=text&tr1=1.12&r2=text&tr2=1.13&diff_format=h">M</a></td><td width='1%'>1.13</td><td width='100%'>cpukit/libmisc/untar/untar.c</td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/cpukit/ChangeLog:1.2530 rtems/cpukit/ChangeLog:1.2531
--- rtems/cpukit/ChangeLog:1.2530       Tue Jul 27 12:37:54 2010
+++ rtems/cpukit/ChangeLog      Tue Jul 27 13:11:42 2010
</font><font color='#997700'>@@ -1,3 +1,8 @@
</font><font color='#000088'>+2010-07-27    Joel Sherrill <joel.sherrill@oarcorp.com>
+
+       * libfs/src/imfs/imfs_load_tar.c, libmisc/untar/untar.c: Now supports
+       both pax and GNU tar created tar files.
+
</font> 2010-07-27        Joel Sherrill <joel.sherrilL@OARcorp.com>
 
        * posix/src/sigsuspend.c: Do not assert unless RTEMS_DEBUG is defined.

<font color='#006600'>diff -u rtems/cpukit/libfs/src/imfs/imfs_load_tar.c:1.18 rtems/cpukit/libfs/src/imfs/imfs_load_tar.c:1.19
--- rtems/cpukit/libfs/src/imfs/imfs_load_tar.c:1.18    Mon Jul 26 16:29:24 2010
+++ rtems/cpukit/libfs/src/imfs/imfs_load_tar.c Tue Jul 27 13:11:42 2010
</font><font color='#997700'>@@ -46,7 +46,8 @@
</font>  *   148      8 bytes  Header checksum (in octal ascii)
  *   156      1 bytes  Link flag
  *   157    100 bytes  Linkname ('\0' terminated, 99 maxmum length)
<font color='#880000'>- *   257      8 bytes  Magic ("ustar  \0")
</font><font color='#000088'>+ *   257      8 bytes  Magic PAX ("ustar\0" + 2 bytes padding)
+ *   257      8 bytes  Magic GNU tar ("ustar  \0")
</font>  *   265     32 bytes  User name ('\0' terminated, 31 maxmum length)
  *   297     32 bytes  Group name ('\0' terminated, 31 maxmum length)
  *   329      8 bytes  Major device ID (in octal ascii)
<font color='#997700'>@@ -124,7 +125,7 @@
</font>      */
     hdr_ptr = (char *) &tar_image[offset];
     offset += 512;
<font color='#880000'>-    if (strncmp(&hdr_ptr[257], "ustar  ", 7))
</font><font color='#000088'>+    if (strncmp(&hdr_ptr[257], "ustar", 5))
</font>       break;
 
     strncpy(filename, hdr_ptr, MAX_NAME_FIELD_SIZE);

<font color='#006600'>diff -u rtems/cpukit/libmisc/untar/untar.c:1.12 rtems/cpukit/libmisc/untar/untar.c:1.13
--- rtems/cpukit/libmisc/untar/untar.c:1.12     Wed Sep  5 18:46:36 2007
+++ rtems/cpukit/libmisc/untar/untar.c  Tue Jul 27 13:11:42 2010
</font><font color='#997700'>@@ -39,7 +39,8 @@
</font>  *   148      8 bytes  Header checksum (in octal ascii)
  *   156      1 bytes  Link flag
  *   157    100 bytes  Linkname ('\0' terminated, 99 maxmum length)
<font color='#880000'>- *   257      8 bytes  Magic ("ustar  \0")
</font><font color='#000088'>+ *   257      8 bytes  Magic PAX ("ustar\0" + 2 bytes padding)
+ *   257      8 bytes  Magic GNU tar ("ustar  \0")
</font>  *   265     32 bytes  User name ('\0' terminated, 31 maxmum length)
  *   297     32 bytes  Group name ('\0' terminated, 31 maxmum length)
  *   329      8 bytes  Major device ID (in octal ascii)
<font color='#997700'>@@ -143,7 +144,7 @@
</font>       /* Read the header */
       bufr = &tar_ptr[ptr];
       ptr += 512;
<font color='#880000'>-      if (strncmp(&bufr[257], "ustar  ", 7))
</font><font color='#000088'>+      if (strncmp(&bufr[257], "ustar", 5))
</font>       {
          retval = UNTAR_SUCCESSFUL;
          break;
<font color='#997700'>@@ -283,7 +284,7 @@
</font>          break;
       }
 
<font color='#880000'>-      if (strncmp(&bufr[257], "ustar  ", 7))
</font><font color='#000088'>+      if (strncmp(&bufr[257], "ustar", 5))
</font>       {
          break;
       }
</pre>
<p> </p>
<a name='cs2'></a>
<table border='0' cellspacing='0' cellpadding='5' width='100%' bgcolor='#eeeeee'>
<tr><td colspan='3' bgcolor='#dddddd'>
 <font color='#bb2222'><strong>joel</strong></font>
</td></tr>
<tr><td colspan='3' bgcolor='#dddddd'><pre>2010-07-27 Joel Sherrill <joel.sherrill@oarcorp.com>

        PR 1532/testing
        * Makefile.am, configure.ac: Add initial tests for untar capabilities.
        * tar01/.cvsignore, tar01/Makefile.am, tar01/init.c, tar01/tar01.doc,
        tar01/tar01.scn, tar02/.cvsignore, tar02/Makefile.am, tar02/init.c,
        tar02/tar02.doc, tar02/tar02.scn: New files.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/libtests/ChangeLog.diff?r1=text&tr1=1.217&r2=text&tr2=1.218&diff_format=h">M</a></td><td width='1%'>1.218</td><td width='100%'>testsuites/libtests/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/libtests/Makefile.am.diff?r1=text&tr1=1.44&r2=text&tr2=1.45&diff_format=h">M</a></td><td width='1%'>1.45</td><td width='100%'>testsuites/libtests/Makefile.am</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/libtests/configure.ac.diff?r1=text&tr1=1.51&r2=text&tr2=1.52&diff_format=h">M</a></td><td width='1%'>1.52</td><td width='100%'>testsuites/libtests/configure.ac</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/libtests/tar01/.cvsignore?rev=1.1&content-type=text/vnd.viewcvs-markup">A</a></td><td width='1%'><font color="#000088">1.1</font></td><td width='100%'><font color="#000088">testsuites/libtests/tar01/.cvsignore</font></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/libtests/tar01/Makefile.am?rev=1.1&content-type=text/vnd.viewcvs-markup">A</a></td><td width='1%'><font color="#000088">1.1</font></td><td width='100%'><font color="#000088">testsuites/libtests/tar01/Makefile.am</font></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/libtests/tar01/init.c?rev=1.1&content-type=text/vnd.viewcvs-markup">A</a></td><td width='1%'><font color="#000088">1.1</font></td><td width='100%'><font color="#000088">testsuites/libtests/tar01/init.c</font></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/libtests/tar01/tar01.doc?rev=1.1&content-type=text/vnd.viewcvs-markup">A</a></td><td width='1%'><font color="#000088">1.1</font></td><td width='100%'><font color="#000088">testsuites/libtests/tar01/tar01.doc</font></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/libtests/tar01/tar01.scn?rev=1.1&content-type=text/vnd.viewcvs-markup">A</a></td><td width='1%'><font color="#000088">1.1</font></td><td width='100%'><font color="#000088">testsuites/libtests/tar01/tar01.scn</font></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/libtests/tar02/.cvsignore?rev=1.1&content-type=text/vnd.viewcvs-markup">A</a></td><td width='1%'><font color="#000088">1.1</font></td><td width='100%'><font color="#000088">testsuites/libtests/tar02/.cvsignore</font></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/libtests/tar02/Makefile.am?rev=1.1&content-type=text/vnd.viewcvs-markup">A</a></td><td width='1%'><font color="#000088">1.1</font></td><td width='100%'><font color="#000088">testsuites/libtests/tar02/Makefile.am</font></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/libtests/tar02/init.c?rev=1.1&content-type=text/vnd.viewcvs-markup">A</a></td><td width='1%'><font color="#000088">1.1</font></td><td width='100%'><font color="#000088">testsuites/libtests/tar02/init.c</font></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/libtests/tar02/tar02.doc?rev=1.1&content-type=text/vnd.viewcvs-markup">A</a></td><td width='1%'><font color="#000088">1.1</font></td><td width='100%'><font color="#000088">testsuites/libtests/tar02/tar02.doc</font></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/libtests/tar02/tar02.scn?rev=1.1&content-type=text/vnd.viewcvs-markup">A</a></td><td width='1%'><font color="#000088">1.1</font></td><td width='100%'><font color="#000088">testsuites/libtests/tar02/tar02.scn</font></td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/testsuites/libtests/ChangeLog:1.217 rtems/testsuites/libtests/ChangeLog:1.218
--- rtems/testsuites/libtests/ChangeLog:1.217   Tue Jul 27 09:45:09 2010
+++ rtems/testsuites/libtests/ChangeLog Tue Jul 27 13:16:49 2010
</font><font color='#997700'>@@ -1,3 +1,11 @@
</font><font color='#000088'>+2010-07-27    Joel Sherrill <joel.sherrill@oarcorp.com>
+
+       PR 1532/testing
+       * Makefile.am, configure.ac: Add initial tests for untar capabilities.
+       * tar01/.cvsignore, tar01/Makefile.am, tar01/init.c, tar01/tar01.doc,
+       tar01/tar01.scn, tar02/.cvsignore, tar02/Makefile.am, tar02/init.c,
+       tar02/tar02.doc, tar02/tar02.scn: New files.
+
</font> 2010-07-27        Bharath Suri <bharath.s.jois@gmail.com>
 
        PR 1631/testing

<font color='#006600'>diff -u rtems/testsuites/libtests/Makefile.am:1.44 rtems/testsuites/libtests/Makefile.am:1.45
--- rtems/testsuites/libtests/Makefile.am:1.44  Tue Jul 27 09:45:09 2010
+++ rtems/testsuites/libtests/Makefile.am       Tue Jul 27 13:16:49 2010
</font><font color='#997700'>@@ -14,7 +14,7 @@
</font>     termios06 termios07 termios08 \
     rtems++ tztest block01 block02 block03 block04 block05 block06 block07 \
     block08 block09 block10 stringto01 \
<font color='#880000'>-    tar03
</font><font color='#000088'>+    tar01 tar02 tar03
</font> 
 include $(top_srcdir)/../automake/subdirs.am
 include $(top_srcdir)/../automake/local.am

<font color='#006600'>diff -u rtems/testsuites/libtests/configure.ac:1.51 rtems/testsuites/libtests/configure.ac:1.52
--- rtems/testsuites/libtests/configure.ac:1.51 Tue Jul 27 09:45:09 2010
+++ rtems/testsuites/libtests/configure.ac      Tue Jul 27 13:16:49 2010
</font><font color='#997700'>@@ -66,6 +66,8 @@
</font> stackchk/Makefile
 stackchk01/Makefile
 stringto01/Makefile
<font color='#000088'>+tar01/Makefile
+tar02/Makefile
</font> tar03/Makefile
 termios/Makefile
 termios01/Makefile

<font color='#006600'>diff -u /dev/null rtems/testsuites/libtests/tar01/.cvsignore:1.1
--- /dev/null   Tue Jul 27 14:10:19 2010
+++ rtems/testsuites/libtests/tar01/.cvsignore  Tue Jul 27 13:16:49 2010
</font><font color='#997700'>@@ -0,0 +1,2 @@
</font><font color='#000088'>+Makefile
+Makefile.in
</font>
<font color='#006600'>diff -u /dev/null rtems/testsuites/libtests/tar01/Makefile.am:1.1
--- /dev/null   Tue Jul 27 14:10:19 2010
+++ rtems/testsuites/libtests/tar01/Makefile.am Tue Jul 27 13:16:49 2010
</font><font color='#997700'>@@ -0,0 +1,54 @@
</font><font color='#000088'>+##
+## $Id$
+##
+
+MANAGERS = all
+
+rtems_tests_PROGRAMS = tar01
+tar01_SOURCES = init.c ../../psxtests/psxfile01/test_cat.c \
+  initial_filesystem_tar.c
+
+dist_rtems_tests_DATA = tar01.scn
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+AM_CPPFLAGS += -I$(top_srcdir)/include
+AM_CPPFLAGS += -I$(top_srcdir)/../support/include
+AM_CPPFLAGS += -I$(top_srcdir)/../psxtests/include
+
+LINK_OBJS = $(tar01_OBJECTS) $(tar01_LDADD)
+LINK_LIBS = $(tar01_LDLIBS)
+
+tar01$(EXEEXT): stamp-filesystem stamp-initial-fs-source $(tar01_OBJECTS) \
+    $(tar01_DEPENDENCIES)
+       @rm -f tar01$(EXEEXT)
+       $(make-exe)
+
+init.o: init.c stamp-initial-fs-source
+
+initial_filesystem_tar.c: stamp-initial-fs-source
+
+initial_filesystem_tar.h: stamp-initial-fs-source
+
+stamp-initial-fs-source: initial_filesystem.tar
+       $(BIN2C) initial_filesystem.tar initial_filesystem_tar
+       touch stamp-initial-fs-source
+
+stamp-filesystem:
+       rm -rf initial_fs
+       mkdir initial_fs
+       mkdir initial_fs/home
+       (echo "This is a test of loading an RTEMS filesystem from an" ; \
+       echo "initial tar image.") >initial_fs/home/test_file
+       cd initial_fs && ln -s home/test_file symlink
+       touch stamp-filesystem
+
+initial_filesystem.tar: stamp-filesystem
+       cd initial_fs ; pax -w -f ../initial_filesystem.tar home symlink
+
+CLEANFILES = initial_fs initial_filesystem* stamp-filesystem \
+           stamp-initial-fs-source
+
+include $(top_srcdir)/../automake/local.am
</font>
<font color='#006600'>diff -u /dev/null rtems/testsuites/libtests/tar01/init.c:1.1
--- /dev/null   Tue Jul 27 14:10:19 2010
+++ rtems/testsuites/libtests/tar01/init.c      Tue Jul 27 13:16:49 2010
</font><font color='#997700'>@@ -0,0 +1,122 @@
</font><font color='#000088'>+/*
+ *  COPYRIGHT (c) 1989-2010.
+ *  On-Line Applications Research Corporation (OAR).
+ *
+ *  The license and distribution terms for this file may be
+ *  found in the file LICENSE in this distribution or at
+ *  http://www.rtems.com/license/LICENSE.
+ *
+ *  $Id$
+ */
+
+#include <bsp.h> /* for device driver prototypes */
+#include "tmacros.h"
+#include <rtems/untar.h>
+#include <rtems/error.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <unistd.h>
+
+#include "initial_filesystem_tar.h"
+
+#define TARFILE_START initial_filesystem_tar
+#define TARFILE_SIZE  initial_filesystem_tar_size
+
+void test_cat(
+  char *file,
+  int   offset_arg,
+  int   length
+);
+
+void test_untar_from_memory(void)
+{
+  rtems_status_code sc;
+
+  printf("Untaring from memory - ");
+  sc = Untar_FromMemory((void *)TARFILE_START, TARFILE_SIZE);
+  if (sc != RTEMS_SUCCESSFUL) {
+    printf ("error: untar failed: %s\n", rtems_status_text (sc));
+    exit(1);
+  }
+  printf ("successful\n");
+
+  /******************/
+  printf( "========= /home/test_file =========\n" );
+  test_cat( "/home/test_file", 0, 0 );
+<span style="background-color: #FF0000">  </span>
+  /******************/
+  printf( "========= /symlink =========\n" );
+  test_cat( "/symlink", 0, 0 );
+
+}
+
+void test_untar_from_file(void)
+{
+  rtems_status_code  sc;
+  int                fd;
+
+  puts( "Copy tar image to test.tar" );
+  /* Copy tar image from object to file in IMFS */
+  fd = open( "/test.tar", O_CREAT|O_TRUNC|O_WRONLY, 0777 );
+  rtems_test_assert( fd != -1 );
+
+  sc = write( fd, TARFILE_START, TARFILE_SIZE );
+  rtems_test_assert( sc == TARFILE_SIZE );
+  close( fd );
+
+  /* make a directory to untar it into */
+  sc = mkdir( "/dest", 0777 );
+  rtems_test_assert( !sc );
+
+  sc = chdir( "/dest" );
+  rtems_test_assert( !sc );
+
+  /* Untar it */
+  sc = Untar_FromFile( "/test.tar" );
+  printf("Untaring from file - ");
+  if (sc != RTEMS_SUCCESSFUL) {
+    printf ("error: untar failed: %s\n", rtems_status_text (sc));
+    exit(1);
+  }
+  printf ("successful\n");
+
+  /******************/
+  printf( "========= /dest/home/test_file =========\n" );
+  test_cat( "/dest/home/test_file", 0, 0 );
+<span style="background-color: #FF0000">  </span>
+  /******************/
+  printf( "========= /dest/symlink =========\n" );
+  test_cat( "/dest/symlink", 0, 0 );
+}
+
+rtems_task Init(
+  rtems_task_argument ignored
+)
+{
+  printf( "\n\n*** TAR01 TEST ***\n" );
+
+  test_untar_from_memory();
+  puts( "" );
+  test_untar_from_file();
+
+  printf( "*** END OF TAR01 TEST ***\n" );
+  exit( 0 );
+}
+
+
+/* NOTICE: the clock driver is explicitly disabled */
+#define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
+
+#define CONFIGURE_MAXIMUM_TASKS            1
+#define CONFIGURE_USE_IMFS_AS_BASE_FILESYSTEM
+#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 5
+
+#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+#define CONFIGURE_INIT
+#include <rtems/confdefs.h>
</font>
<font color='#006600'>diff -u /dev/null rtems/testsuites/libtests/tar01/tar01.doc:1.1
--- /dev/null   Tue Jul 27 14:10:19 2010
+++ rtems/testsuites/libtests/tar01/tar01.doc   Tue Jul 27 13:16:49 2010
</font><font color='#997700'>@@ -0,0 +1,23 @@
</font><font color='#000088'>+#
+#  $Id$
+#
+#  COPYRIGHT (c) 1989-2010.
+#  On-Line Applications Research Corporation (OAR).
+#
+#  The license and distribution terms for this file may be
+#  found in the file LICENSE in this distribution or at
+#  http://www.rtems.com/license/LICENSE.
+#
+
+This file describes the directives and concepts tested by this test set.
+
+test set name:  malloc02
+
+directives:
+
+  + Untar_FromMemory
+  + Untar_FromFile
+
+concepts:
+
++ exercise these routines
</font>
<font color='#006600'>diff -u /dev/null rtems/testsuites/libtests/tar01/tar01.scn:1.1
--- /dev/null   Tue Jul 27 14:10:19 2010
+++ rtems/testsuites/libtests/tar01/tar01.scn   Tue Jul 27 13:16:49 2010
</font><font color='#997700'>@@ -0,0 +1,22 @@
</font><font color='#000088'>+*** TAR01 TEST ***
+Untaring from memory - successful
+========= /home/test_file =========
+(0)This is a test of loading an RTEMS filesystem from an
+initial tar image.
+
+========= /symlink =========
+(0)This is a test of loading an RTEMS filesystem from an
+initial tar image.
+
+
+Copy tar image to test.tar
+Untaring from file - successful
+========= /dest/home/test_file =========
+(0)This is a test of loading an RTEMS filesystem from an
+initial tar image.
+
+========= /dest/symlink =========
+(0)This is a test of loading an RTEMS filesystem from an
+initial tar image.
+
+*** END OF TAR01 TEST ***
</font>
<font color='#006600'>diff -u /dev/null rtems/testsuites/libtests/tar02/.cvsignore:1.1
--- /dev/null   Tue Jul 27 14:10:19 2010
+++ rtems/testsuites/libtests/tar02/.cvsignore  Tue Jul 27 13:16:50 2010
</font><font color='#997700'>@@ -0,0 +1,2 @@
</font><font color='#000088'>+Makefile
+Makefile.in
</font>
<font color='#006600'>diff -u /dev/null rtems/testsuites/libtests/tar02/Makefile.am:1.1
--- /dev/null   Tue Jul 27 14:10:19 2010
+++ rtems/testsuites/libtests/tar02/Makefile.am Tue Jul 27 13:16:50 2010
</font><font color='#997700'>@@ -0,0 +1,52 @@
</font><font color='#000088'>+##
+## $Id$
+##
+
+rtems_tests_PROGRAMS = tar02
+tar02_SOURCES = init.c ../../psxtests/psxfile01/test_cat.c \
+  initial_filesystem_tar.c
+
+dist_rtems_tests_DATA = tar02.scn
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+AM_CPPFLAGS += -I$(top_srcdir)/include
+AM_CPPFLAGS += -I$(top_srcdir)/../support/include
+AM_CPPFLAGS += -I$(top_srcdir)/../psxtests/include
+
+LINK_OBJS = $(tar02_OBJECTS) $(tar02_LDADD)
+LINK_LIBS = $(tar02_LDLIBS)
+
+tar02$(EXEEXT): stamp-filesystem stamp-initial-fs-source $(tar02_OBJECTS) \
+    $(tar02_DEPENDENCIES)
+       @rm -f tar02$(EXEEXT)
+       $(make-exe)
+
+init.o: init.c stamp-initial-fs-source
+
+initial_filesystem_tar.c: stamp-initial-fs-source
+
+initial_filesystem_tar.h: stamp-initial-fs-source
+
+stamp-initial-fs-source: initial_filesystem.tar
+       $(BIN2C) initial_filesystem.tar initial_filesystem_tar
+       touch stamp-initial-fs-source
+
+stamp-filesystem:
+       rm -rf initial_fs
+       mkdir initial_fs
+       mkdir initial_fs/home
+       (echo "This is a test of loading an RTEMS filesystem from an" ; \
+       echo "initial tar image.") >initial_fs/home/test_file
+       cd initial_fs && ln -s home/test_file symlink
+       touch stamp-filesystem
+
+initial_filesystem.tar: stamp-filesystem
+       cd initial_fs ; pax -w -f ../initial_filesystem.tar home symlink
+
+CLEANFILES = initial_filesystem* stamp-filesystem \
+           stamp-initial-fs-source
+
+include $(top_srcdir)/../automake/local.am
</font>
<font color='#006600'>diff -u /dev/null rtems/testsuites/libtests/tar02/init.c:1.1
--- /dev/null   Tue Jul 27 14:10:19 2010
+++ rtems/testsuites/libtests/tar02/init.c      Tue Jul 27 13:16:50 2010
</font><font color='#997700'>@@ -0,0 +1,83 @@
</font><font color='#000088'>+/*
+ *  COPYRIGHT (c) 1989-2010.
+ *  On-Line Applications Research Corporation (OAR).
+ *
+ *  The license and distribution terms for this file may be
+ *  found in the file LICENSE in this distribution or at
+ *  http://www.rtems.com/license/LICENSE.
+ *
+ *  $Id$
+ */
+
+#include <bsp.h> /* for device driver prototypes */
+#include "tmacros.h"
+#include <rtems/imfs.h>
+#include <rtems/error.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <unistd.h>
+
+#include "initial_filesystem_tar.h"
+
+#define TARFILE_START initial_filesystem_tar
+#define TARFILE_SIZE  initial_filesystem_tar_size
+
+void test_cat(
+  char *file,
+  int   offset_arg,
+  int   length
+);
+
+void test_tarfs_load(void)
+{
+  rtems_status_code sc;
+
+  printf("Loading tarfs image ... ");
+  sc = rtems_tarfs_load("/",(void *)TARFILE_START, TARFILE_SIZE);
+  if (sc != RTEMS_SUCCESSFUL) {
+    printf ("error: untar failed: %s\n", rtems_status_text (sc));
+    exit(1);
+  }
+  printf ("successful\n");
+
+  /******************/
+  printf( "========= /home/test_file =========\n" );
+  test_cat( "/home/test_file", 0, 0 );
+<span style="background-color: #FF0000">  </span>
+  /******************/
+  puts("*** Skipping symlink -- NOT CURRENTLY SUPPORTED ***" );
+#if 0
+  printf( "========= /symlink =========\n" );
+  test_cat( "/symlink", 0, 0 );
+#endif
+}
+
+rtems_task Init(
+  rtems_task_argument ignored
+)
+{
+  printf( "\n\n*** TAR02 TEST ***\n" );
+
+  test_tarfs_load();
+
+  printf( "*** END OF TAR02 TEST ***\n" );
+  exit( 0 );
+}
+
+
+/* NOTICE: the clock driver is explicitly disabled */
+#define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
+#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
+
+#define CONFIGURE_MAXIMUM_TASKS            1
+#define CONFIGURE_USE_IMFS_AS_BASE_FILESYSTEM
+#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 5
+
+#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+#define CONFIGURE_INIT
+#include <rtems/confdefs.h>
</font>
<font color='#006600'>diff -u /dev/null rtems/testsuites/libtests/tar02/tar02.doc:1.1
--- /dev/null   Tue Jul 27 14:10:19 2010
+++ rtems/testsuites/libtests/tar02/tar02.doc   Tue Jul 27 13:16:50 2010
</font><font color='#997700'>@@ -0,0 +1,22 @@
</font><font color='#000088'>+#
+#  $Id$
+#
+#  COPYRIGHT (c) 1989-2010.
+#  On-Line Applications Research Corporation (OAR).
+#
+#  The license and distribution terms for this file may be
+#  found in the file LICENSE in this distribution or at
+#  http://www.rtems.com/license/LICENSE.
+#
+
+This file describes the directives and concepts tested by this test set.
+
+test set name:  tar02
+
+directives:
+
+  rtems_tarfs_load
+
+concepts:
+
++ exercise methods listed above
</font>
<font color='#006600'>diff -u /dev/null rtems/testsuites/libtests/tar02/tar02.scn:1.1
--- /dev/null   Tue Jul 27 14:10:19 2010
+++ rtems/testsuites/libtests/tar02/tar02.scn   Tue Jul 27 13:16:50 2010
</font><font color='#997700'>@@ -0,0 +1,8 @@
</font><font color='#000088'>+*** TAR02 TEST ***
+Loading tarfs image ... successful
+========= /home/test_file =========
+(0)This is a test of loading an RTEMS filesystem from an
+initial tar image.
+
+*** Skipping symlink -- NOT CURRENTLY SUPPORTED ***
+*** END OF TAR02 TEST ***
</font></pre>
<p> </p>
<a name='cs3'></a>
<table border='0' cellspacing='0' cellpadding='5' width='100%' bgcolor='#eeeeee'>
<tr><td colspan='3' bgcolor='#dddddd'>
 <font color='#bb2222'><strong>joel</strong></font>
</td></tr>
<tr><td colspan='3' bgcolor='#dddddd'><pre>2010-07-27 Joel Sherrill <joel.sherrill@oarcorp.com>

        PR 1532/testing
        * aclocal/project-root.m4: Add initial tests for untar capabilities.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/ChangeLog.diff?r1=text&tr1=1.382&r2=text&tr2=1.383&diff_format=h">M</a></td><td width='1%'>1.383</td><td width='100%'>ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/aclocal/project-root.m4.diff?r1=text&tr1=1.7&r2=text&tr2=1.8&diff_format=h">M</a></td><td width='1%'>1.8</td><td width='100%'>aclocal/project-root.m4</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/ChangeLog.diff?r1=text&tr1=1.169&r2=text&tr2=1.170&diff_format=h">M</a></td><td width='1%'>1.170</td><td width='100%'>testsuites/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/aclocal/project-root.m4.diff?r1=text&tr1=1.3&r2=text&tr2=1.4&diff_format=h">M</a></td><td width='1%'>1.4</td><td width='100%'>testsuites/aclocal/project-root.m4</td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/ChangeLog:1.382 rtems/ChangeLog:1.383
--- rtems/ChangeLog:1.382       Wed Jun 23 08:32:58 2010
+++ rtems/ChangeLog     Tue Jul 27 13:17:46 2010
</font><font color='#997700'>@@ -1,3 +1,8 @@
</font><font color='#000088'>+2010-07-27    Joel Sherrill <joel.sherrill@oarcorp.com>
+
+       PR 1532/testing
+       * aclocal/project-root.m4: Add initial tests for untar capabilities.
+
</font> 2010-06-23        Ralf Corsépius <ralf.corsepius@rtems.org>
 
        * configure.ac: autoconf >= 2.65, automake >= 1.11.

<font color='#006600'>diff -u rtems/aclocal/project-root.m4:1.7 rtems/aclocal/project-root.m4:1.8
--- rtems/aclocal/project-root.m4:1.7   Tue Nov 25 23:32:03 2003
+++ rtems/aclocal/project-root.m4       Tue Jul 27 13:17:46 2010
</font><font color='#997700'>@@ -18,5 +18,8 @@
</font> 
 PACKHEX="\$(PROJECT_TOPdir)/tools/build/packhex"
 AC_SUBST(PACKHEX)
<font color='#000088'>+
+BIN2C="\$(PROJECT_TOPdir)/tools/build/rtems-bin2c"
+AC_SUBST(BIN2C)
</font> ])
 

<font color='#006600'>diff -u rtems/testsuites/ChangeLog:1.169 rtems/testsuites/ChangeLog:1.170
--- rtems/testsuites/ChangeLog:1.169    Wed Jul 14 11:03:57 2010
+++ rtems/testsuites/ChangeLog  Tue Jul 27 13:17:37 2010
</font><font color='#997700'>@@ -1,3 +1,8 @@
</font><font color='#000088'>+2010-07-27    Joel Sherrill <joel.sherrill@oarcorp.com>
+
+       PR 1532/testing
+       * aclocal/project-root.m4: Add initial tests for untar capabilities.
+
</font> 2010-07-14        Joel Sherrill <joel.sherrill@oarcorp.com>
 
        * support/include/test_support.h, support/src/test_support.c: Add

<font color='#006600'>diff -u rtems/testsuites/aclocal/project-root.m4:1.3 rtems/testsuites/aclocal/project-root.m4:1.4
--- rtems/testsuites/aclocal/project-root.m4:1.3        Wed Feb 18 23:40:02 2004
+++ rtems/testsuites/aclocal/project-root.m4    Tue Jul 27 13:17:37 2010
</font><font color='#997700'>@@ -8,5 +8,8 @@
</font> 
 PACKHEX="\$(PROJECT_TOPdir)/tools/build/packhex"
 AC_SUBST(PACKHEX)
<font color='#000088'>+
+BIN2C="\$(PROJECT_TOPdir)/tools/build/rtems-bin2c"
+AC_SUBST(BIN2C)
</font> ])
 
</pre>
<p> </p>
<a name='cs4'></a>
<table border='0' cellspacing='0' cellpadding='5' width='100%' bgcolor='#eeeeee'>
<tr><td colspan='3' bgcolor='#dddddd'>
 <font color='#bb2222'><strong>joel</strong></font>
</td></tr>
<tr><td colspan='3' bgcolor='#dddddd'><pre>2010-07-27 Joel Sherrill <joel.sherrill@oarcorp.com>

        PR 1532/testing
        * host.cfg.in: Add initial tests for untar capabilities.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/make/ChangeLog.diff?r1=text&tr1=1.343&r2=text&tr2=1.344&diff_format=h">M</a></td><td width='1%'>1.344</td><td width='100%'>make/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/make/host.cfg.in.diff?r1=text&tr1=1.14&r2=text&tr2=1.15&diff_format=h">M</a></td><td width='1%'>1.15</td><td width='100%'>make/host.cfg.in</td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/make/ChangeLog:1.343 rtems/make/ChangeLog:1.344
--- rtems/make/ChangeLog:1.343  Fri Oct 16 09:28:53 2009
+++ rtems/make/ChangeLog        Tue Jul 27 13:18:11 2010
</font><font color='#997700'>@@ -1,3 +1,8 @@
</font><font color='#000088'>+2010-07-27    Joel Sherrill <joel.sherrill@oarcorp.com>
+
+       PR 1532/testing
+       * host.cfg.in: Add initial tests for untar capabilities.
+
</font> 2009-10-16        Ralf Corsépius <ralf.corsepius@rtems.org>
 
        * custom/bare.cfg: Remove (Abandoned).

<font color='#006600'>diff -u rtems/make/host.cfg.in:1.14 rtems/make/host.cfg.in:1.15
--- rtems/make/host.cfg.in:1.14 Mon Feb  5 12:21:18 2001
+++ rtems/make/host.cfg.in      Tue Jul 27 13:18:16 2010
</font><font color='#997700'>@@ -31,6 +31,10 @@
</font> PACKHEX=$(PROJECT_BIN)/packhex
 endif
 
<font color='#000088'>+ifndef BIN2C
+BIN2C=$(PROJECT_BIN)/rtems-bin2c
+endif
+
</font> ifndef INSTALL_CHANGE
 INSTALL_CHANGE=$(PROJECT_BIN)/install-if-change
 endif
</pre>
<p> </p>
<a name='cs5'></a>
<table border='0' cellspacing='0' cellpadding='5' width='100%' bgcolor='#eeeeee'>
<tr><td colspan='3' bgcolor='#dddddd'>
 <font color='#bb2222'><strong>joel</strong></font>
</td></tr>
<tr><td colspan='3' bgcolor='#dddddd'><pre>2010-07-27 Joel Sherrill <joel.sherrill@oarcorp.com>

        PR 1532/testing
        * host.cfg.in: Add initial tests for untar capabilities. This required
        BIN2C.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/make/ChangeLog.diff?r1=text&tr1=1.71&r2=text&tr2=1.72&diff_format=h">M</a></td><td width='1%'>1.72</td><td width='100%'>c/src/make/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/make/host.cfg.in.diff?r1=text&tr1=1.14&r2=text&tr2=1.15&diff_format=h">M</a></td><td width='1%'>1.15</td><td width='100%'>c/src/make/host.cfg.in</td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/c/src/make/ChangeLog:1.71 rtems/c/src/make/ChangeLog:1.72
--- rtems/c/src/make/ChangeLog:1.71     Thu Jun 17 11:30:05 2010
+++ rtems/c/src/make/ChangeLog  Tue Jul 27 13:18:29 2010
</font><font color='#997700'>@@ -1,3 +1,9 @@
</font><font color='#000088'>+2010-07-27    Joel Sherrill <joel.sherrill@oarcorp.com>
+
+       PR 1532/testing
+       * host.cfg.in: Add initial tests for untar capabilities. This required
+       BIN2C.
+
</font> 2010-06-17        Ralf Corsépius <ralf.corsepius@rtems.org>
 
        * Makefile.inc.in, bsp.cfg.in, configure.ac, target.cfg.in:

<font color='#006600'>diff -u rtems/c/src/make/host.cfg.in:1.14 rtems/c/src/make/host.cfg.in:1.15
--- rtems/c/src/make/host.cfg.in:1.14   Mon Feb  5 12:21:18 2001
+++ rtems/c/src/make/host.cfg.in        Tue Jul 27 13:18:29 2010
</font><font color='#997700'>@@ -31,6 +31,10 @@
</font> PACKHEX=$(PROJECT_BIN)/packhex
 endif
 
<font color='#000088'>+ifndef BIN2C
+BIN2C=$(PROJECT_BIN)/rtems-bin2c
+endif
+
</font> ifndef INSTALL_CHANGE
 INSTALL_CHANGE=$(PROJECT_BIN)/install-if-change
 endif
</pre>
<p> </p>
<a name='cs6'></a>
<table border='0' cellspacing='0' cellpadding='5' width='100%' bgcolor='#eeeeee'>
<tr><td colspan='3' bgcolor='#dddddd'>
 <font color='#bb2222'><strong>joel</strong></font>
</td></tr>
<tr><td colspan='3' bgcolor='#dddddd'><pre>2010-07-27 Joel Sherrill <joel.sherrilL@OARcorp.com>

        * sp11/sp11.scn, sp11/task1.c: Add test case for receiving all events
        no wait but the condition is only partially satisfied.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/sptests/ChangeLog.diff?r1=text&tr1=1.406&r2=text&tr2=1.407&diff_format=h">M</a></td><td width='1%'>1.407</td><td width='100%'>testsuites/sptests/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/sptests/sp11/sp11.scn.diff?r1=text&tr1=1.4&r2=text&tr2=1.5&diff_format=h">M</a></td><td width='1%'>1.5</td><td width='100%'>testsuites/sptests/sp11/sp11.scn</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/sptests/sp11/task1.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.15&diff_format=h">M</a></td><td width='1%'>1.15</td><td width='100%'>testsuites/sptests/sp11/task1.c</td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/testsuites/sptests/ChangeLog:1.406 rtems/testsuites/sptests/ChangeLog:1.407
--- rtems/testsuites/sptests/ChangeLog:1.406    Mon Jul 26 10:38:40 2010
+++ rtems/testsuites/sptests/ChangeLog  Tue Jul 27 14:03:00 2010
</font><font color='#997700'>@@ -1,3 +1,8 @@
</font><font color='#000088'>+2010-07-27    Joel Sherrill <joel.sherrilL@OARcorp.com>
+
+       * sp11/sp11.scn, sp11/task1.c: Add test case for receiving all events
+       no wait but the condition is only partially satisfied.
+
</font> 2010-07-26        Joel Sherrill <joel.sherrill@oarcorp.com>
 
        * Makefile.am, configure.ac: Add test to extract a task blocked with

<font color='#006600'>diff -u rtems/testsuites/sptests/sp11/sp11.scn:1.4 rtems/testsuites/sptests/sp11/sp11.scn:1.5
--- rtems/testsuites/sptests/sp11/sp11.scn:1.4  Mon Aug 10 09:49:51 2009
+++ rtems/testsuites/sptests/sp11/sp11.scn      Tue Jul 27 14:03:00 2010
</font><font color='#997700'>@@ -71,4 +71,6 @@
</font> TA1 - RTEMS_EVENT_10 received
 TA1 - rtems_event_send - sending RTEMS_EVENT_11 to self in 100 ticks
 TA1 - rtems_event_send - sending RTEMS_EVENT_11 to self in 200 ticks
<font color='#000088'>+TA1 - rtems_event_send - send RTEMS_EVENT_4 to self
+TA1 - rtems_event_receive - RTEMS_EVENT_4 AND RTEMS_EVENT_5 - UNSATISFIED
</font> *** END OF TEST 11 ***

<font color='#006600'>diff -u rtems/testsuites/sptests/sp11/task1.c:1.14 rtems/testsuites/sptests/sp11/task1.c:1.15
--- rtems/testsuites/sptests/sp11/task1.c:1.14  Tue Oct 27 03:13:58 2009
+++ rtems/testsuites/sptests/sp11/task1.c       Tue Jul 27 14:03:01 2010
</font><font color='#997700'>@@ -361,8 +361,10 @@
</font>     RTEMS_NO_TIMEOUT,
     &eventout
   );
<font color='#880000'>-  if ( eventout ) printf( "ERROR -0x%08" PRIxrtems_event_set " events received\n", eventout );
-  else            puts( "TA1 - no events received" );
</font><font color='#000088'>+  if ( eventout )
+    printf( "ERROR -0x%08" PRIxrtems_event_set " events received\n", eventout );
+  else
+    puts( "TA1 - no events received" );
</font>   fatal_directive_status(
     status,
     RTEMS_UNSATISFIED,
<font color='#997700'>@@ -404,6 +406,24 @@
</font>   );
   directive_failed( status, "rtems_timer_fire_after 200 ticks" );
 
<font color='#000088'>+  /***** *****/
+  puts( "TA1 - rtems_event_send - send RTEMS_EVENT_4 to self" );
+  status = rtems_event_send( RTEMS_SELF, RTEMS_EVENT_4 );
+  directive_failed( status, "rtems_event_send" );
+
+  eventout = 0;
+  puts(
+    "TA1 - rtems_event_receive - RTEMS_EVENT_4 AND RTEMS_EVENT_5 - UNSATISFIED"
+  );
+  status  = rtems_event_receive(
+    RTEMS_EVENT_4 | RTEMS_EVENT_5,
+    RTEMS_NO_WAIT | RTEMS_EVENT_ALL,
+    RTEMS_NO_TIMEOUT,
+    &eventout
+  );
+  fatal_directive_status( status, RTEMS_UNSATISFIED, "rtems_event_receive" );
+  /***** *****/
+
</font>   puts( "*** END OF TEST 11 ***" );
   rtems_test_exit( 0 );
 }
</pre>
<p> </p>

<p>--<br />
<small>Generated by <a href="http://www.codewiz.org/projects/index.html#loginfo">Deluxe Loginfo</a> 2.122 by Bernardo Innocenti <bernie@develer.com></small></p>
</body>
</html>