Changeset 4294 for trunk/psLib/test/dataIO/tst_psDB.c
- Timestamp:
- Jun 16, 2005, 4:16:54 PM (21 years ago)
- File:
-
- 1 edited
-
trunk/psLib/test/dataIO/tst_psDB.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/test/dataIO/tst_psDB.c
r4292 r4294 9 9 * @author Aaron Culliney, MHPCC 10 10 * 11 * @version $Revision: 1.1 8$ $Name: not supported by cvs2svn $12 * @date $Date: 2005-06-1 6 23:35:07$11 * @version $Revision: 1.19 $ $Name: not supported by cvs2svn $ 12 * @date $Date: 2005-06-17 02:16:53 $ 13 13 * 14 14 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 662 662 psS32 TPDBSelectColumnNum( void ) 663 663 { 664 psS32 failed = 0;665 664 psDB *dbh = NULL; 666 665 const char* table = "table4"; … … 828 827 psDBCleanup(dbh); 829 828 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 ... 834 833 psS32 TPDBSelectRows( void ) 835 834 { 836 835 int i; 837 psS32 failed = 0;838 836 psDB *dbh = NULL; 839 837 const char* table = "table5"; 840 838 psArray *ary=NULL, *ary1=NULL, *ary2=NULL; 839 psMetadataItem *item = NULL; 840 841 // Create database table definition 841 842 psMetadata *where=NULL, *row=NULL, *md = _get_CreateTableMetadata(); 842 psMetadataItem *item = NULL; 843 843 844 // Initialize database connection 844 845 dbh = _init_psDB(); 845 846 if (dbh == NULL) { 847 psError(PS_ERR_UNKNOWN,true,"Did not expected NULL return to initialize database"); 846 848 return 1; 847 849 } 848 850 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; 906 891 } 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); 909 950 910 951 psFree(md); 911 952 psDBCleanup(dbh); 912 953 913 return failed;954 return 0; 914 955 } 915 956
Note:
See TracChangeset
for help on using the changeset viewer.
