Index: /trunk/psLib/test/astronomy/tst_psMetadata_03.c
===================================================================
--- /trunk/psLib/test/astronomy/tst_psMetadata_03.c	(revision 2014)
+++ /trunk/psLib/test/astronomy/tst_psMetadata_03.c	(revision 2015)
@@ -14,6 +14,6 @@
 *  @author  Ross Harman, MHPCC
 *
-*  @version $Revision: 1.4 $  $Name: not supported by cvs2svn $
-*  @date  $Date: 2004-09-21 23:24:42 $
+*  @version $Revision: 1.5 $  $Name: not supported by cvs2svn $
+*  @date  $Date: 2004-10-08 01:00:54 $
 *
 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -66,6 +66,10 @@
     psMetadataItem *item3 = NULL;
     psMetadataItem *item4 = NULL;
+    psMetadataItem *errItem = NULL;
     psMetadata *metadata = NULL;
-
+    psMetadata *errMetadata = NULL;
+    psHash *mdTable = NULL;
+    psList *mdList = NULL;
+    char *errName = NULL;
 
     // Test A - Allocate metadata and items
@@ -76,4 +80,5 @@
     item3 = psMetadataItemAlloc("myItem3", PS_META_BOOL, "I am a boolean", false);
     item4 = psMetadataItemAlloc("myItem4", PS_META_S32, "I am a integer", 66);
+    errItem = psMetadataItemAlloc("errItem", PS_META_S32, "I am a integer", 99);
     printMetadataItem(item1);
     printMetadataItem(item2);
@@ -85,8 +90,20 @@
     // Test B - Remove items from metadata by name
     printPositiveTestHeader(stdout, "psMetadata", "Test B - Remove items from metadata by name");
-    psMetadataAddItem(metadata, item1, PS_LIST_HEAD);
-    psMetadataAddItem(metadata, item2, PS_LIST_HEAD);
-    psMetadataRemove(metadata, 0, "myItem1" );
-    psMetadataRemove(metadata, 0, "myItem2" );
+    if( ! psMetadataAddItem(metadata, item1, PS_LIST_HEAD) ) {
+        psError(__func__,"psMetadataAddItem did not return true when adding by name.");
+        return 10;
+    }
+    if( ! psMetadataAdd(metadata,PS_LIST_HEAD,"myItem2",PS_META_S32,"I am S32 integer",77) ) {
+        psError(__func__,"psMetadataAddItem did not return true when adding by name.");
+        return 11;
+    }
+    if ( ! psMetadataRemove(metadata, 0, "myItem1" ) ) {
+        psError(__func__,"psMetadataRemove did not return true when removing by name.");
+        return 12;
+    }
+    if ( ! psMetadataRemove(metadata, 0, "myItem2" ) ) {
+        psError(__func__,"psMetadataRemove did not return true when removing by name.");
+        return 13;
+    }
     printFooter(stdout, "psMetadata", "Test B - Remove items from metadata by name", true);
 
@@ -94,8 +111,20 @@
     // Test C - Remove items from metadata by index
     printPositiveTestHeader(stdout, "psMetadata", "Test C - Remove items from metadata by index");
-    psMetadataAddItem(metadata, item3, PS_LIST_HEAD);
-    psMetadataAddItem(metadata, item4, PS_LIST_HEAD);
-    psMetadataRemove(metadata, 0, NULL);
-    psMetadataRemove(metadata, 0, NULL );
+    if ( ! psMetadataAddItem(metadata, item3, PS_LIST_HEAD) ) {
+        psError(__func__,"psMetadataAddItem did not return true when adding by index.");
+        return 14;
+    }
+    if ( ! psMetadataAdd(metadata,PS_LIST_HEAD,"myItem4",PS_META_S32,"I am S32 integer",88) ) {
+        psError(__func__,"psMetadataAddItem did not return true when adding by index.");
+        return 15;
+    }
+    if( ! psMetadataRemove(metadata, 0, NULL) ) {
+        psError(__func__,"psMetadataRemove did not return true when removing by index.");
+        return 16;
+    }
+    if ( ! psMetadataRemove(metadata, 0, NULL ) ) {
+        psError(__func__,"psMetadataRemove did not return true when removing by index.");
+        return 17;
+    }
     printFooter(stdout, "psMetadata", "Test C - Remove items from metadata by index", true);
 
@@ -104,5 +133,8 @@
     printNegativeTestHeader(stdout,"psMetadata", "Test D - Attempt to use null metadata",
                             "Null metadata collection not allowed", 0);
-    psMetadataRemove(NULL, 0, NULL);
+    if ( psMetadataRemove(NULL, 0, NULL) ) {
+        psError(__func__,"psMetadataRemove did not return false when removing from null metadata.");
+        return 18;
+    }
     printFooter(stdout, "psMetadata", "Test D - Attempt to use null metadata", true);
 
@@ -111,5 +143,8 @@
     printNegativeTestHeader(stdout,"psMetadata", "Test E - Attempt to remove non-existant metadata item by name",
                             "Couldn't find metadata item. Name: AARGH", 0);
-    psMetadataRemove(metadata, 0, "AARGH");
+    if( psMetadataRemove(metadata, 0, "AARGH") ) {
+        psError(__func__,"psMetadataRemove did not return false when removing non-existant item.");
+        return 19;
+    }
     printFooter(stdout, "psMetadata", "Test E - Attempt to remove non-existant metadata item by name", true);
 
@@ -118,7 +153,47 @@
     printNegativeTestHeader(stdout,"psMetadata", "Test E - Attempt to remove non-existant metadata item by index",
                             "Couldn't find metadata item in list. Index: 22", 0);
-    psMetadataRemove(metadata, 22, NULL);
+    if( psMetadataRemove(metadata, 22, NULL) ) {
+        psError(__func__,"psMetadataRemove did not return false when removing non-existant item.");
+        return 20;
+    }
     printFooter(stdout, "psMetadata", "Test E - Attempt to remove non-existant metadata item by index", true);
 
+
+    // Test H - Attempt to add item to an invalid metadata structure
+    printNegativeTestHeader(stdout,"psMetadata","Test H - Attempt to add item to metadata w/o hash table",
+                            "Couldn't add item to invalid metadata structure.",0);
+    errMetadata = psMetadataAlloc();
+    mdTable = errMetadata->table;
+    errMetadata->table = NULL;
+    if ( psMetadataAddItem(errMetadata, item3, PS_LIST_HEAD) ) {
+        psError(__func__,"psMetadataAddItem did not return false w/ invalid metadata struct w/o hash table.");
+        return 21;
+    }
+    errMetadata->table = mdTable;
+    printFooter(stdout,"psMetadata","Test H - Attempt to add item to invalid metadata w/o hash table", true);
+
+    // Test J - Attempt to add item to an invalid metadata structure
+    printNegativeTestHeader(stdout,"psMetadata","Test J - Attempt to add item to metadata w/o link list",
+                            "Couldn't add item to invalid metadata structure.",0);
+    mdList = errMetadata->list;
+    errMetadata->list = NULL;
+    if ( psMetadataAddItem(errMetadata, item3, PS_LIST_HEAD) ) {
+        psError(__func__,"psMetadataAddItem did not return false w/ invalid metadata struct w/o link list.");
+        return 22;
+    }
+    errMetadata->list = mdList;
+    printFooter(stdout,"psMetadata","Test J - Attempt to add item to invalid metadata w/o link list", true);
+
+    // Test K - Attempt to add item with a null name
+    printNegativeTestHeader(stdout,"psMetadata","Test K - Attempt to add item with null name",
+                            "Couldn't add item with null name.",0);
+    errName = errItem->name;
+    errItem->name = NULL;
+    if ( psMetadataAddItem(errMetadata, errItem, PS_LIST_HEAD) ) {
+        psError(__func__,"psMetadataAddItem did not return false with item with null name.");
+        return 23;
+    }
+    errItem->name = errName;
+    printFooter(stdout,"psMetadata","Test K - Attempt to add item with null name", true);
 
     // Test G - Free psMetadata
@@ -129,5 +204,10 @@
     psFree(item3);
     psFree(item4);
-    psMemCheckLeaks(0, NULL, stdout);
+    psFree(errItem);
+    psFree(errMetadata);
+    if( psMemCheckLeaks(0, NULL, stdout) != 0 ) {
+        psError(__func__,"Memory leaks detected.");
+        return 25;
+    }
     psMemCheckCorruption(0);
     int nBad = psMemCheckCorruption(0);
Index: /trunk/psLib/test/astronomy/verified/tst_psMetadata_03.stderr
===================================================================
--- /trunk/psLib/test/astronomy/verified/tst_psMetadata_03.stderr	(revision 2014)
+++ /trunk/psLib/test/astronomy/verified/tst_psMetadata_03.stderr	(revision 2015)
@@ -5,2 +5,8 @@
 <DATE><TIME>|<HOST>|E|psMetadataRemove
     Couldn't find metadata item in list. Index: 22
+<DATE><TIME>|<HOST>|E|psMetadataAddItem
+    Null metadata table not allowed
+<DATE><TIME>|<HOST>|E|psMetadataAddItem
+    Null metadata list not allowed
+<DATE><TIME>|<HOST>|E|psMetadataAddItem
+    Null key item not allowed
Index: /trunk/psLib/test/astronomy/verified/tst_psMetadata_03.stdout
===================================================================
--- /trunk/psLib/test/astronomy/verified/tst_psMetadata_03.stdout	(revision 2014)
+++ /trunk/psLib/test/astronomy/verified/tst_psMetadata_03.stdout	(revision 2015)
@@ -65,4 +65,37 @@
 /***************************** TESTPOINT ******************************************\
 *             TestFile: tst_psMetadata_03.c                                        *
+*            TestPoint: psMetadata{Test H - Attempt to add item to metadata w/o hash table} *
+*             TestType: Negative                                                   *
+*    ExpectedErrorText: Couldn't add item to invalid metadata structure.           *
+*  ExpectedStatusValue: 0                                                          *
+\**********************************************************************************/
+
+
+---> TESTPOINT PASSED (psMetadata{Test H - Attempt to add item to invalid metadata w/o hash table} | tst_psMetadata_03.c)
+
+/***************************** TESTPOINT ******************************************\
+*             TestFile: tst_psMetadata_03.c                                        *
+*            TestPoint: psMetadata{Test J - Attempt to add item to metadata w/o link list} *
+*             TestType: Negative                                                   *
+*    ExpectedErrorText: Couldn't add item to invalid metadata structure.           *
+*  ExpectedStatusValue: 0                                                          *
+\**********************************************************************************/
+
+
+---> TESTPOINT PASSED (psMetadata{Test J - Attempt to add item to invalid metadata w/o link list} | tst_psMetadata_03.c)
+
+/***************************** TESTPOINT ******************************************\
+*             TestFile: tst_psMetadata_03.c                                        *
+*            TestPoint: psMetadata{Test K - Attempt to add item with null name}    *
+*             TestType: Negative                                                   *
+*    ExpectedErrorText: Couldn't add item with null name.                          *
+*  ExpectedStatusValue: 0                                                          *
+\**********************************************************************************/
+
+
+---> TESTPOINT PASSED (psMetadata{Test K - Attempt to add item with null name} | tst_psMetadata_03.c)
+
+/***************************** TESTPOINT ******************************************\
+*             TestFile: tst_psMetadata_03.c                                        *
 *            TestPoint: psMetadata{Test G - Free psMetadata}                       *
 *             TestType: Positive                                                   *
Index: /trunk/psLib/test/collections/tst_psMetadata_03.c
===================================================================
--- /trunk/psLib/test/collections/tst_psMetadata_03.c	(revision 2014)
+++ /trunk/psLib/test/collections/tst_psMetadata_03.c	(revision 2015)
@@ -14,6 +14,6 @@
 *  @author  Ross Harman, MHPCC
 *
-*  @version $Revision: 1.4 $  $Name: not supported by cvs2svn $
-*  @date  $Date: 2004-09-21 23:24:42 $
+*  @version $Revision: 1.5 $  $Name: not supported by cvs2svn $
+*  @date  $Date: 2004-10-08 01:00:54 $
 *
 *  Copyright 2004 Maui High Performance Computing Center, University of Hawaii
@@ -66,6 +66,10 @@
     psMetadataItem *item3 = NULL;
     psMetadataItem *item4 = NULL;
+    psMetadataItem *errItem = NULL;
     psMetadata *metadata = NULL;
-
+    psMetadata *errMetadata = NULL;
+    psHash *mdTable = NULL;
+    psList *mdList = NULL;
+    char *errName = NULL;
 
     // Test A - Allocate metadata and items
@@ -76,4 +80,5 @@
     item3 = psMetadataItemAlloc("myItem3", PS_META_BOOL, "I am a boolean", false);
     item4 = psMetadataItemAlloc("myItem4", PS_META_S32, "I am a integer", 66);
+    errItem = psMetadataItemAlloc("errItem", PS_META_S32, "I am a integer", 99);
     printMetadataItem(item1);
     printMetadataItem(item2);
@@ -85,8 +90,20 @@
     // Test B - Remove items from metadata by name
     printPositiveTestHeader(stdout, "psMetadata", "Test B - Remove items from metadata by name");
-    psMetadataAddItem(metadata, item1, PS_LIST_HEAD);
-    psMetadataAddItem(metadata, item2, PS_LIST_HEAD);
-    psMetadataRemove(metadata, 0, "myItem1" );
-    psMetadataRemove(metadata, 0, "myItem2" );
+    if( ! psMetadataAddItem(metadata, item1, PS_LIST_HEAD) ) {
+        psError(__func__,"psMetadataAddItem did not return true when adding by name.");
+        return 10;
+    }
+    if( ! psMetadataAdd(metadata,PS_LIST_HEAD,"myItem2",PS_META_S32,"I am S32 integer",77) ) {
+        psError(__func__,"psMetadataAddItem did not return true when adding by name.");
+        return 11;
+    }
+    if ( ! psMetadataRemove(metadata, 0, "myItem1" ) ) {
+        psError(__func__,"psMetadataRemove did not return true when removing by name.");
+        return 12;
+    }
+    if ( ! psMetadataRemove(metadata, 0, "myItem2" ) ) {
+        psError(__func__,"psMetadataRemove did not return true when removing by name.");
+        return 13;
+    }
     printFooter(stdout, "psMetadata", "Test B - Remove items from metadata by name", true);
 
@@ -94,8 +111,20 @@
     // Test C - Remove items from metadata by index
     printPositiveTestHeader(stdout, "psMetadata", "Test C - Remove items from metadata by index");
-    psMetadataAddItem(metadata, item3, PS_LIST_HEAD);
-    psMetadataAddItem(metadata, item4, PS_LIST_HEAD);
-    psMetadataRemove(metadata, 0, NULL);
-    psMetadataRemove(metadata, 0, NULL );
+    if ( ! psMetadataAddItem(metadata, item3, PS_LIST_HEAD) ) {
+        psError(__func__,"psMetadataAddItem did not return true when adding by index.");
+        return 14;
+    }
+    if ( ! psMetadataAdd(metadata,PS_LIST_HEAD,"myItem4",PS_META_S32,"I am S32 integer",88) ) {
+        psError(__func__,"psMetadataAddItem did not return true when adding by index.");
+        return 15;
+    }
+    if( ! psMetadataRemove(metadata, 0, NULL) ) {
+        psError(__func__,"psMetadataRemove did not return true when removing by index.");
+        return 16;
+    }
+    if ( ! psMetadataRemove(metadata, 0, NULL ) ) {
+        psError(__func__,"psMetadataRemove did not return true when removing by index.");
+        return 17;
+    }
     printFooter(stdout, "psMetadata", "Test C - Remove items from metadata by index", true);
 
@@ -104,5 +133,8 @@
     printNegativeTestHeader(stdout,"psMetadata", "Test D - Attempt to use null metadata",
                             "Null metadata collection not allowed", 0);
-    psMetadataRemove(NULL, 0, NULL);
+    if ( psMetadataRemove(NULL, 0, NULL) ) {
+        psError(__func__,"psMetadataRemove did not return false when removing from null metadata.");
+        return 18;
+    }
     printFooter(stdout, "psMetadata", "Test D - Attempt to use null metadata", true);
 
@@ -111,5 +143,8 @@
     printNegativeTestHeader(stdout,"psMetadata", "Test E - Attempt to remove non-existant metadata item by name",
                             "Couldn't find metadata item. Name: AARGH", 0);
-    psMetadataRemove(metadata, 0, "AARGH");
+    if( psMetadataRemove(metadata, 0, "AARGH") ) {
+        psError(__func__,"psMetadataRemove did not return false when removing non-existant item.");
+        return 19;
+    }
     printFooter(stdout, "psMetadata", "Test E - Attempt to remove non-existant metadata item by name", true);
 
@@ -118,7 +153,47 @@
     printNegativeTestHeader(stdout,"psMetadata", "Test E - Attempt to remove non-existant metadata item by index",
                             "Couldn't find metadata item in list. Index: 22", 0);
-    psMetadataRemove(metadata, 22, NULL);
+    if( psMetadataRemove(metadata, 22, NULL) ) {
+        psError(__func__,"psMetadataRemove did not return false when removing non-existant item.");
+        return 20;
+    }
     printFooter(stdout, "psMetadata", "Test E - Attempt to remove non-existant metadata item by index", true);
 
+
+    // Test H - Attempt to add item to an invalid metadata structure
+    printNegativeTestHeader(stdout,"psMetadata","Test H - Attempt to add item to metadata w/o hash table",
+                            "Couldn't add item to invalid metadata structure.",0);
+    errMetadata = psMetadataAlloc();
+    mdTable = errMetadata->table;
+    errMetadata->table = NULL;
+    if ( psMetadataAddItem(errMetadata, item3, PS_LIST_HEAD) ) {
+        psError(__func__,"psMetadataAddItem did not return false w/ invalid metadata struct w/o hash table.");
+        return 21;
+    }
+    errMetadata->table = mdTable;
+    printFooter(stdout,"psMetadata","Test H - Attempt to add item to invalid metadata w/o hash table", true);
+
+    // Test J - Attempt to add item to an invalid metadata structure
+    printNegativeTestHeader(stdout,"psMetadata","Test J - Attempt to add item to metadata w/o link list",
+                            "Couldn't add item to invalid metadata structure.",0);
+    mdList = errMetadata->list;
+    errMetadata->list = NULL;
+    if ( psMetadataAddItem(errMetadata, item3, PS_LIST_HEAD) ) {
+        psError(__func__,"psMetadataAddItem did not return false w/ invalid metadata struct w/o link list.");
+        return 22;
+    }
+    errMetadata->list = mdList;
+    printFooter(stdout,"psMetadata","Test J - Attempt to add item to invalid metadata w/o link list", true);
+
+    // Test K - Attempt to add item with a null name
+    printNegativeTestHeader(stdout,"psMetadata","Test K - Attempt to add item with null name",
+                            "Couldn't add item with null name.",0);
+    errName = errItem->name;
+    errItem->name = NULL;
+    if ( psMetadataAddItem(errMetadata, errItem, PS_LIST_HEAD) ) {
+        psError(__func__,"psMetadataAddItem did not return false with item with null name.");
+        return 23;
+    }
+    errItem->name = errName;
+    printFooter(stdout,"psMetadata","Test K - Attempt to add item with null name", true);
 
     // Test G - Free psMetadata
@@ -129,5 +204,10 @@
     psFree(item3);
     psFree(item4);
-    psMemCheckLeaks(0, NULL, stdout);
+    psFree(errItem);
+    psFree(errMetadata);
+    if( psMemCheckLeaks(0, NULL, stdout) != 0 ) {
+        psError(__func__,"Memory leaks detected.");
+        return 25;
+    }
     psMemCheckCorruption(0);
     int nBad = psMemCheckCorruption(0);
