IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 4294


Ignore:
Timestamp:
Jun 16, 2005, 4:16:54 PM (21 years ago)
Author:
evanalst
Message:

Update test case for psDBSelectRows

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

Legend:

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

    r4292 r4294  
    99 *  @author Aaron Culliney, MHPCC
    1010 *
    11  *  @version $Revision: 1.18 $ $Name: not supported by cvs2svn $
    12  *  @date $Date: 2005-06-16 23:35:07 $
     11 *  @version $Revision: 1.19 $ $Name: not supported by cvs2svn $
     12 *  @date $Date: 2005-06-17 02:16:53 $
    1313 *
    1414 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    662662psS32 TPDBSelectColumnNum( void )
    663663{
    664     psS32 failed = 0;
    665664    psDB *dbh = NULL;
    666665    const char* table = "table4";
     
    828827    psDBCleanup(dbh);
    829828
    830     return failed;
    831 }
    832 
    833 // Testpoint #XXX, TPDBSelectRows shall write/select data from a test table ...
     829    return 0;
     830}
     831
     832// Testpoint #847, TPDBSelectRows shall write/select data from a test table ...
    834833psS32 TPDBSelectRows( void )
    835834{
    836835    int i;
    837     psS32 failed = 0;
    838836    psDB *dbh = NULL;
    839837    const char* table = "table5";
    840838    psArray *ary=NULL, *ary1=NULL, *ary2=NULL;
     839    psMetadataItem *item = NULL;
     840
     841    // Create database table definition
    841842    psMetadata *where=NULL, *row=NULL, *md = _get_CreateTableMetadata();
    842     psMetadataItem *item = NULL;
    843 
     843
     844    // Initialize database connection
    844845    dbh = _init_psDB();
    845846    if (dbh == NULL) {
     847        psError(PS_ERR_UNKNOWN,true,"Did not expected NULL return to initialize database");
    846848        return 1;
    847849    }
    848850
    849     psLogMsg( __func__, PS_LOG_INFO, "psDBSelectRows shall select data from a test table.\n" );
    850 
    851     failed = ! psDBCreateTable(dbh, table, md);
    852     if (!failed) {
    853 
    854         row = _get_const_row1();
    855         psDBInsertOneRow(dbh, table, row);
    856         psFree(row);
    857 
    858         row = _get_const_row2();
    859         psDBInsertOneRow(dbh, table, row);
    860         psFree(row);
    861 
    862         row = _get_row();
    863         failed = ! psDBInsertOneRow(dbh, table, row);
    864         psFree(row);
    865 
    866         if (!failed) {
    867             where = _get_where();
    868             ary1 = psDBSelectRows(dbh, table, where, 0);
    869             ary2 = psDBSelectRows(dbh, table, where, 1); /* specify limit */
    870             psFree(where);
    871             for (i=0; i<2; i++) {
    872                 ary = i ? ary2 : ary1;
    873                 if (ary == NULL) {
    874                     failed = 1;
    875                 } else {
    876                     row = (psMetadata*)psArrayGet(ary, 0);
    877                     _print_row(row);
    878 
    879                     item = psMetadataLookup(row, "key_s32");
    880                     if (item == NULL) {
    881                         psLogMsg( __func__, PS_LOG_INFO, "oops, key_s32 not found!\n" );
    882                         failed = 1;
    883                     } else if (item->data.S32 != S32_1) {
    884                         psLogMsg( __func__, PS_LOG_INFO, "oops, did not find expected output (%d vs %d)!\n",
    885                                   item->data.S32,S32_1);
    886                         failed = 1;
    887                     } else {
    888                         psLogMsg( __func__, PS_LOG_INFO, "found expected output.\n" );
    889                     }
    890 
    891                     item = psMetadataLookup(row, "key_bool");
    892                     if (item == NULL) {
    893                         psLogMsg( __func__, PS_LOG_INFO, "oops, key_bool not found!\n" );
    894                         failed = 1;
    895                     } else if (item->data.B != B_1) {
    896                         psLogMsg( __func__, PS_LOG_INFO, "oops, did not find expected output (%d vs %d)!\n",
    897                                   item->data.B,B_1);
    898                         failed = 1;
    899                     } else {
    900                         psLogMsg( __func__, PS_LOG_INFO, "found expected output.\n" );
    901                     }
    902 
    903                     psFree(ary);
    904                 }
    905             }
     851    // Create database table for test
     852    if(!psDBCreateTable(dbh, table, md)) {
     853        psError(PS_ERR_UNKNOWN,true,"Did not expect return false for create table");
     854        psDBCleanup(dbh);
     855        return 2;
     856    }
     857
     858    // Initialize database table with known rows
     859    row = _get_const_row1();
     860    psDBInsertOneRow(dbh, table, row);
     861    psFree(row);
     862
     863    row = _get_const_row2();
     864    psDBInsertOneRow(dbh, table, row);
     865    psFree(row);
     866
     867    row = _get_row();
     868    psDBInsertOneRow(dbh, table, row);
     869    psFree(row);
     870
     871    // Generate valid where clause
     872    where = _get_where();
     873
     874    // Select rows with non limit
     875    ary1 = psDBSelectRows(dbh, table, where, 0);
     876
     877    // Select rows with a limit
     878    ary2 = psDBSelectRows(dbh, table, where, 1);
     879    psFree(where);
     880
     881    // Cycle through both arrays to verify results
     882    for (i=0; i<2; i++) {
     883        ary = i ? ary2 : ary1;
     884
     885        // Verify return array not NULL
     886        if (ary == NULL) {
     887            psError(PS_ERR_UNKNOWN,true,"Did not expect return NULL");
     888            psDBDropTable(dbh,table);
     889            psDBCleanup(dbh);
     890            return 1;
    906891        }
    907         psDBDropTable(dbh, table);
    908     }
     892
     893        // Get metadata which contains row from array
     894        row = (psMetadata*)psArrayGet(ary, 0);
     895
     896        // Get key_s32 item from metadata
     897        item = psMetadataLookup(row, "key_s32");
     898        if (item == NULL) {
     899            psError(PS_ERR_UNKNOWN,true,"Could not find key_s32 item in row metadata");
     900            psDBDropTable(dbh,table);
     901            psDBCleanup(dbh);
     902            return 2;
     903        }
     904        if (item->data.S32 != S32_1) {
     905            psError(PS_ERR_UNKNOWN,true,"Row item %d not as expected %d",
     906                    item->data.S32,S32_1);
     907            psDBDropTable(dbh,table);
     908            psDBCleanup(dbh);
     909            return 3;
     910        }
     911
     912        // Get key_bool item from metadata
     913        item = psMetadataLookup(row, "key_bool");
     914        if (item == NULL) {
     915            psError(PS_ERR_UNKNOWN,true,"Could not find key_bool item in row metadata");
     916            psDBDropTable(dbh,table);
     917            psDBCleanup(dbh);
     918            return 2;
     919        }
     920        if (item->data.B != B_1) {
     921            psError(PS_ERR_UNKNOWN,true,"Row item %d not as expected %d",
     922                    item->data.S32,S32_1);
     923            psDBDropTable(dbh,table);
     924            psDBCleanup(dbh);
     925            return 4;
     926        }
     927        psFree(ary);
     928    }
     929
     930    // Attempt to select rows with NULL database object
     931    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message for NULL database object");
     932    if(psDBSelectRows(NULL, table, where, 0) != NULL) {
     933        psError(PS_ERR_UNKNOWN,true,"Did not expect non-NULL return for NULL database object");
     934        psDBDropTable(dbh,table);
     935        psDBCleanup(dbh);
     936        return 5;
     937    }
     938
     939    // Attempt to select rows with invalid table
     940    psLogMsg(__func__,PS_LOG_INFO,"Following should generate an error message for invalid table");
     941    if(psDBSelectRows(dbh, NULL, where, 0) != NULL) {
     942        psError(PS_ERR_UNKNOWN,true,"Did not expect non-NULL return for NULL database object");
     943        psDBDropTable(dbh,table);
     944        psDBCleanup(dbh);
     945        return 5;
     946    }
     947
     948
     949    psDBDropTable(dbh, table);
    909950
    910951    psFree(md);
    911952    psDBCleanup(dbh);
    912953
    913     return failed;
     954    return 0;
    914955}
    915956
  • trunk/psLib/test/dataIO/verified/tst_psDB.stderr

    r4292 r4294  
    156156
    157157<DATE><TIME>|<HOST>|I|TPDBSelectRows
    158     psDBSelectRows shall select data from a test table.
    159 <DATE><TIME>|<HOST>|I|_print_row
    160     [key_string]=[hello world!]
    161 <DATE><TIME>|<HOST>|I|_print_row
    162     [key_s32]=[1974]
    163 <DATE><TIME>|<HOST>|I|_print_row
    164     [key_f32]=[3.14159]
    165 <DATE><TIME>|<HOST>|I|_print_row
    166     [key_f64]=[2.71828]
    167 <DATE><TIME>|<HOST>|I|_print_row
    168     [key_bool]=[Yay]
    169 <DATE><TIME>|<HOST>|I|_print_row
    170     [key_s32_0]=[3]
     158    Following should generate an error message for NULL database object
     159<DATE><TIME>|<HOST>|E|p_psDBRunQuery (FILE:LINENO)
     160    Invalid psDB has been specified.
     161<DATE><TIME>|<HOST>|E|psDBSelectRows (FILE:LINENO)
     162    Query execution failed.
    171163<DATE><TIME>|<HOST>|I|TPDBSelectRows
    172     found expected output.
    173 <DATE><TIME>|<HOST>|I|TPDBSelectRows
    174     found expected output.
    175 <DATE><TIME>|<HOST>|I|_print_row
    176     [key_string]=[hello world!]
    177 <DATE><TIME>|<HOST>|I|_print_row
    178     [key_s32]=[1974]
    179 <DATE><TIME>|<HOST>|I|_print_row
    180     [key_f32]=[3.14159]
    181 <DATE><TIME>|<HOST>|I|_print_row
    182     [key_f64]=[2.71828]
    183 <DATE><TIME>|<HOST>|I|_print_row
    184     [key_bool]=[Yay]
    185 <DATE><TIME>|<HOST>|I|_print_row
    186     [key_s32_0]=[3]
    187 <DATE><TIME>|<HOST>|I|TPDBSelectRows
    188     found expected output.
    189 <DATE><TIME>|<HOST>|I|TPDBSelectRows
    190     found expected output.
     164    Following should generate an error message for invalid table
     165<DATE><TIME>|<HOST>|E|p_psDBRunQuery (FILE:LINENO)
     166    Failed to execute SQL query.  Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'null) WHERE key_s32=1974' at line 1
     167<DATE><TIME>|<HOST>|E|psDBSelectRows (FILE:LINENO)
     168    Query execution failed.
    191169
    192170---> TESTPOINT PASSED (psDB{dbSelectRows} | tst_psDB.c)
Note: See TracChangeset for help on using the changeset viewer.