Index: /trunk/psLib/test/dataIO/tst_psDB.c
===================================================================
--- /trunk/psLib/test/dataIO/tst_psDB.c	(revision 4309)
+++ /trunk/psLib/test/dataIO/tst_psDB.c	(revision 4310)
@@ -9,6 +9,6 @@
  *  @author Aaron Culliney, MHPCC
  *
- *  @version $Revision: 1.21 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2005-06-17 21:32:44 $
+ *  @version $Revision: 1.22 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2005-06-18 00:52:17 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -89,7 +89,7 @@
                               {TPDBSelectColumn,   845,  "dbSelectColumn",    0, false},
                               {TPDBSelectColumnNum,846,  "dbSelectColumnNum", 0, false},
-                              {TPDBSelectRows,      -7,  "dbSelectRows",      0, false},
-                              {TPDBInsertOneRow,    -8,  "dbInsertOneRow",    0, false},
-                              {TPDBInsertRows,      -9,  "dbInsertRows",      0, false},
+                              {TPDBSelectRows,     847,  "dbSelectRows",      0, false},
+                              {TPDBInsertOneRow,   848,  "dbInsertOneRow",    0, false},
+                              {TPDBInsertRows,     849,  "dbInsertRows",      0, false},
                               {TPDBDumpRows,        -10, "dbDumpRows",        0, false},
                               {TPDBDumpCols,        -11, "dbDumpCols",        0, false},
@@ -997,4 +997,5 @@
     const char* table = "table6";
     psMetadata *invalidRow = NULL;
+    psArray*    ary = NULL;
 
     // Create table definition metadata
@@ -1023,4 +1024,14 @@
         return 3;
     }
+    // Verify row was added to table
+    ary = psDBSelectRows(dbh,table,NULL,0);
+    if(ary->n != 1) {
+        psError(PS_ERR_UNKNOWN,true,"Number of rows %d not as expected %d",
+                ary->n,1);
+        psDBDropTable(dbh,table);
+        psDBCleanup(dbh);
+        return 30;
+    }
+    psFree(ary);
 
     // Insert a single row with NULL database
@@ -1070,77 +1081,158 @@
 }
 
-// Testpoint #XXX, TPDBInsertRows shall write rows of data into a test table ...
+// Testpoint #849, TPDBInsertRows shall write rows of data into a test table ...
 psS32 TPDBInsertRows( void )
 {
-    psS32 failed = 0;
     psDB *dbh = NULL;
     const char* table = "table7";
     psArray *rowSet = NULL;
+    psArray* dumpRowSet = NULL;
+    psMetadataItem *item=NULL;
+    psArray* ary = NULL;
+    psMetadata* invalidRow = NULL;
+    psArray* invalidRowSet = NULL;
+
+    //Create database table definition metadata
     psMetadata *row=NULL, *md = _get_CreateTableMetadata();
-    psMetadataItem *item=NULL;
-
+
+    // Initialize database connection
     dbh = _init_psDB();
     if (dbh == NULL) {
+        psError(PS_ERR_UNKNOWN,true,"Did not expect NULL for initializing database connection");
         return 1;
     }
 
-    psLogMsg( __func__, PS_LOG_INFO, "psDBInsertRows shall insert rows into a test table.\n" );
-
-    failed = ! psDBCreateTable(dbh, table, md);
-    if (!failed) {
-        rowSet = psArrayAlloc(3);
-        rowSet->n = 0;
-
-        row = _get_const_row1();
-        psArrayAdd(rowSet, 0, row);
-        psFree(row);
-
-        row = _get_const_row2();
-        psArrayAdd(rowSet, 0, row);
-        psFree(row);
-
-        row = _get_row();
-        psArrayAdd(rowSet, 0, row);
-        psFree(row);
-
-        failed = ! psDBInsertRows(dbh, table, rowSet);
-        psFree(rowSet);
-
-        // extra checks ...
-        rowSet = psDBDumpRows(dbh, table);
-        if (rowSet == NULL) {
-            failed = 1;
-        } else {
-            _print_row((psMetadata*)psArrayGet(rowSet, 2));
-            _print_row((psMetadata*)psArrayGet(rowSet, 1));
-            row = (psMetadata*)psArrayGet(rowSet, 0);
-            _print_row(row);
-
-            item = psMetadataLookup(row, "key_s32");
-            if ((item == NULL) || (item->data.S32 != S32_1)) {
-                psLogMsg( __func__, PS_LOG_INFO, "oops, did not find expected output!\n" );
-                failed = 1;
-            } else {
-                psLogMsg( __func__, PS_LOG_INFO, "found expected output.\n" );
-            }
-
-            item = psMetadataLookup(row, "key_bool");
-            if ((item == NULL) || (item->data.B != B_1)) {
-                psLogMsg( __func__, PS_LOG_INFO, "oops, did not find expected output!\n" );
-                failed = 1;
-            } else {
-                psLogMsg( __func__, PS_LOG_INFO, "found expected output.\n" );
-            }
-
-            psFree(rowSet);
-        }
-
-        psDBDropTable(dbh, table);
-    }
-
+    // Create database table for testing
+    if(!psDBCreateTable(dbh, table, md)) {
+        psError(PS_ERR_UNKNOWN,true,"Did not expect return false for creating table");
+        psDBCleanup(dbh);
+        return 2;
+    }
+
+    // Create array of row elements
+    rowSet = psArrayAlloc(3);
+    rowSet->n = 0;
+
+    row = _get_const_row1();
+    psArrayAdd(rowSet, 0, row);
+    psFree(row);
+
+    row = _get_const_row2();
+    psArrayAdd(rowSet, 0, row);
+    psFree(row);
+
+    row = _get_row();
+    psArrayAdd(rowSet, 0, row);
+    psFree(row);
+
+    // Insert rows with valid arguments
+    if(!psDBInsertRows(dbh, table, rowSet)) {
+        psError(PS_ERR_UNKNOWN,true,"Did not expect return false for inserting rows w/ valid args");
+        psDBDropTable(dbh,table);
+        psDBCleanup(dbh);
+        return 3;
+    }
+
+    // Verify row was added to table
+    ary = psDBSelectRows(dbh,table,NULL,0);
+    if(ary->n != 3) {
+        psError(PS_ERR_UNKNOWN,true,"Number of rows %d not as expected %d",
+                ary->n,3);
+        psDBDropTable(dbh,table);
+        psDBCleanup(dbh);
+        return 30;
+    }
+    psFree(ary);
+
+    // extra checks ...
+    dumpRowSet = psDBDumpRows(dbh, table);
+    if (dumpRowSet == NULL) {
+        psError(PS_ERR_UNKNOWN,true,"Did not expect NULL from dump rows");
+        psDBDropTable(dbh,table);
+        psDBCleanup(dbh);
+        return 4;
+    }
+
+    // Get first row from array
+    row = (psMetadata*)psArrayGet(dumpRowSet, 0);
+    // Verify contents for column key_s32
+    item = psMetadataLookup(row, "key_s32");
+    if ((item == NULL) || (item->data.S32 != S32_1)) {
+        psError(PS_ERR_UNKNOWN,true,"Column value %d not as expected %d",
+                item->data.S32, S32_1);
+        psDBDropTable(dbh,table);
+        psDBCleanup(dbh);
+        return 5;
+    }
+    // Verify contents for column key_bool
+    item = psMetadataLookup(row, "key_bool");
+    if ((item == NULL) || (item->data.B != B_1)) {
+        psError(PS_ERR_UNKNOWN,true,"Column value %d not as expected %d",
+                item->data.B, B_1);
+        psDBDropTable(dbh,table);
+        psDBCleanup(dbh);
+        return 6;
+    }
+    psFree(dumpRowSet);
+
+    // Insert rows with NULL database object
+    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message for NULL database");
+    if(psDBInsertRows(NULL,table,rowSet)) {
+        psError(PS_ERR_UNKNOWN,true,"Did not expect return of false for NULL database");
+        psDBDropTable(dbh,table);
+        psDBCleanup(dbh);
+        return 7;
+    }
+
+    // Insert rows with NULL table
+    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message for NULL table");
+    if(psDBInsertRows(dbh,NULL,rowSet)) {
+        psError(PS_ERR_UNKNOWN,true,"Did not expect return of false for NULL table");
+        psDBDropTable(dbh,table);
+        psDBCleanup(dbh);
+        return 70;
+    }
+
+    // Insert rows with invalid table
+    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message for invalid table");
+    if(psDBInsertRows(dbh,"table999",rowSet)) {
+        psError(PS_ERR_UNKNOWN,true,"Did not expect return of false for invalid table");
+        psDBDropTable(dbh,table);
+        psDBCleanup(dbh);
+        return 8;
+    }
+
+    // Insert rows with NULL array of rows to be inserted
+    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message for NULL row array");
+    if(psDBInsertRows(dbh,table,NULL)) {
+        psError(PS_ERR_UNKNOWN,true,"Did not expect return of false for NULL row array");
+        psDBDropTable(dbh,table);
+        psDBCleanup(dbh);
+        return 9;
+    }
+
+    // Insert a single row which has column which does not match table
+    invalidRow = _get_invalid_row();
+    // Create array of invalid row element
+    invalidRowSet = psArrayAlloc(1);
+    invalidRowSet->n = 0;
+    psArrayAdd(invalidRowSet, 0, invalidRow);
+    psFree(invalidRow);
+
+    psLogMsg(__func__,PS_LOG_INFO,"Following should generate error message for invalid column item");
+    if(psDBInsertRows(dbh,table,invalidRowSet)) {
+        psError(PS_ERR_UNKNOWN,true,"Did not expect return value true for invalid column item");
+        psDBDropTable(dbh,table);
+        psDBCleanup(dbh);
+        return 10;
+    }
+    psFree(invalidRowSet);
+
+    psFree(rowSet);
+    psDBDropTable(dbh, table);
     psFree(md);
     psDBCleanup(dbh);
 
-    return failed;
+    return 0;
 }
 
Index: /trunk/psLib/test/dataIO/verified/tst_psDB.stderr
===================================================================
--- /trunk/psLib/test/dataIO/verified/tst_psDB.stderr	(revision 4309)
+++ /trunk/psLib/test/dataIO/verified/tst_psDB.stderr	(revision 4310)
@@ -212,45 +212,25 @@
 
 <DATE><TIME>|<HOST>|I|TPDBInsertRows
-    psDBInsertRows shall insert rows into a test table.
-<DATE><TIME>|<HOST>|I|_print_row
-    [key_string]=[randrow1]
-<DATE><TIME>|<HOST>|I|_print_row
-    [key_s32]=[12345]
-<DATE><TIME>|<HOST>|I|_print_row
-    [key_f32]=[9876.5]
-<DATE><TIME>|<HOST>|I|_print_row
-    [key_f64]=[456.75]
-<DATE><TIME>|<HOST>|I|_print_row
-    [key_bool]=[Yay]
-<DATE><TIME>|<HOST>|I|_print_row
-    [key_s32_0]=[1]
-<DATE><TIME>|<HOST>|I|_print_row
-    [key_string]=[randrow2]
-<DATE><TIME>|<HOST>|I|_print_row
-    [key_s32]=[2345]
-<DATE><TIME>|<HOST>|I|_print_row
-    [key_f32]=[876.5]
-<DATE><TIME>|<HOST>|I|_print_row
-    [key_f64]=[56.75]
-<DATE><TIME>|<HOST>|I|_print_row
-    [key_bool]=[Nay]
-<DATE><TIME>|<HOST>|I|_print_row
-    [key_s32_0]=[2]
-<DATE><TIME>|<HOST>|I|_print_row
-    [key_string]=[hello world!]
-<DATE><TIME>|<HOST>|I|_print_row
-    [key_s32]=[1974]
-<DATE><TIME>|<HOST>|I|_print_row
-    [key_f32]=[3.14159]
-<DATE><TIME>|<HOST>|I|_print_row
-    [key_f64]=[2.71828]
-<DATE><TIME>|<HOST>|I|_print_row
-    [key_bool]=[Yay]
-<DATE><TIME>|<HOST>|I|_print_row
-    [key_s32_0]=[3]
-<DATE><TIME>|<HOST>|I|TPDBInsertRows
-    found expected output.
-<DATE><TIME>|<HOST>|I|TPDBInsertRows
-    found expected output.
+    Following should generate an error message for NULL database
+<DATE><TIME>|<HOST>|E|psDBInsertRows (FILE:LINENO)
+    Invalid psDB has been specified.
+<DATE><TIME>|<HOST>|I|TPDBInsertRows
+    Following should generate an error message for NULL table
+<DATE><TIME>|<HOST>|E|psDBGenerateInsertRowSQL (FILE:LINENO)
+    Query generation failed.
+<DATE><TIME>|<HOST>|E|psDBInsertRows (FILE:LINENO)
+    Query generation failed.
+<DATE><TIME>|<HOST>|I|TPDBInsertRows
+    Following should generate an error message for invalid table
+<DATE><TIME>|<HOST>|E|psDBInsertRows (FILE:LINENO)
+    Failed to prepare query.  Error: Table 'test.table999' doesn't exist
+<DATE><TIME>|<HOST>|I|TPDBInsertRows
+    Following should generate an error message for NULL row array
+<DATE><TIME>|<HOST>|E|psDBInsertRows (FILE:LINENO)
+    Failed to insert row.
+<DATE><TIME>|<HOST>|I|TPDBInsertRows
+    Following should generate error message for invalid column item
+<DATE><TIME>|<HOST>|E|psDBInsertRows (FILE:LINENO)
+    Failed to prepare query.  Error: Unknown column 'key_999' in 'field list'
 
 ---> TESTPOINT PASSED (psDB{dbInsertRows} | tst_psDB.c)
