IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Sep 29, 2005, 3:34:45 PM (21 years ago)
Author:
drobbin
Message:

Added function psMetadataItemAllocPtr and test

File:
1 edited

Legend:

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

    r5194 r5203  
    1010*     Test E - psMetadataConfigWrite (also tests psMetadataConfigFormat)
    1111*     Test F - psMetadataRemoveKey, RemoveIndex
     12*     Test G - psMetadataAddPtr, psMetadataItemAllocPtr
    1213*
    1314*  @author  David Robbins, MHPCC
    1415*
    15 *  @version $Revision: 1.9 $  $Name: not supported by cvs2svn $
    16 *  @date  $Date: 2005-09-29 23:30:32 $
     16*  @version $Revision: 1.10 $  $Name: not supported by cvs2svn $
     17*  @date  $Date: 2005-09-30 01:34:45 $
    1718*
    1819*  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    2728static psS32 testMetaWrite(void);
    2829static psS32 testMetaRemove(void);
     30static psS32 testMetaAddPtr(void);
    2931
    3032testDescription tests[] = {
     
    3234                              {testMetaWrite, 0, "Test psMetadataConfigWrite", 0, false},
    3335                              {testMetaRemove, 0, "Test psMetadataRemoveKey/Index", 0, false},
     36                              {testMetaAddPtr, 0, "Test psMetadataAddPtr", 0, false},
    3437                              {NULL}
    3538                          };
     
    156159    return 0;
    157160}
     161
     162psS32 testMetaAddPtr(void)
     163{
     164    bool status;
     165    psVector *vecptr = NULL;
     166    psVector *vecptr2 = NULL;
     167    vecptr = psVectorAlloc(5, PS_TYPE_S32);
     168    vecptr->data.S32[0] = 666;
     169    psMetadata *md = NULL;
     170    md = psMetadataAlloc();
     171    psMetadataItem *item = NULL;
     172    psMetadataItem *item2 = NULL;
     173    item = psMetadataItemAllocPtr("itemptr", PS_DATA_STRING, "", "Devil String");
     174    status = psMetadataAddPtr(md, PS_LIST_HEAD, "vecptr", PS_DATA_VECTOR,
     175                              "this is a vector comment", vecptr);
     176    if (!status) {
     177        psError(PS_ERR_BAD_PARAMETER_VALUE, false,
     178                "Unable to add psPtr (vector) to metadata.\n");
     179        return 1;
     180    }
     181    status = false;
     182    vecptr2 = (psVector*)psMetadataLookupPtr(&status, md, "vecptr");
     183    if (!status) {
     184        psError(PS_ERR_BAD_PARAMETER_VALUE, false,
     185                "Unable to retrieve psPtr (vector) from metadata.\n");
     186        return 2;
     187    }
     188    if (vecptr2->data.S32[0] != 666) {
     189        psError(PS_ERR_BAD_PARAMETER_VALUE, false,
     190                "Failed to retrieve correct psPtr (vector) from metadata.\n");
     191        return 3;
     192    }
     193    status = false;
     194    if (item == NULL) {
     195        psError(PS_ERR_BAD_PARAMETER_VALUE, false,
     196                "Unable to Alloc psPtr (string) metadata item .\n");
     197        return 5;
     198    }
     199    if ( !psMetadataAddItem(md, item, PS_LIST_TAIL, 0) ) {
     200        psError(PS_ERR_BAD_PARAMETER_VALUE, false,
     201                "Unable to add psPtr (string) metadata item to metadata.\n");
     202        return 6;
     203    }
     204    item2 = psMetadataGet(md, PS_LIST_TAIL);
     205    if (item2 == NULL) {
     206        psError(PS_ERR_BAD_PARAMETER_VALUE, false,
     207                "Unable to retrieve psPtr (string) metadata item .\n");
     208        return 7;
     209    }
     210    if ( strncmp((char*)item2->data.V, "Devil String", 20) ) {
     211        psError(PS_ERR_BAD_PARAMETER_VALUE, false,
     212                "Unable to retrieve correct psPtr (string) metadata item .\n");
     213        printf("\n string = %s \n", (char*)item2->data.V);
     214        return 8;
     215    }
     216
     217    psFree(item);
     218    psFree(vecptr);
     219    psFree(md);
     220    return 0;
     221
     222}
Note: See TracChangeset for help on using the changeset viewer.