IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 4310


Ignore:
Timestamp:
Jun 17, 2005, 2:52:17 PM (21 years ago)
Author:
evanalst
Message:

Update test case for psDBInsertRows.

Location:
trunk/psLib/test/dataIO
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/psLib/test/dataIO/tst_psDB.c

    r4296 r4310  
    99 *  @author Aaron Culliney, MHPCC
    1010 *
    11  *  @version $Revision: 1.21 $ $Name: not supported by cvs2svn $
    12  *  @date $Date: 2005-06-17 21:32:44 $
     11 *  @version $Revision: 1.22 $ $Name: not supported by cvs2svn $
     12 *  @date $Date: 2005-06-18 00:52:17 $
    1313 *
    1414 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    8989                              {TPDBSelectColumn,   845,  "dbSelectColumn",    0, false},
    9090                              {TPDBSelectColumnNum,846,  "dbSelectColumnNum", 0, false},
    91                               {TPDBSelectRows,      -7,  "dbSelectRows",      0, false},
    92                               {TPDBInsertOneRow,    -8,  "dbInsertOneRow",    0, false},
    93                               {TPDBInsertRows,      -9,  "dbInsertRows",      0, false},
     91                              {TPDBSelectRows,     847,  "dbSelectRows",      0, false},
     92                              {TPDBInsertOneRow,   848,  "dbInsertOneRow",    0, false},
     93                              {TPDBInsertRows,     849,  "dbInsertRows",      0, false},
    9494                              {TPDBDumpRows,        -10, "dbDumpRows",        0, false},
    9595                              {TPDBDumpCols,        -11, "dbDumpCols",        0, false},
     
    997997    const char* table = "table6";
    998998    psMetadata *invalidRow = NULL;
     999    psArray*    ary = NULL;
    9991000
    10001001    // Create table definition metadata
     
    10231024        return 3;
    10241025    }
     1026    // Verify row was added to table
     1027    ary = psDBSelectRows(dbh,table,NULL,0);
     1028    if(ary->n != 1) {
     1029        psError(PS_ERR_UNKNOWN,true,"Number of rows %d not as expected %d",
     1030                ary->n,1);
     1031        psDBDropTable(dbh,table);
     1032        psDBCleanup(dbh);
     1033        return 30;
     1034    }
     1035    psFree(ary);
    10251036
    10261037    // Insert a single row with NULL database
     
    10701081}
    10711082
    1072 // Testpoint #XXX, TPDBInsertRows shall write rows of data into a test table ...
     1083// Testpoint #849, TPDBInsertRows shall write rows of data into a test table ...
    10731084psS32 TPDBInsertRows( void )
    10741085{
    1075     psS32 failed = 0;
    10761086    psDB *dbh = NULL;
    10771087    const char* table = "table7";
    10781088    psArray *rowSet = NULL;
     1089    psArray* dumpRowSet = NULL;
     1090    psMetadataItem *item=NULL;
     1091    psArray* ary = NULL;
     1092    psMetadata* invalidRow = NULL;
     1093    psArray* invalidRowSet = NULL;
     1094
     1095    //Create database table definition metadata
    10791096    psMetadata *row=NULL, *md = _get_CreateTableMetadata();
    1080     psMetadataItem *item=NULL;
    1081 
     1097
     1098    // Initialize database connection
    10821099    dbh = _init_psDB();
    10831100    if (dbh == NULL) {
     1101        psError(PS_ERR_UNKNOWN,true,"Did not expect NULL for initializing database connection");
    10841102        return 1;
    10851103    }
    10861104
    1087     psLogMsg( __func__, PS_LOG_INFO, "psDBInsertRows shall insert rows into a test table.\n" );
    1088 
    1089     failed = ! psDBCreateTable(dbh, table, md);
    1090     if (!failed) {
    1091         rowSet = psArrayAlloc(3);
    1092         rowSet->n = 0;
    1093 
    1094         row = _get_const_row1();
    1095         psArrayAdd(rowSet, 0, row);
    1096         psFree(row);
    1097 
    1098         row = _get_const_row2();
    1099         psArrayAdd(rowSet, 0, row);
    1100         psFree(row);
    1101 
    1102         row = _get_row();
    1103         psArrayAdd(rowSet, 0, row);
    1104         psFree(row);
    1105 
    1106         failed = ! psDBInsertRows(dbh, table, rowSet);
    1107         psFree(rowSet);
    1108 
    1109         // extra checks ...
    1110         rowSet = psDBDumpRows(dbh, table);
    1111         if (rowSet == NULL) {
    1112             failed = 1;
    1113         } else {
    1114             _print_row((psMetadata*)psArrayGet(rowSet, 2));
    1115             _print_row((psMetadata*)psArrayGet(rowSet, 1));
    1116             row = (psMetadata*)psArrayGet(rowSet, 0);
    1117             _print_row(row);
    1118 
    1119             item = psMetadataLookup(row, "key_s32");
    1120             if ((item == NULL) || (item->data.S32 != S32_1)) {
    1121                 psLogMsg( __func__, PS_LOG_INFO, "oops, did not find expected output!\n" );
    1122                 failed = 1;
    1123             } else {
    1124                 psLogMsg( __func__, PS_LOG_INFO, "found expected output.\n" );
    1125             }
    1126 
    1127             item = psMetadataLookup(row, "key_bool");
    1128             if ((item == NULL) || (item->data.B != B_1)) {
    1129                 psLogMsg( __func__, PS_LOG_INFO, "oops, did not find expected output!\n" );
    1130                 failed = 1;
    1131             } else {
    1132                 psLogMsg( __func__, PS_LOG_INFO, "found expected output.\n" );
    1133             }
    1134 
    1135             psFree(rowSet);
    1136         }
    1137 
    1138         psDBDropTable(dbh, table);
    1139     }
    1140 
     1105    // Create database table for testing
     1106    if(!psDBCreateTable(dbh, table, md)) {
     1107        psError(PS_ERR_UNKNOWN,true,"Did not expect return false for creating table");
     1108        psDBCleanup(dbh);
     1109        return 2;
     1110    }
     1111
     1112    // Create array of row elements
     1113    rowSet = psArrayAlloc(3);
     1114    rowSet->n = 0;
     1115
     1116    row = _get_const_row1();
     1117    psArrayAdd(rowSet, 0, row);
     1118    psFree(row);
     1119
     1120    row = _get_const_row2();
     1121    psArrayAdd(rowSet, 0, row);
     1122    psFree(row);
     1123
     1124    row = _get_row();
     1125    psArrayAdd(rowSet, 0, row);
     1126    psFree(row);
     1127
     1128    // Insert rows with valid arguments
     1129    if(!psDBInsertRows(dbh, table, rowSet)) {
     1130        psError(PS_ERR_UNKNOWN,true,"Did not expect return false for inserting rows w/ valid args");
     1131        psDBDropTable(dbh,table);
     1132        psDBCleanup(dbh);
     1133        return 3;
     1134    }
     1135
     1136    // Verify row was added to table
     1137    ary = psDBSelectRows(dbh,table,NULL,0);
     1138    if(ary->n != 3) {
     1139        psError(PS_ERR_UNKNOWN,true,"Number of rows %d not as expected %d",
     1140                ary->n,3);
     1141        psDBDropTable(dbh,table);
     1142        psDBCleanup(dbh);
     1143        return 30;
     1144    }
     1145    psFree(ary);
     1146
     1147    // extra checks ...
     1148    dumpRowSet = psDBDumpRows(dbh, table);
     1149    if (dumpRowSet == NULL) {
     1150        psError(PS_ERR_UNKNOWN,true,"Did not expect NULL from dump rows");
     1151        psDBDropTable(dbh,table);
     1152        psDBCleanup(dbh);
     1153        return 4;
     1154    }
     1155
     1156    // Get first row from array
     1157    row = (psMetadata*)psArrayGet(dumpRowSet, 0);
     1158    // Verify contents for column key_s32
     1159    item = psMetadataLookup(row, "key_s32");
     1160    if ((item == NULL) || (item->data.S32 != S32_1)) {
     1161        psError(PS_ERR_UNKNOWN,true,"Column value %d not as expected %d",
     1162                item->data.S32, S32_1);
     1163        psDBDropTable(dbh,table);
     1164        psDBCleanup(dbh);
     1165        return 5;
     1166    }
     1167    // Verify contents for column key_bool
     1168    item = psMetadataLookup(row, "key_bool");
     1169    if ((item == NULL) || (item->data.B != B_1)) {
     1170        psError(PS_ERR_UNKNOWN,true,"Column value %d not as expected %d",
     1171                item->data.B, B_1);
     1172        psDBDropTable(dbh,table);
     1173        psDBCleanup(dbh);
     1174        return 6;
     1175    }
     1176    psFree(dumpRowSet);
     1177
     1178    // Insert rows with NULL database object
     1179    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message for NULL database");
     1180    if(psDBInsertRows(NULL,table,rowSet)) {
     1181        psError(PS_ERR_UNKNOWN,true,"Did not expect return of false for NULL database");
     1182        psDBDropTable(dbh,table);
     1183        psDBCleanup(dbh);
     1184        return 7;
     1185    }
     1186
     1187    // Insert rows with NULL table
     1188    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message for NULL table");
     1189    if(psDBInsertRows(dbh,NULL,rowSet)) {
     1190        psError(PS_ERR_UNKNOWN,true,"Did not expect return of false for NULL table");
     1191        psDBDropTable(dbh,table);
     1192        psDBCleanup(dbh);
     1193        return 70;
     1194    }
     1195
     1196    // Insert rows with invalid table
     1197    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message for invalid table");
     1198    if(psDBInsertRows(dbh,"table999",rowSet)) {
     1199        psError(PS_ERR_UNKNOWN,true,"Did not expect return of false for invalid table");
     1200        psDBDropTable(dbh,table);
     1201        psDBCleanup(dbh);
     1202        return 8;
     1203    }
     1204
     1205    // Insert rows with NULL array of rows to be inserted
     1206    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message for NULL row array");
     1207    if(psDBInsertRows(dbh,table,NULL)) {
     1208        psError(PS_ERR_UNKNOWN,true,"Did not expect return of false for NULL row array");
     1209        psDBDropTable(dbh,table);
     1210        psDBCleanup(dbh);
     1211        return 9;
     1212    }
     1213
     1214    // Insert a single row which has column which does not match table
     1215    invalidRow = _get_invalid_row();
     1216    // Create array of invalid row element
     1217    invalidRowSet = psArrayAlloc(1);
     1218    invalidRowSet->n = 0;
     1219    psArrayAdd(invalidRowSet, 0, invalidRow);
     1220    psFree(invalidRow);
     1221
     1222    psLogMsg(__func__,PS_LOG_INFO,"Following should generate error message for invalid column item");
     1223    if(psDBInsertRows(dbh,table,invalidRowSet)) {
     1224        psError(PS_ERR_UNKNOWN,true,"Did not expect return value true for invalid column item");
     1225        psDBDropTable(dbh,table);
     1226        psDBCleanup(dbh);
     1227        return 10;
     1228    }
     1229    psFree(invalidRowSet);
     1230
     1231    psFree(rowSet);
     1232    psDBDropTable(dbh, table);
    11411233    psFree(md);
    11421234    psDBCleanup(dbh);
    11431235
    1144     return failed;
     1236    return 0;
    11451237}
    11461238
  • trunk/psLib/test/dataIO/verified/tst_psDB.stderr

    r4296 r4310  
    212212
    213213<DATE><TIME>|<HOST>|I|TPDBInsertRows
    214     psDBInsertRows shall insert rows into a test table.
    215 <DATE><TIME>|<HOST>|I|_print_row
    216     [key_string]=[randrow1]
    217 <DATE><TIME>|<HOST>|I|_print_row
    218     [key_s32]=[12345]
    219 <DATE><TIME>|<HOST>|I|_print_row
    220     [key_f32]=[9876.5]
    221 <DATE><TIME>|<HOST>|I|_print_row
    222     [key_f64]=[456.75]
    223 <DATE><TIME>|<HOST>|I|_print_row
    224     [key_bool]=[Yay]
    225 <DATE><TIME>|<HOST>|I|_print_row
    226     [key_s32_0]=[1]
    227 <DATE><TIME>|<HOST>|I|_print_row
    228     [key_string]=[randrow2]
    229 <DATE><TIME>|<HOST>|I|_print_row
    230     [key_s32]=[2345]
    231 <DATE><TIME>|<HOST>|I|_print_row
    232     [key_f32]=[876.5]
    233 <DATE><TIME>|<HOST>|I|_print_row
    234     [key_f64]=[56.75]
    235 <DATE><TIME>|<HOST>|I|_print_row
    236     [key_bool]=[Nay]
    237 <DATE><TIME>|<HOST>|I|_print_row
    238     [key_s32_0]=[2]
    239 <DATE><TIME>|<HOST>|I|_print_row
    240     [key_string]=[hello world!]
    241 <DATE><TIME>|<HOST>|I|_print_row
    242     [key_s32]=[1974]
    243 <DATE><TIME>|<HOST>|I|_print_row
    244     [key_f32]=[3.14159]
    245 <DATE><TIME>|<HOST>|I|_print_row
    246     [key_f64]=[2.71828]
    247 <DATE><TIME>|<HOST>|I|_print_row
    248     [key_bool]=[Yay]
    249 <DATE><TIME>|<HOST>|I|_print_row
    250     [key_s32_0]=[3]
    251 <DATE><TIME>|<HOST>|I|TPDBInsertRows
    252     found expected output.
    253 <DATE><TIME>|<HOST>|I|TPDBInsertRows
    254     found expected output.
     214    Following should generate an error message for NULL database
     215<DATE><TIME>|<HOST>|E|psDBInsertRows (FILE:LINENO)
     216    Invalid psDB has been specified.
     217<DATE><TIME>|<HOST>|I|TPDBInsertRows
     218    Following should generate an error message for NULL table
     219<DATE><TIME>|<HOST>|E|psDBGenerateInsertRowSQL (FILE:LINENO)
     220    Query generation failed.
     221<DATE><TIME>|<HOST>|E|psDBInsertRows (FILE:LINENO)
     222    Query generation failed.
     223<DATE><TIME>|<HOST>|I|TPDBInsertRows
     224    Following should generate an error message for invalid table
     225<DATE><TIME>|<HOST>|E|psDBInsertRows (FILE:LINENO)
     226    Failed to prepare query.  Error: Table 'test.table999' doesn't exist
     227<DATE><TIME>|<HOST>|I|TPDBInsertRows
     228    Following should generate an error message for NULL row array
     229<DATE><TIME>|<HOST>|E|psDBInsertRows (FILE:LINENO)
     230    Failed to insert row.
     231<DATE><TIME>|<HOST>|I|TPDBInsertRows
     232    Following should generate error message for invalid column item
     233<DATE><TIME>|<HOST>|E|psDBInsertRows (FILE:LINENO)
     234    Failed to prepare query.  Error: Unknown column 'key_999' in 'field list'
    255235
    256236---> TESTPOINT PASSED (psDB{dbInsertRows} | tst_psDB.c)
Note: See TracChangeset for help on using the changeset viewer.