Index: /trunk/psLib/test/dataIO/tst_psDB.c
===================================================================
--- /trunk/psLib/test/dataIO/tst_psDB.c	(revision 4316)
+++ /trunk/psLib/test/dataIO/tst_psDB.c	(revision 4317)
@@ -9,6 +9,6 @@
  *  @author Aaron Culliney, MHPCC
  *
- *  @version $Revision: 1.22 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2005-06-18 00:52:17 $
+ *  @version $Revision: 1.23 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2005-06-18 03:22:43 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -37,4 +37,6 @@
 #define B_1 TRUE
 #define B_2 FALSE
+
+#define ERROR_TOL   0.001
 
 #define CONST_ROW_1_STR      "randrow1"
@@ -65,4 +67,7 @@
 static psMetadata *_get_update_values(const char *val0, psS32 val1, psF32 val2, psF64 val3, psBool val4);
 static void _print_row( psMetadata *row );
+static bool _check_row(psMetadata* row);
+static bool _check_const_row1(psMetadata* row);
+static bool _check_const_row2(psMetadata* row);
 
 //static psS32 TPDBCreate( void );
@@ -92,5 +97,5 @@
                               {TPDBInsertOneRow,   848,  "dbInsertOneRow",    0, false},
                               {TPDBInsertRows,     849,  "dbInsertRows",      0, false},
-                              {TPDBDumpRows,        -10, "dbDumpRows",        0, false},
+                              {TPDBDumpRows,       850,  "dbDumpRows",        0, false},
                               {TPDBDumpCols,        -11, "dbDumpCols",        0, false},
                               {TPDBUpdateRows,      -12, "dbUpdateRows",      0, false},
@@ -271,4 +276,133 @@
 {
     return _get_RowMetadataValues(val0, val1, val2, val3, val4);
+}
+
+bool _check_row(psMetadata* row)
+{
+    bool              returnValue = true;
+    psMetadataItem*   item        = NULL;
+
+    item = psMetadataLookup(row,"key_string");
+    if((item==NULL) || (strcmp(item->data.V,STR_1)!=0)) {
+        psError(PS_ERR_UNKNOWN,true,"Column key_string item %s not as expected %s",
+                item->data.V,STR_1);
+        return false;
+    }
+
+    item = psMetadataLookup(row,"key_s32");
+    if((item==NULL) || (item->data.S32 != S32_1)) {
+        psError(PS_ERR_UNKNOWN,true,"Column key_s32 item %d not as expected %d",
+                item->data.S32, S32_1);
+        return false;
+    }
+
+    item = psMetadataLookup(row,"key_f32");
+    if((item==NULL) || (fabs(item->data.F32-F32_1)>ERROR_TOL)) {
+        psError(PS_ERR_UNKNOWN,true,"Column key_f32 item %f not as expected %f",
+                item->data.F32, F32_1);
+        return false;
+    }
+
+    item = psMetadataLookup(row,"key_f64");
+    if((item==NULL) || (fabs(item->data.F64-F64_1)>ERROR_TOL)) {
+        psError(PS_ERR_UNKNOWN,true,"Column key_f64 item %lf not as expected %lf",
+                item->data.F64,F64_1);
+        return false;
+    }
+
+    item = psMetadataLookup(row,"key_bool");
+    if((item==NULL) || (item->data.B != B_1)) {
+        psError(PS_ERR_UNKNOWN,true,"Column key_bool item %d not as expected %d",
+                item->data.B, B_1);
+        return false;
+    }
+
+    return returnValue;
+}
+
+bool _check_const_row1(psMetadata* row)
+{
+    bool              returnValue = true;
+    psMetadataItem*   item        = NULL;
+
+    item = psMetadataLookup(row,"key_string");
+    if((item==NULL) || (strcmp(item->data.V,CONST_ROW_1_STR)!=0)) {
+        psError(PS_ERR_UNKNOWN,true,"Column key_string item %s not as expected %s",
+                item->data.V,CONST_ROW_1_STR);
+        return false;
+    }
+
+    item = psMetadataLookup(row,"key_s32");
+    if((item==NULL) || (item->data.S32 != CONST_ROW_1_S32)) {
+        psError(PS_ERR_UNKNOWN,true,"Column key_s32 item %d not as expected %d",
+                item->data.S32, CONST_ROW_1_S32);
+        return false;
+    }
+
+    item = psMetadataLookup(row,"key_f32");
+    if((item==NULL) || (fabs(item->data.F32-CONST_ROW_1_F32)>ERROR_TOL)) {
+        psError(PS_ERR_UNKNOWN,true,"Column key_f32 item %f not as expected %f",
+                item->data.F32, CONST_ROW_1_F32);
+        return false;
+    }
+
+    item = psMetadataLookup(row,"key_f64");
+    if((item==NULL) || (fabs(item->data.F64-CONST_ROW_1_F64)>ERROR_TOL)) {
+        psError(PS_ERR_UNKNOWN,true,"Column key_f64 item %lf not as expected %lf",
+                item->data.F64,CONST_ROW_1_F64);
+        return false;
+    }
+
+    item = psMetadataLookup(row,"key_bool");
+    if((item==NULL) || (item->data.B != CONST_ROW_1_BOOL)) {
+        psError(PS_ERR_UNKNOWN,true,"Column key_bool item %d not as expected %d",
+                item->data.B, CONST_ROW_1_BOOL);
+        return false;
+    }
+
+    return returnValue;
+}
+
+bool _check_const_row2(psMetadata* row)
+{
+    bool              returnValue = true;
+    psMetadataItem*   item        = NULL;
+
+    item = psMetadataLookup(row,"key_string");
+    if((item==NULL) || (strcmp(item->data.V,CONST_ROW_2_STR)!=0)) {
+        psError(PS_ERR_UNKNOWN,true,"Column key_string item %s not as expected %s",
+                item->data.V,CONST_ROW_2_STR);
+        return false;
+    }
+
+    item = psMetadataLookup(row,"key_s32");
+    if((item==NULL) || (item->data.S32 != CONST_ROW_2_S32)) {
+        psError(PS_ERR_UNKNOWN,true,"Column key_s32 item %d not as expected %d",
+                item->data.S32, CONST_ROW_2_S32);
+        return false;
+    }
+
+    item = psMetadataLookup(row,"key_f32");
+    if((item==NULL) || (fabs(item->data.F32-CONST_ROW_2_F32)>ERROR_TOL)) {
+        psError(PS_ERR_UNKNOWN,true,"Column key_f32 item %f not as expected %f",
+                item->data.F32, CONST_ROW_2_F32);
+        return false;
+    }
+
+    item = psMetadataLookup(row,"key_f64");
+    if((item==NULL) || (fabs(item->data.F64-CONST_ROW_2_F64)>ERROR_TOL)) {
+        psError(PS_ERR_UNKNOWN,true,"Column key_f64 item %lf not as expected %lf",
+                item->data.F64,CONST_ROW_2_F64);
+        return false;
+    }
+
+    item = psMetadataLookup(row,"key_bool");
+    if((item==NULL) || (item->data.B != CONST_ROW_2_BOOL)) {
+        psError(PS_ERR_UNKNOWN,true,"Column key_bool item %d not as expected %d",
+                item->data.B, CONST_ROW_2_BOOL);
+        return false;
+    }
+
+    return returnValue;
 }
 
@@ -1237,74 +1371,84 @@
 }
 
-// Testpoint #XXX, TPDBDumpRows shall dump all rows from a test table ...
+// Testpoint #850, TPDBDumpRows shall dump all rows from a test table ...
 psS32 TPDBDumpRows( void )
 {
-    psS32 failed = 0;
     psDB *dbh = NULL;
     const char* table = "table8";
     psArray *ary = NULL;
+
+    // Create 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 return NULL from initializing database");
         return 1;
     }
 
-    psLogMsg( __func__, PS_LOG_INFO, "psDBDumpRows shall dump all rows from a test table.\n" );
-
-    failed = ! psDBCreateTable(dbh, table, md);
-    if (!failed) {
-
-        row = _get_const_row1();
-        psDBInsertOneRow(dbh, table, row);
-        psFree(row);
-
-        row = _get_const_row2();
-        psDBInsertOneRow(dbh, table, row);
-        psFree(row);
-
-        row = _get_row();
-        failed = ! psDBInsertOneRow(dbh, table, row);
-        psFree(row);
-
-        if (!failed) {
-            ary = psDBDumpRows(dbh, table);
-            if (ary == NULL) {
-                failed = 1;
-            } else {
-
-                _print_row((psMetadata*)psArrayGet(ary, 2));
-                _print_row((psMetadata*)psArrayGet(ary, 1));
-                row = (psMetadata*)psArrayGet(ary, 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(ary);
-            }
-        }
-
-        psDBDropTable(dbh, table);
-    }
+    // Create table for testing
+    if(!psDBCreateTable(dbh, table, md)) {
+        psError(PS_ERR_UNKNOWN,true,"Did not expect return false from creating table");
+        psDBCleanup(dbh);
+        return 2;
+    }
+
+    // Insert known data rows into table
+    row = _get_const_row1();
+    psDBInsertOneRow(dbh, table, row);
+    psFree(row);
+
+    row = _get_const_row2();
+    psDBInsertOneRow(dbh, table, row);
+    psFree(row);
+
+    row = _get_row();
+    psDBInsertOneRow(dbh, table, row);
+    psFree(row);
+
+    // Dump row with valid parameters
+    ary = psDBDumpRows(dbh, table);
+    if (ary == NULL) {
+        psError(PS_ERR_UNKNOWN,true,"Did not expect return NULL for dump rows");
+        psDBDropTable(dbh,table);
+        psDBCleanup(dbh);
+        return 3;
+    }
+    if(ary->n != 3) {
+        psError(PS_ERR_UNKNOWN,true,"Rows dumped %d not as expected %d",
+                ary->n, 3);
+        psDBDropTable(dbh,table);
+        psDBCleanup(dbh);
+        return 4;
+    }
+
+    row = (psMetadata*)psArrayGet(ary, 0);
+    if(!_check_row(row)) {
+        psDBDropTable(dbh,table);
+        psDBCleanup(dbh);
+        return 5;
+    }
+    row = (psMetadata*)psArrayGet(ary, 1);
+    if(!_check_const_row2(row)) {
+        psDBDropTable(dbh,table);
+        psDBCleanup(dbh);
+        return 6;
+    }
+    row = (psMetadata*)psArrayGet(ary, 2);
+    if(!_check_const_row1(row)) {
+        psDBDropTable(dbh,table);
+        psDBCleanup(dbh);
+        return 7;
+    }
+
+    psFree(ary);
+
+    psDBDropTable(dbh, table);
 
     psFree(md);
     psDBCleanup(dbh);
 
-    return failed;
+    return 0;
 }
 
