IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 7937


Ignore:
Timestamp:
Jul 18, 2006, 5:43:14 PM (20 years ago)
Author:
drobbin
Message:

Edited psMetadataItemTransfer. Returns false for NULL out input.

Location:
trunk/psLib
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/psLib/src/types/psMetadata.c

    r7933 r7937  
    1212 *  @author Ross Harman, MHPCC
    1313 *
    14  *  @version $Revision: 1.119 $ $Name: not supported by cvs2svn $
    15  *  @date $Date: 2006-07-18 21:53:25 $
     14 *  @version $Revision: 1.120 $ $Name: not supported by cvs2svn $
     15 *  @date $Date: 2006-07-19 03:43:14 $
    1616 *
    1717 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    465465
    466466// may need to extend this to change the keyname in the copy
    467 psMetadata *psMetadataItemTransfer(psMetadata *out, const psMetadata *in, const char *key)
    468 {
    469     PS_ASSERT_PTR_NON_NULL(in, NULL);
     467bool psMetadataItemTransfer(psMetadata *out,
     468                            const psMetadata *in,
     469                            const char *key)
     470{
     471    if (in == NULL) {
     472        psError(PS_ERR_BAD_PARAMETER_NULL, true,
     473                "psMetadataItemTransfer:  'in' cannot be NULL.\n");
     474        return false;
     475    }
     476    if (out == NULL) {
     477        psError(PS_ERR_BAD_PARAMETER_NULL, true,
     478                "psMetadataItemTransfer:  'out' cannot be NULL.\n");
     479        return false;
     480    }
    470481    if (key == NULL) {
    471482        psError(PS_ERR_BAD_PARAMETER_NULL, true,
    472483                "psMetadataItemTransfer:  'key' cannot be NULL.\n");
    473         return NULL;
     484        return false;
    474485    }
    475486
    476487    psMetadataItem *item = psMetadataLookup(in, key);
    477488    if (!item) {
    478         return NULL;
    479     }
    480     if (out == NULL) {
    481         out = psMetadataAlloc();
    482     }
    483     if (!psMetadataAddItem(out, item, PS_LIST_HEAD, PS_META_DEFAULT) ) {
    484         psFree(out);
    485         return NULL;
    486     }
    487 
    488     return out;
     489        psError(PS_ERR_BAD_PARAMETER_VALUE, true,
     490                "psMetadataItemTransfer:  Could not find 'key' in psMetadata 'in'.\n");
     491        return false;
     492    }
     493    if (!psMetadataAddItem(out, item, PS_LIST_TAIL, PS_META_REPLACE) ) {
     494        psError(PS_ERR_BAD_PARAMETER_VALUE, true,
     495                "psMetadataItemTransfer:  Could not add item to psMetadata 'out'.\n");
     496        return false;
     497    }
     498
     499    return true;
    489500}
    490501
  • trunk/psLib/src/types/psMetadata.h

    r7933 r7937  
    1111*  @author Ross Harman, MHPCC
    1212*
    13 *  @version $Revision: 1.82 $ $Name: not supported by cvs2svn $
    14 *  @date $Date: 2006-07-18 21:53:25 $
     13*  @version $Revision: 1.83 $ $Name: not supported by cvs2svn $
     14*  @date $Date: 2006-07-19 03:43:14 $
    1515*
    1616*  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    400400 *  @return bool:       True if successful, otherwise false.
    401401 */
    402 psMetadata *psMetadataItemTransfer(
     402bool psMetadataItemTransfer(
    403403    psMetadata *out,                   ///< output Metadata container for copying.
    404404    const psMetadata *in,              ///< Metadata collection from which to copy.
  • trunk/psLib/test/types/tst_psMetadata_01.c

    r7933 r7937  
    55*  @author  dRob, MHPCC
    66*
    7 *  @version $Revision: 1.9 $  $Name: not supported by cvs2svn $
    8 *  @date  $Date: 2006-07-18 21:53:25 $
     7*  @version $Revision: 1.10 $  $Name: not supported by cvs2svn $
     8*  @date  $Date: 2006-07-19 03:43:14 $
    99*
    1010*  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    100100psS32 testMetadataItemTransfer(void)
    101101{
    102     //    psMetadataItem *item = psMetadataItemAlloc("metaITEM", PS_DATA_S32, "no Comment");
    103     //    item->data.S32 = 666;
    104     //    psMetadataItem *item2 = NULL;
     102
    105103    psMetadata *md = psMetadataAlloc();
    106     //    psMetadata *md2 = psMetadataAlloc();
    107104    psMetadata *out = NULL;
    108     //    out = psMetadataAlloc();
    109     //  psMetadataAddItem(md, item, PS_LIST_HEAD, PS_META_DEFAULT);
    110     psMetadataAddS32(md, PS_LIST_HEAD, "metaITEM", 0, "no Comment", 666);
    111 
    112     //attempt transfer to NULL metadata.
    113     out = psMetadataItemTransfer(out, md, "metaITEM");
    114     if ( out == NULL) {
    115         psError(PS_ERR_BAD_PARAMETER_VALUE, true,
    116                 "psMetadataItemTransfer failed to correctly allocate metadata and transfer item.\n");
     105    psMetadataAddS32(md, PS_LIST_TAIL, "metaITEM", 0, "no Comment", 666);
     106
     107    //attempt transfer to NULL 'out' metadata.
     108    psLogMsg(__func__,PS_LOG_INFO,"Following should generate error message");
     109    if ( psMetadataItemTransfer(out, md, "metaITEM") ) {
     110        psError(PS_ERR_BAD_PARAMETER_VALUE, true,
     111                "psMetadataItemTransfer failed to return false for NULL 'out' metadata.\n");
    117112        return 1;
    118113    }
     114    out = psMetadataAlloc();
     115    //attempt to transfer using a NULL key.
     116    psLogMsg(__func__,PS_LOG_INFO,"Following should generate error message");
     117    if ( psMetadataItemTransfer(out, md, NULL) ) {
     118        psError(PS_ERR_BAD_PARAMETER_VALUE, true,
     119                "psMetadataItemTransfer failed to return false for NULL key input.\n");
     120        return 2;
     121    }
     122    //attempt transfer to NULL 'in' metadata.
     123    psLogMsg(__func__,PS_LOG_INFO,"Following should generate error message");
     124    if ( psMetadataItemTransfer(out, NULL, "metaITEM") ) {
     125        psError(PS_ERR_BAD_PARAMETER_VALUE, true,
     126                "psMetadataItemTransfer failed to return false for NULL 'in' metadata.\n");
     127        return 3;
     128    }
     129    //attempt to transfer using an allocated metadata and invalid key
     130    psLogMsg(__func__,PS_LOG_INFO,"Following should generate error message");
     131    if (psMetadataItemTransfer(out, md, "metaITEM2") ) {
     132        psError(PS_ERR_BAD_PARAMETER_VALUE, true,
     133                "psMetadataItemTransfer failed to return false for invalid 'key'.\n");
     134        return 4;
     135    }
     136    //attempt to transfer with all valid inputs.
     137    psMetadataItem *item = NULL;
     138    if ( !psMetadataItemTransfer(out, md, "metaITEM") ) {
     139        psError(PS_ERR_BAD_PARAMETER_VALUE, true,
     140                "psMetadataItemTransfer failed with valid inputs.\n");
     141        return 7;
     142    }
     143    item = psMetadataGet(out, PS_LIST_HEAD);
     144    if (item->data.S32 != 666 || strncmp(item->comment, "no Comment", 20)) {
     145        psError(PS_ERR_BAD_PARAMETER_VALUE, true,
     146                "psMetadataItemTransfer failed to correctly transfer item data.\n");
     147        return 8;
     148    }
     149
    119150    psFree(out);
    120     /*    //attempt to transfer using a NULL key.
    121         psLogMsg(__func__,PS_LOG_INFO,"Following should generate error message");
    122         if (psMetadataItemTransfer(mdNULL, md, NULL)) {
    123             psError(PS_ERR_BAD_PARAMETER_VALUE, true,
    124                     "psMetadataItemTransfer failed to return false for NULL key input.\n");
    125             return 2;
    126         }
    127         if (mdNULL != NULL) printf("\nERROR HERE\n");
    128         //attempt to transfer using an allocated metadata and valid key
    129         if (!psMetadataItemTransfer(md2, md, "metaITEM") ){
    130             psError(PS_ERR_BAD_PARAMETER_VALUE, true,
    131                     "psMetadataItemTransfer failed to correctly transfer item.\n");
    132             return 3;
    133         }
    134     */
    135     //    item2 = psMetadataGet(md2, PS_LIST_HEAD);
    136     /*    item2 = psMetadataLookup(md2, "metaITEM");
    137         if (item2->data.S32 != 666 || strncmp(item2->comment, "no Comment", 20)) {
    138             psError(PS_ERR_BAD_PARAMETER_VALUE, true,
    139                     "psMetadataItemTransfer failed to correctly transfer item data.\n");
    140             return 4;
    141         }
    142       */
    143151    psFree(md);
    144     //    psFree(md2);
    145     //    psFree(item);
    146     //    psFree(item2);
    147     //    psFree(mdNULL);
    148152
    149153    return 0;
  • trunk/psLib/test/types/verified/tst_psMetadata_01.stderr

    r7377 r7937  
    1414/***************************** TESTPOINT ******************************************\
    1515*             TestFile: tst_psMetadata_01.c                                        *
     16*            TestPoint: psMetadata_01{psMetadataItemTransfer()}                    *
     17*             TestType: Positive                                                   *
     18\**********************************************************************************/
     19
     20<DATE><TIME>|<HOST>|I|testMetadataItemTransfer
     21    Following should generate error message
     22<DATE><TIME>|<HOST>|E|psMetadataItemTransfer (FILE:LINENO)
     23    psMetadataItemTransfer:  'out' cannot be NULL.
     24<DATE><TIME>|<HOST>|I|testMetadataItemTransfer
     25    Following should generate error message
     26<DATE><TIME>|<HOST>|E|psMetadataItemTransfer (FILE:LINENO)
     27    psMetadataItemTransfer:  'key' cannot be NULL.
     28<DATE><TIME>|<HOST>|I|testMetadataItemTransfer
     29    Following should generate error message
     30<DATE><TIME>|<HOST>|E|psMetadataItemTransfer (FILE:LINENO)
     31    psMetadataItemTransfer:  'in' cannot be NULL.
     32<DATE><TIME>|<HOST>|I|testMetadataItemTransfer
     33    Following should generate error message
     34<DATE><TIME>|<HOST>|E|psMetadataItemTransfer (FILE:LINENO)
     35    psMetadataItemTransfer:  Could not find 'key' in psMetadata 'in'.
     36
     37---> TESTPOINT PASSED (psMetadata_01{psMetadataItemTransfer()} | tst_psMetadata_01.c)
     38
     39/***************************** TESTPOINT ******************************************\
     40*             TestFile: tst_psMetadata_01.c                                        *
    1641*            TestPoint: psMetadata_01{psMetadataPrint}                             *
    1742*             TestType: Positive                                                   *
Note: See TracChangeset for help on using the changeset viewer.