IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Mar 7, 2005, 10:58:51 AM (21 years ago)
Author:
desonia
Message:

modified psMetadata to use a special psMetadataType to signify duplicate
entries and added a flag to signify that duplicate entries are OK.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/psLib/test/collections/tst_psMetadata_06.c

    r3341 r3381  
    1313*  @author  Ross Harman, MHPCC
    1414*
    15 *  @version $Revision: 1.10 $  $Name: not supported by cvs2svn $
    16 *  @date  $Date: 2005-02-28 23:34:10 $
     15*  @version $Revision: 1.11 $  $Name: not supported by cvs2svn $
     16*  @date  $Date: 2005-03-07 20:58:50 $
    1717*
    1818*  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    3030
    3131    switch (metadataItem->type) {
     32    case PS_META_MULTI:
     33        printf("Key Value: %17c", ' ');
     34        break;
    3235    case PS_META_LIST:
    33         printf("Key Value: %17c", ' ');
     36        printf("Key Value: %15s  ", "psList");
    3437        break;
    3538    case PS_META_BOOL:
     
    7174    item1c = psMetadataItemAlloc("myItem1", PS_META_S32, "I am a signed integer", 222);
    7275    item2a = psMetadataItemAlloc("myItem2", PS_META_S32, "I am a signed integer", 333);
    73     item2b = psMetadataItemAlloc("myItem2", PS_META_LIST, "I am a folder node", NULL);
     76    item2b = psMetadataItemAlloc("myItem2", PS_META_LIST, "I am a list", NULL);
    7477    metadata = psMetadataAlloc();
    7578    printMetadataItem(item1a);
     
    8285
    8386    // Test B - Add leaf node on top of existing leaf node
    84     printPositiveTestHeader(stdout, "psMetadata", "Test B - Add leaf node on top of existing leaf node");
    85     if(!psMetadataAddItem(metadata, item1a, PS_LIST_HEAD)) {
     87    printPositiveTestHeader(stdout, "psMetadata", "Test B - replace an item in the metadata");
     88    if(!psMetadataAddItem(metadata, item1a, PS_LIST_HEAD, PS_META_DEFAULT)) {
    8689        psError(PS_ERR_UNKNOWN, true,"psMetadataAddItem returned false for adding a node top.");
    8790        return 20;
    8891    }
    89     if (!psMetadataAddItem(metadata, item1b, PS_LIST_HEAD)) {
     92    psMetadataItem* tempItem = psMetadataLookup(metadata, item1a->name);
     93    if (tempItem != item1a) {
     94        psError(PS_ERR_UNKNOWN, true,"psMetadataAddItem didn't add the metadata entry.");
     95        return 20;
     96    }
     97
     98    if (!psMetadataAddItem(metadata, item1b, PS_LIST_HEAD, PS_META_REPLACE)) {
    9099        psError(PS_ERR_UNKNOWN, true,"psMetadataAddItem returned false for adding a node top.");
    91100        return 21;
    92101    }
    93102
    94     printFooter(stdout, "psMetadata", "Test B - Add leaf node on top of existing leaf node", true);
     103    tempItem = psMetadataLookup(metadata, item1a->name);
     104    if (tempItem != item1b) {
     105        psError(PS_ERR_UNKNOWN, true,"psMetadataAddItem didn't replace the metadata entry.");
     106        return 21;
     107    }
     108
     109    printFooter(stdout, "psMetadata", "Test B - replace an item in the metadata", true);
    95110
    96111
    97112    // Test C - Add leaf node to existing folder node
    98     printPositiveTestHeader(stdout, "psMetadata", "Test C - Add leaf node to existing folder node");
    99     if (!psMetadataAddItem(metadata, item1c, PS_LIST_HEAD)) {
     113    printPositiveTestHeader(stdout, "psMetadata", "Test C - add duplicate-key metadata item");
     114    if (!psMetadataAddItem(metadata, item1c, PS_LIST_HEAD, PS_META_DUPLICATE_OK)) {
    100115        psError(PS_ERR_UNKNOWN, true,"psMetadataAddItem return false for adding a not to existing node.");
    101116        return 22;
    102117    }
    103     printFooter(stdout, "psMetadata", "Test C - Add leaf node to existing folder node", true);
     118
     119    tempItem = psMetadataLookup(metadata, item1a->name);
     120    if (tempItem == NULL || tempItem->type != PS_META_MULTI) {
     121        psError(PS_ERR_UNKNOWN, true,"psMetadataAddItem didn't add additional metadata entry of same key.");
     122        return 22;
     123    }
     124    printFooter(stdout, "psMetadata", "Test C - add duplicate-key metadata item", true);
    104125
    105126
    106127    // Test D - Add folder node on top of existing leaf node
    107128    printPositiveTestHeader(stdout, "psMetadata", "Test D - Add folder node on top of existing leaf node");
    108     if (!psMetadataAddItem(metadata, item2a, PS_LIST_HEAD)) {
     129    if (!psMetadataAddItem(metadata, item2a, PS_LIST_HEAD, PS_META_DEFAULT)) {
    109130        psError(PS_ERR_UNKNOWN, true,"psMetadataAddItem returned false for adding a node to existing leaf node.");
    110131        return 23;
    111132    }
    112     if (!psMetadataAddItem(metadata, item2b, PS_LIST_HEAD)) {
     133    if (!psMetadataAddItem(metadata, item2b, PS_LIST_HEAD, PS_META_DUPLICATE_OK)) {
    113134        psError(PS_ERR_UNKNOWN, true,"psMetadataAddItem returned false for adding a nod to existing leaf node.");
    114135        return 24;
    115136    }
    116137    printFooter(stdout, "psMetadata", "Test D - Add folder node on top of existing leaf node", true);
     138    tempItem = psMetadataLookup(metadata, item1a->name);
     139    if (tempItem == NULL || tempItem->type != PS_META_MULTI) {
     140        psError(PS_ERR_UNKNOWN, true,"psMetadataAddItem didn't add additional metadata entry of same key.");
     141        return 24;
     142    }
    117143
    118144
Note: See TracChangeset for help on using the changeset viewer.