Index: /trunk/psLib/src/types/psMetadataConfig.c
===================================================================
--- /trunk/psLib/src/types/psMetadataConfig.c	(revision 9845)
+++ /trunk/psLib/src/types/psMetadataConfig.c	(revision 9846)
@@ -10,6 +10,6 @@
 *  @author Eric Van Alst, MHPCC
 *
-*  @version $Revision: 1.104 $ $Name: not supported by cvs2svn $
-*  @date $Date: 2006-10-31 05:06:19 $
+*  @version $Revision: 1.105 $ $Name: not supported by cvs2svn $
+*  @date $Date: 2006-11-03 20:20:38 $
 *
 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -1092,11 +1092,11 @@
         // Get metadata item name
         keyName = getToken(&linePtr, " ", &status,true);
-        if(status) {
-            psError(PS_ERR_IO, true,
-                    _("Failed to read a metadata %s on line %u."), "keyName", lineCount);
-            psFree(keyName);
-            return false;
-        }
-
+        /*        if(status) {
+                    psError(PS_ERR_IO, true,
+                            _("Failed to read a metadata %s on line %u."), "keyName", lineCount);
+                    psFree(keyName);
+                    return false;
+                }
+        */
         // Check for special keyName values "TYPE", "END"
         if(strcmp(keyName,"TYPE") == 0 ) {
@@ -1164,8 +1164,10 @@
                 } else {
                     // Remove lower info level
-                    if(!psArrayRemoveIndex(levelArray, *level)) {
-                        psFree(keyName);
-                        return false;
-                    }
+                    /*                    if(!psArrayRemoveIndex(levelArray, *level)) {
+                                            psFree(keyName);
+                                            return false;
+                                        }
+                                        */
+                    psArrayRemoveIndex(levelArray, *level);
                     (*level)--;
                 }
Index: /trunk/psLib/test/types/metaconf.in
===================================================================
--- /trunk/psLib/test/types/metaconf.in	(revision 9845)
+++ /trunk/psLib/test/types/metaconf.in	(revision 9846)
@@ -28,4 +28,5 @@
 @vector10 F64 1.0 2.0 3.0 4.0 5.0
 @vector11 C64 1.0 2.0 3.0 4.0 5.0
+@@@vector12 F64 1.0 2.0 3.0 4.0 5.0
 time01           TAI       1970-01-01T00:16:39Z  # I am time
 time02           UTC       NULL     # I am time2
@@ -35,4 +36,17 @@
 f32              S32       665              # f32_2
 
+
+
+f32 METADATA
+    newi S32 151
+END
+
+metanew MULTI
+meta1 METADATA
+    itemS32   S32       666              # f32_1
+END
+meta1 METADATA
+    M2   S32       666
+END
 
 metadata7  METADATA
@@ -46,4 +60,5 @@
 END  # I am a metadata
 
+#item1-1          BOOL      TRUTH
 #item11           C32       16+2i            # I am Complex
      TYPE  C32  3
@@ -53,4 +68,5 @@
 newC32 PS_TYPE_C32 7i+5
 TYPE            1
-#TYPE         #  # 1
+TYPE
+TYPE         #  # 1
 \n
Index: /trunk/psLib/test/types/tap_psMetadataConfig_input.c
===================================================================
--- /trunk/psLib/test/types/tap_psMetadataConfig_input.c	(revision 9845)
+++ /trunk/psLib/test/types/tap_psMetadataConfig_input.c	(revision 9846)
@@ -25,5 +25,5 @@
 int main(void)
 {
-    plan_tests(22);
+    plan_tests(25);
 
     diag("Tests for psMetadataConfig Input Functions");
@@ -74,4 +74,22 @@
     {
         out = psMetadataConfigRead(out, &nfail, "metaconf.in", false);
+        //        psMetadataPrint(NULL, out, 2);
+        psMetadataItem *tempItem = psMetadataGet(out, PS_LIST_HEAD);
+        ok( out != NULL,
+            "psMetadataConfigRead:           return correct metadata for valid inputs.");
+        if (nfail != 0)
+            printf("\n nfail = %d   list->n = %ld\n", nfail, md->list->n);
+        skip_start(  tempItem == NULL, 1,
+                     "Skipping 1 tests because metadata container is empty!");
+        ok_str( tempItem->name, "item1",
+                "psMetadataConfigRead:           return correct metadataItem from "
+                "returned metadata.");
+        skip_end();
+    }
+    //Return true for valid inputs
+    {
+        psFree(out);
+        out = NULL;
+        out = psMetadataConfigRead(out, &nfail, "metaconf.in", true);
         //        psMetadataPrint(NULL, out, 2);
         psMetadataItem *tempItem = psMetadataGet(out, PS_LIST_HEAD);
@@ -109,4 +127,5 @@
     char str7[70];
     char str8[70];
+    char str9[70];
     strcpy(str1, "-10.05    2        4");
     strcpy(str2, "new S32       666");
@@ -117,4 +136,5 @@
     strcpy(str7, "@vector6 U8 1 2 3 4 5   # I am a vector");
     strcpy(str8, "time01           TAI       1970-01-01T00:16:39Z  # I am time");
+    strcpy(str9, "END\n");
 
     //Return NULL for NULL string input
@@ -131,5 +151,5 @@
         psMetadataItem *tempItem = psMetadataGet(out, PS_LIST_HEAD);
         ok( out != NULL && tempItem == NULL,
-            "psMetadataConfigParse:          return empty metadata for invalid "
+            "psMetadataConfigParse:         return empty metadata for invalid "
             "string input.");
         if (tempItem != NULL)
@@ -143,5 +163,5 @@
         psMetadataItem *tempItem = psMetadataGet(out, PS_LIST_HEAD);
         ok( out != NULL && tempItem != NULL,
-            "psMetadataConfigParse:          return correct metadata for valid "
+            "psMetadataConfigParse:         return correct metadata for valid "
             "string input. (S32)");
         skip_start(  tempItem == NULL, 2,
@@ -195,5 +215,5 @@
         psFree(out);
         out = NULL;
-        out = psMetadataConfigParse(out, NULL, str7, false);
+        out = psMetadataConfigParse(out, NULL, str7, true);
         psMetadataItem *tempItem = psMetadataGet(out, PS_LIST_HEAD);
         ok( out != NULL && tempItem != NULL,
@@ -209,4 +229,16 @@
         skip_end();
     }
+    //Return empty metadata for incorrect string input
+    {
+        psFree(out);
+        out = NULL;
+        out = psMetadataConfigParse(out, NULL, str9, false);
+        psMetadataItem *tempItem = psMetadataGet(out, PS_LIST_HEAD);
+        ok( out != NULL && tempItem == NULL,
+            "psMetadataConfigParse:         return empty metadata for invalid "
+            "string input.");
+        if (tempItem != NULL)
+            printf("\n\n name=%s\n", tempItem->name);
+    }
 
 
Index: /trunk/psLib/test/types/tap_psMetadataConfig_output.c
===================================================================
--- /trunk/psLib/test/types/tap_psMetadataConfig_output.c	(revision 9845)
+++ /trunk/psLib/test/types/tap_psMetadataConfig_output.c	(revision 9846)
@@ -188,5 +188,6 @@
     //Check for Memory leaks
     {
-        //        remove("mdcfg.wrt");
+        remove
+            ("mdcfg.wrt");
         psFree(md);
         checkMem();
