Index: /trunk/psLib/test/types/tst_psMetadata_07.c
===================================================================
--- /trunk/psLib/test/types/tst_psMetadata_07.c	(revision 4854)
+++ /trunk/psLib/test/types/tst_psMetadata_07.c	(revision 4855)
@@ -1,14 +1,16 @@
 /** @file  tst_psMetadata_07.c
 *
-*  @brief Test driver for psMetadataIO functions
+*  @brief Test driver for psMetadataIterator functions
 *
 *  This test driver contains the following tests for psMetadata:
-*     Test A - Read an XML config file
-*     Test B - Free data
+*     Test A - Allocate a psMetadataIterator
+*     Test B - Set a psMetadataIterator
+*     Test C - Get and Increment a psMetadataIterator
+*     Test D - Get and Decrement a psMetadataIterator
 *
-*  @author  Ross Harman, MHPCC
+*  @author  David Robbins, MHPCC
 *
-*  @version $Revision: 1.2 $  $Name: not supported by cvs2svn $
-*  @date  $Date: 2005-08-16 21:11:08 $
+*  @version $Revision: 1.3 $  $Name: not supported by cvs2svn $
+*  @date  $Date: 2005-08-23 02:39:29 $
 *
 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -18,9 +20,41 @@
 #include "pslib_strict.h"
 #include "psTest.h"
+#include "psMetadata.h"
+
+static psS32 testMetaIter00(void);
+
+testDescription tests[] = {
+                              {testMetaIter00, 0, "Test psMetadataIterator fxns", 0, false},
+                              {NULL}
+                          };
+
+static psMetadata *setupMeta(void);
+
+static psMetadata *setupMeta(void)
+{
+    psMetadata *md = NULL;
+    md = psMetadataAlloc();
+
+    psMetadataAddBool(md, PS_LIST_TAIL, "item1", "I am a boolean", true);
+    psMetadataAddS32(md, PS_LIST_TAIL, "item2", "I am a integer", 55);
+    psMetadataAddF32(md, PS_LIST_TAIL, "item3", "I am a float", 3.14);
+    psMetadataAddF64(md, PS_LIST_TAIL, "item4", "I am a double", 6.28);
+    psMetadataAddStr(md, PS_LIST_TAIL, "item5", "I am a string", "GNIRTS");
+
+    return md;
+}
 
 int main(int argc, char* argv[])
 {
+
+    psLogSetLevel( PS_LOG_INFO );
+
+    if( !runTestSuite(stderr,"psMetadata_07",tests,argc,argv)) {
+        return 1;
+    }
+
+
     // Test A - Read an XML config file
-    printPositiveTestHeader(stdout, "psMetadata", "Test A - Read an XML config file");
+    //    printPositiveTestHeader(stdout, "psMetadata", "Test A - Read an XML config file");
     /*
         int res = 0;
@@ -31,8 +65,8 @@
             printf("psMetadataConfigParseXml returned error %d\n", res);
         }
-     
+
         psFree(md);
     */
-    printFooter(stdout, "psMetadata", "Test A - Read an XML config file", true);
+    //    printFooter(stdout, "psMetadata", "Test A - Read an XML config file", true);
     /*
         // Test B - Free data
@@ -47,2 +81,36 @@
     return 0;
 }
+
+//Set a psMetadataIterator //
+static psS32 testMetaIter00(void)
+{
+    psMetadata *metadata = NULL;
+    metadata = setupMeta();
+    psMetadataIterator *iter = NULL;
+    psMetadataItem *item1 = NULL;
+    psMetadataItem *item2 = NULL;
+    psMetadataItem *item3 = NULL;
+    iter = psMetadataIteratorAlloc(metadata, PS_LIST_HEAD, NULL);
+    if (iter == NULL) {
+        fprintf(stderr, "Failed test point - Allocate a psMetadataIterator.  Iterator NULL. \n");
+    }
+    psMetadataIteratorSet(iter, 2);
+    item1 = psMetadataGetAndIncrement(iter);
+    if ( !strncmp(item1->name, "item2", 20) ) {
+        fprintf(stderr, "Failed test point - IteratorSet - Item names don't match. \n");
+    }
+    item2 = psMetadataGetAndDecrement(iter);
+    if ( !strncmp(item2->name, "item3", 20) ) {
+        fprintf(stderr, "Failed test point - GetAndIncrement - Item names don't match. \n");
+    }
+    item3 = psMetadataGetAndDecrement(iter);
+    if ( !strncmp(item3->name, "item2", 20) ) {
+        fprintf(stderr, "Failed test point - GetAndDecrement - Item names don't match. \n");
+    }
+    //    psFree(item1);
+    //    psFree(item2);
+    //    psFree(item3);
+    psFree(iter);
+    psFree(metadata);
+    return 0;
+}
