IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Nov 17, 2005, 3:51:03 PM (21 years ago)
Author:
drobbin
Message:

Added fxn psMetadataCopy and test

Location:
trunk/psLib/test/types
Files:
1 added
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/psLib/test/types/tst_psMetadata_07.c

    r5519 r5539  
    1111*     Test F - psMetadataRemoveKey, RemoveIndex
    1212*     Test G - psMetadataAddPtr, psMetadataItemAllocPtr
     13*     Test H - psMetadataCopy
     14*     Test I - psArgument Functions
    1315*
    1416*  @author  David Robbins, MHPCC
    1517*
    16 *  @version $Revision: 1.14 $  $Name: not supported by cvs2svn $
    17 *  @date  $Date: 2005-11-15 22:20:17 $
     18*  @version $Revision: 1.15 $  $Name: not supported by cvs2svn $
     19*  @date  $Date: 2005-11-18 01:51:03 $
    1820*
    1921*  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    2931static psS32 testMetaRemove(void);
    3032static psS32 testMetaAddPtr(void);
     33static psS32 testMetaCopy(void);
    3134static psS32 testArgument(void);
    3235
     
    3639                              {testMetaRemove, 0, "Test psMetadataRemoveKey/Index", 0, false},
    3740                              {testMetaAddPtr, 0, "Test psMetadataAddPtr", 0, false},
     41                              {testMetaCopy, 0, "Test psMetadataCopy", 0, false},
    3842                              {testArgument, 0, "Test psArgument fxns", 0, false},
    3943                              {NULL}
     
    225229}
    226230
     231psS32 testMetaCopy(void)
     232{
     233    psMetadata *test = NULL;
     234    psMetadata *empty = NULL;
     235    psMetadata *md = setupMeta();
     236
     237
     238    //Return NULL for NULL input Metadata
     239    test = psMetadataCopy(test, empty);
     240
     241    //Return a copy in of md in test
     242    test = psMetadataCopy(test, md);
     243    //Check if contents are the same
     244    psMetadataItem *testItem = NULL;
     245    psMetadataItem *mdItem = NULL;
     246    psMetadataIterator *testIterator = NULL;
     247    psMetadataIterator *mdIterator = NULL;
     248    testIterator = psMetadataIteratorAlloc(test, PS_LIST_HEAD, NULL);
     249    mdIterator = psMetadataIteratorAlloc(md, PS_LIST_HEAD, NULL);
     250    testItem = psMetadataGetAndIncrement(testIterator);
     251    mdItem = psMetadataGetAndIncrement(mdIterator);
     252    while (testItem != NULL || mdItem != NULL ) {
     253        if (testItem != mdItem) {
     254            psError(PS_ERR_BAD_PARAMETER_VALUE, false,
     255                    "Copied psMetadataItem does not match Original.\n");
     256        }
     257        testItem = psMetadataGetAndIncrement(testIterator);
     258        mdItem = psMetadataGetAndIncrement(mdIterator);
     259    }
     260
     261    psFree(testItem);
     262    psFree(mdItem);
     263    psFree(testIterator);
     264    psFree(mdIterator);
     265    psFree(test);
     266    psFree(md);
     267    return 0;
     268}
     269
    227270psS32 testArgument(void)
    228271{
Note: See TracChangeset for help on using the changeset viewer.