Index: /trunk/psLib/test/types/Makefile.am
===================================================================
--- /trunk/psLib/test/types/Makefile.am	(revision 9861)
+++ /trunk/psLib/test/types/Makefile.am	(revision 9862)
@@ -31,6 +31,5 @@
 	tap_psLookupTable_all \
 	tap_psMetadataConfig_output \
-	tap_psMetadataConfig_input \
-	tap_psMetadataConfig_format
+	tap_psMetadataConfig_input
 
 if BUILD_TESTS
Index: /trunk/psLib/test/types/execute_tap
===================================================================
--- /trunk/psLib/test/types/execute_tap	(revision 9861)
+++ /trunk/psLib/test/types/execute_tap	(revision 9862)
@@ -20,3 +20,2 @@
 ./tap_psMetadataConfig_output
 ./tap_psMetadataConfig_input
-./tap_psMetadataConfig_format
Index: /trunk/psLib/test/types/metaconf.in
===================================================================
--- /trunk/psLib/test/types/metaconf.in	(revision 9861)
+++ /trunk/psLib/test/types/metaconf.in	(revision 9862)
@@ -38,4 +38,6 @@
 time02           UTC       NULL     # I am time2
 
+ps1  S32  NAN
+
 f32 MULTI
 f32              S32       666              # f32_1
@@ -57,5 +59,5 @@
 metadata7  METADATA
    ITEM01           S32       666
-   META NEW  METADATA
+   META_NEW  METADATA
       @VECTORNEW S32 1 2 3 4 5   # Newest VECTOR
       cell             STR       pStArRs          # I am a p-Star
Index: /trunk/psLib/test/types/tap_psMetadataConfig_input.c
===================================================================
--- /trunk/psLib/test/types/tap_psMetadataConfig_input.c	(revision 9861)
+++ /trunk/psLib/test/types/tap_psMetadataConfig_input.c	(revision 9862)
@@ -86,4 +86,5 @@
                 "returned metadata.");
         skip_end();
+        psMetadataConfigWrite(out, "Test2.txt");
     }
     //Return true for valid inputs
@@ -104,4 +105,5 @@
                 "returned metadata.");
         skip_end();
+        psMetadataConfigWrite(out, "Test.txt");
     }
 
Index: /trunk/psLib/test/types/tap_psMetadataConfig_output.c
===================================================================
--- /trunk/psLib/test/types/tap_psMetadataConfig_output.c	(revision 9861)
+++ /trunk/psLib/test/types/tap_psMetadataConfig_output.c	(revision 9862)
@@ -2,5 +2,6 @@
  *  C Implementation: tap_psMetadataConfig_output
  *
- * Description:  Tests for psMetadataConfigWrite & psMetadataConfigPrint
+ * Description:  Tests for psMetadataConfigWrite, psMetadataConfigPrint,
+ *               & psMetadataConfigFormat
  *
  * Author: dRob <David.Robbins@mhpcc.hpc.mil>, (C) 2006
@@ -18,9 +19,11 @@
 static void testMetaConfigWrite(void);
 static void testMetaConfigPrint(void);
+static void testMetaConfigFormat(void);
+
 static psMetadata *setupMeta(void);
 
 int main(void)
 {
-    plan_tests(11);
+    plan_tests(20);
 
     diag("Tests for psMetadataConfig Output Functions");
@@ -28,4 +31,5 @@
     testMetaConfigWrite();
     testMetaConfigPrint();
+    testMetaConfigFormat();
 
     done();
@@ -244,2 +248,147 @@
 }
 
+
+void testMetaConfigFormat(void)
+{
+    diag("  >>>Test 1:  psMetadataConfigFormat");
+    psMetadata *md = NULL;
+    psString out = NULL;
+
+    //psString psMetadataConfigFormat(psMetadata *md);
+
+    //Return NULL for NULL metadata input
+    {
+        out = psMetadataConfigFormat(md);
+        ok( out == NULL,
+            "psMetadataConfigFormat:         return NULL for NULL metadata input.");
+    }
+    //Return NULL for empty metadata input
+    {
+        md = psMetadataAlloc();
+        out = psMetadataConfigFormat(md);
+        ok( out == NULL,
+            "psMetadataConfigFormat:         return NULL for empty metadata input.");
+    }
+    //Return NULL for metadata with missing hash table
+    {
+        psMetadataAddS32(md, PS_LIST_HEAD, "new_S32", 0, "", 666);
+        psMetadataAddS32(md, PS_LIST_HEAD, "new_S32", PS_META_DUPLICATE_OK, "", 665);
+        psHash *temp = md->hash;
+        md->hash = NULL;
+        out = psMetadataConfigFormat(md);
+        ok( out == NULL,
+            "psMetadataConfigFormat:         return NULL for metadata with missing "
+            "hash table.");
+        md->hash = temp;
+    }
+    //Return NULL for metadata containing a psList
+    {
+        psList *list = psListAlloc(NULL);
+        psMetadataAddList(md, PS_LIST_HEAD, "new_list", 0, "", list);
+        out = psMetadataConfigFormat(md);
+        ok( out == NULL,
+            "psMetadataConfigFormat:         return NULL for metadata containing a psList.");
+        psFree(list);
+        psFree(md);
+    }
+    //Return false for attempting to format vector with type = complex
+    {
+        psVector *vec = psVectorAlloc(60, PS_TYPE_C64);
+        for (int i = 0; i < 5; i++)
+        {
+            vec->data.C64[i] = i+1;
+        }
+        md = psMetadataAlloc();
+        psMetadataAddVector(md, PS_LIST_TAIL, "vectorC64", 0, "", vec);
+        out = psMetadataConfigFormat(md);
+        ok( out == NULL,
+            "psMetadataConfigFormat:         return NULL for metadata containing a "
+            "Complex vector.");
+        psFree(vec);
+    }
+    //Return false for attempting to format psTime with type = -1
+    {
+        psFree(md);
+        md = psMetadataAlloc();
+        psTime *time = psTimeAlloc(PS_TIME_TT);
+        time->type = -1;
+        psMetadataAddTime(md, PS_LIST_TAIL, "time", 0, "", time);
+        out = psMetadataConfigFormat(md);
+        ok( out == NULL,
+            "psMetadataConfigFormat:         return NULL for metadata containing a "
+            "invalid time type.");
+        psFree(time);
+    }
+    //Return true for attempting to format NULL psTime metadataItem
+    {
+        psFree(md);
+        md = psMetadataAlloc();
+        psTime *time = psTimeAlloc(PS_TIME_TT);
+        psMetadataAddTime(md, PS_LIST_HEAD, "time", 0, "", time);
+        psMetadataItem *item = psMetadataGet(md, PS_LIST_HEAD);
+        psFree(item->data.V);
+        item->data.V = NULL;
+        out = psMetadataConfigFormat(md);
+        ok( out != NULL,
+            "psMetadataConfigFormat:         return valid metadata for metadata "
+            "containing a NULL time.");
+        psFree(time);
+        psFree(out);
+        out = NULL;
+    }
+    //Return true for attempting to format NULL psTime metadataItem
+    {
+        psFree(md);
+        md = psMetadataAlloc();
+        psMetadataAddS32(md, PS_LIST_HEAD, "new_S32", 0, NULL, 666);
+        psMetadataAddS32(md, PS_LIST_HEAD, "new_S32", PS_META_DUPLICATE_OK, NULL, 665);
+        out = psMetadataConfigFormat(md);
+        ok( out != NULL,
+            "psMetadataConfigFormat:         return valid metadata for metadata "
+            "containing a NULL time.");
+        psFree(out);
+        out = NULL;
+    }
+    //Return true for attempting to format NULL psTime metadataItem
+    {
+        psFree(md);
+        md = psMetadataAlloc();
+        psMetadataAddS32(md, PS_LIST_HEAD, "f32", 0, "f32_1", 666);
+        psMetadataAddS32(md, PS_LIST_TAIL, "f32", PS_META_DUPLICATE_OK, "f32_3", 666);
+        psMetadataAddS32(md, PS_LIST_TAIL, "f32", PS_META_DUPLICATE_OK, "f32_2", 665);
+        out = psMetadataConfigFormat(md);
+        //        printf("\n%s\n", out);
+        ok( out != NULL,
+            "psMetadataConfigFormat:         return valid metadata for metadata "
+            "containing a NULL time.");
+        psFree(out);
+        out = NULL;
+    }
+
+    /*    //Return true for valid inputs
+    {
+    skip_start(  !psMetadataConfigWrite(md, "mdcfg.wrt"), 2,
+    "Skipping 2 tests because psMetadataConfigWrite failed");
+    out = psMetadataConfigRead(out, &nfail, "mdcfg.wrt", false);
+    psMetadataItem *tempItem = psMetadataGet(out, PS_LIST_HEAD);
+    ok( out != NULL && nfail == 0,
+    "psMetadataConfigRead:           return correct metadata for valid inputs.");
+    skip_start(  tempItem == NULL, 1,
+    "Skipping 1 tests because metadata container is empty!");
+    ok_str( tempItem->name, "new_S32",
+    "psMetadataConfigRead:           return correct metadataItem from "
+    "returned metadata.");
+    skip_end();
+    skip_end();
+    }
+    */
+    //Check for Memory leaks
+    {
+        //        psFree(out);
+        //        remove("mdcfg.wrt");
+        psFree(md);
+        checkMem();
+    }
+}
+
+
