Index: /trunk/psLib/test/dataIO/tst_psDB.c
===================================================================
--- /trunk/psLib/test/dataIO/tst_psDB.c	(revision 3961)
+++ /trunk/psLib/test/dataIO/tst_psDB.c	(revision 3962)
@@ -9,6 +9,6 @@
  *  @author Aaron Culliney, MHPCC
  *
- *  @version $Revision: 1.7 $ $Name: not supported by cvs2svn $
- *  @date $Date: 2005-04-07 20:27:41 $
+ *  @version $Revision: 1.8 $ $Name: not supported by cvs2svn $
+ *  @date $Date: 2005-05-18 23:22:02 $
  *
  *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
@@ -43,5 +43,6 @@
     const char *key1, const char *comm1, psS32 val1,
     const char *key2, const char *comm2, psF32 val2,
-    const char *key3, const char *comm3, psF64 val3);
+    const char *key3, const char *comm3, psF64 val3,
+    const char *key4, const char *comm4, psS32 val4);
 static psMetadata *_get_row( void );
 static psMetadata *_get_where( void );
@@ -107,8 +108,9 @@
 {
     return _get_RowMetadata(
-               "key_string", "comment-string", "90000",  // XXX value used to determine size of field ...
-               "key_s32",    "comment-s32",     0,       // NOTE: values unused here
-               "key_f32",    "comment-f32",     0.0,
-               "key_f64",    "comment-f64",     0.0);
+               "key_string", "comment-string",     "90000", // value used to determine size of field
+               "key_s32",    "Primary Key",        0,       // values unused here ...
+               "key_f32",    "Key",                0.0,
+               "key_f64",    "",                   0.0,
+               "key_s32_0",  "Key,AUTO_INCREMENT", 0);
 }
 
@@ -119,5 +121,6 @@
                "key_s32",    "comment-s32",    val1,
                "key_f32",    "comment-f32",    val2,
-               "key_f64",    "comment-f64",    val3);
+               "key_f64",    "comment-f64",    val3,
+               NULL,         NULL,             0.0);
 }
 
@@ -126,8 +129,9 @@
     const char *key1, const char *comm1, psS32 val1,
     const char *key2, const char *comm2, psF32 val2,
-    const char *key3, const char *comm3, psF64 val3)
+    const char *key3, const char *comm3, psF64 val3,
+    const char *key4, const char *comm4, psS32 val4)
 {
     psMetadata *md = NULL;
-    psMetadataItem *str=NULL, *s32=NULL, *f32=NULL, *f64=NULL;
+    psMetadataItem *str=NULL, *s32_0=NULL, *s32=NULL, *f32=NULL, *f64=NULL;
 
     md = psMetadataAlloc();
@@ -139,13 +143,19 @@
         str = psMetadataItemAllocStr(key0, comm0, val0);
     }
+    if (key4 != NULL) {
+        s32_0 = psMetadataItemAllocS32(key4, comm4, val4);
+    }
     s32 = psMetadataItemAllocS32(key1, comm1, val1);
     f32 = psMetadataItemAllocF32(key2, comm2, val2);
     f64 = psMetadataItemAllocF64(key3, comm3, val3);
-    if ( ((key0 != NULL) && (str == NULL)) || (s32 == NULL) || (f32 == NULL) || (f64 == NULL)) {
+
+    if ( ((key0 != NULL) && (str == NULL)) || (s32 == NULL) || (f32 == NULL) || (f64 == NULL) ||
+            ((key4 != NULL) && (s32_0 == NULL)) ) {
         psError(PS_ERR_UNKNOWN, true, "could not create psMetadataItem(s) in %s!", __func__ );
         return NULL;
     }
     if ( ((key0 != NULL) && !psMetadataAddItem(md, str, 0, 0)) || !psMetadataAddItem(md, s32, 0, 0) ||
-            !psMetadataAddItem(md, f32, 0, 0) || !psMetadataAddItem(md, f64, 0, 0)) {
+            !psMetadataAddItem(md, f32, 0, 0) || !psMetadataAddItem(md, f64, 0, 0) ||
+            ((key4 != NULL) && !psMetadataAddItem(md, s32_0, 0, 0))) {
         psError(PS_ERR_UNKNOWN, true, "could not add psMetadataItem(s) to psMetadata in %s!", __func__ );
         return NULL;
@@ -158,6 +168,21 @@
     psFree(f32);
     psFree(f64);
+    if (s32_0 != NULL) {
+        psFree(s32_0);
+    }
 
     return md;
+}
+
+psMetadata *_get_rand_row( void )
+{
+    char buf[32];
+    snprintf(buf, 32, "%d", rand());
+    return _get_RowMetadata(
+               "key_string", "comment-string", buf,
+               "key_s32",    "comment-s32",    rand(),
+               "key_f32",    "comment-f32",    (double)rand()/RAND_MAX,
+               "key_f64",    "comment-f64",    (double)rand()/RAND_MAX,
+               NULL,         NULL,             0.0);
 }
 
@@ -168,5 +193,6 @@
                "key_s32",    "comment-s32",    S32_1,
                "key_f32",    "comment-f32",    F32_1,
-               "key_f64",    "comment-f64",    F64_1);
+               "key_f64",    "comment-f64",    F64_1,
+               NULL,         NULL,             0.0);
 }
 
@@ -225,4 +251,6 @@
     psLogSetLevel( PS_LOG_INFO );
 
+    srand(time(NULL));
+
     return ( ! runTestSuite( stderr, "psDB", tests, argc, argv ) );
 }
@@ -347,9 +375,9 @@
     if (!failed) {
 
-        row = _get_row();
+        row = _get_rand_row();
         psDBInsertOneRow(dbh, table, row);
         psFree(row);
 
-        row = _get_row();
+        row = _get_rand_row();
         psDBInsertOneRow(dbh, table, row);
         psFree(row);
@@ -363,5 +391,5 @@
             failed = 1;
         } else {
-            ptr = psArrayGet(ary, 0);
+            ptr = psArrayGet(ary, 2);
             psLogMsg( __func__, PS_LOG_INFO, "psDBSelectColumn: [%s]\n", ptr );
 
@@ -369,5 +397,5 @@
             psLogMsg( __func__, PS_LOG_INFO, "psDBSelectColumn: [%s]\n", ptr );
 
-            ptr = psArrayGet(ary, 2);
+            ptr = psArrayGet(ary, 0);
             psLogMsg( __func__, PS_LOG_INFO, "psDBSelectColumn: [%s]\n", ptr );
 
@@ -409,9 +437,9 @@
     if (!failed) {
 
-        row = _get_row();
+        row = _get_rand_row();
         psDBInsertOneRow(dbh, table, row);
         psFree(row);
 
-        row = _get_row();
+        row = _get_rand_row();
         psDBInsertOneRow(dbh, table, row);
         psFree(row);
@@ -425,8 +453,8 @@
             failed = 1;
         } else {
+            psLogMsg( __func__, PS_LOG_INFO, "str=[%d]\n", (vec->data.S32)[2] );
+            psLogMsg( __func__, PS_LOG_INFO, "str=[%d]\n", (vec->data.S32)[1] );
             psLogMsg( __func__, PS_LOG_INFO, "str=[%d]\n", (vec->data.S32)[0] );
-            psLogMsg( __func__, PS_LOG_INFO, "str=[%d]\n", (vec->data.S32)[1] );
-            psLogMsg( __func__, PS_LOG_INFO, "str=[%d]\n", (vec->data.S32)[2] );
-            if ((vec->data.S32)[2] != S32_1) {
+            if ((vec->data.S32)[0] != S32_1) {
                 psLogMsg( __func__, PS_LOG_INFO, "oops, did not find expected S32 output!\n" );
                 failed = 1;
@@ -465,9 +493,9 @@
     if (!failed) {
 
-        row = _get_row();
+        row = _get_rand_row();
         psDBInsertOneRow(dbh, table, row);
         psFree(row);
 
-        row = _get_row();
+        row = _get_rand_row();
         psDBInsertOneRow(dbh, table, row);
         psFree(row);
@@ -484,7 +512,5 @@
                 failed = 1;
             } else {
-                _print_row((psMetadata*)psArrayGet(ary, 0));
-                _print_row((psMetadata*)psArrayGet(ary, 1));
-                row = (psMetadata*)psArrayGet(ary, 2);
+                row = (psMetadata*)psArrayGet(ary, 0);
                 _print_row(row);
 
@@ -530,5 +556,5 @@
     failed = ! psDBCreateTable(dbh, table, md);
     if (!failed) {
-        row = _get_row();
+        row = _get_rand_row();
         failed = ! psDBInsertOneRow(dbh, table, row);
         psFree(row);
@@ -564,9 +590,9 @@
         rowSet->n = 0;
 
-        row = _get_row();
+        row = _get_rand_row();
         psArrayAdd(rowSet, 0, row);
         psFree(row);
 
-        row = _get_row();
+        row = _get_rand_row();
         psArrayAdd(rowSet, 0, row);
         psFree(row);
@@ -584,7 +610,7 @@
             failed = 1;
         } else {
-            _print_row((psMetadata*)psArrayGet(rowSet, 0));
+            _print_row((psMetadata*)psArrayGet(rowSet, 2));
             _print_row((psMetadata*)psArrayGet(rowSet, 1));
-            row = (psMetadata*)psArrayGet(rowSet, 2);
+            row = (psMetadata*)psArrayGet(rowSet, 0);
             _print_row(row);
 
@@ -629,9 +655,9 @@
     if (!failed) {
 
-        row = _get_row();
+        row = _get_rand_row();
         psDBInsertOneRow(dbh, table, row);
         psFree(row);
 
-        row = _get_row();
+        row = _get_rand_row();
         psDBInsertOneRow(dbh, table, row);
         psFree(row);
@@ -647,7 +673,7 @@
             } else {
 
-                _print_row((psMetadata*)psArrayGet(ary, 0));
+                _print_row((psMetadata*)psArrayGet(ary, 2));
                 _print_row((psMetadata*)psArrayGet(ary, 1));
-                row = (psMetadata*)psArrayGet(ary, 2);
+                row = (psMetadata*)psArrayGet(ary, 0);
                 _print_row(row);
 
@@ -728,9 +754,9 @@
         rowSet->n = 0;
 
-        row = _get_row();
+        row = _get_rand_row();
         psArrayAdd(rowSet, 0, row);
         psFree(row);
 
-        row = _get_row();
+        row = _get_rand_row();
         psArrayAdd(rowSet, 0, row);
         psFree(row);
@@ -751,7 +777,5 @@
             } else {
 
-                _print_row((psMetadata*)psArrayGet(ary, 0));
-                _print_row((psMetadata*)psArrayGet(ary, 1));
-                row = (psMetadata*)psArrayGet(ary, 2);
+                row = (psMetadata*)psArrayGet(ary, 0);
                 _print_row(row);
 
@@ -801,9 +825,9 @@
         rowSet->n = 0;
 
-        row = _get_row();
+        row = _get_rand_row();
         psArrayAdd(rowSet, 0, row);
         psFree(row);
 
-        row = _get_row();
+        row = _get_rand_row();
         psArrayAdd(rowSet, 0, row);
         psFree(row);
@@ -822,9 +846,9 @@
                 failed = 1;
             } else {
-                if (ary->n > 0) {
+                if (ary->n != 2) {
                     psLogMsg( __func__, PS_LOG_INFO, "oops, did not delete stuff!\n" );
                     failed = 1;
                 } else {
-                    psLogMsg( __func__, PS_LOG_INFO, "found expected empty table.\n" );
+                    psLogMsg( __func__, PS_LOG_INFO, "found expected two-row table.\n" );
                 }
 
