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.

Location:
trunk/psLib/test/collections
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/psLib/test/collections/Makefile.am

    r3281 r3381  
    3636TESTS_ENVIRONMENT = perl $(top_srcdir)/test/runTest -verified=$(srcdir)/verified
    3737
     38CLEANFILES = $(TESTS) $(check_DATA)
     39
    3840tests: $(TESTS)
    3941
  • trunk/psLib/test/collections/tst_psMetadataIO.c

    r3341 r3381  
    11/** @file  tst_psMetadataIO.c
    2 *
    3 *  @brief Test driver for psMetadataIO functions
    4 *
    5 *  This test driver contains the following tests for psMetadata:
    6 *    Test A - Read config file with overwrite set true
    7 *    Test B - Read config file with overwrite set false
    8 *    Test C - Read config file without auto-allocation of metadata
    9 *    Test D - Attempt to use null fileName argument
    10 *    Test E - Attempt to open nonexistant file
    11 *    Test F - Free psMetadata
    12 *
    13 *  @author  Ross Harman, MHPCC
    14 *
    15 *  @version $Revision: 1.10 $  $Name: not supported by cvs2svn $
    16 *  @date  $Date: 2005-02-28 23:34:10 $
    17 *
    18 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
    19 *
    20 */
     2 *
     3 *  @brief Test driver for psMetadataIO functions
     4 *
     5 *  This test driver contains the following tests for psMetadata:
     6 *    Test A - Read config file with overwrite set true
     7 *    Test B - Read config file with overwrite set false
     8 *    Test C - Read config file without auto-allocation of metadata
     9 *    Test D - Attempt to use null fileName argument
     10 *    Test E - Attempt to open nonexistant file
     11 *    Test F - Free psMetadata
     12 *
     13 *  @author  Ross Harman, MHPCC
     14 *  @author  Robert DeSonia, MHPCC
     15 *
     16 *  @version $Revision: 1.11 $  $Name: not supported by cvs2svn $
     17 *  @date  $Date: 2005-03-07 20:58:50 $
     18 *
     19 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     20 *
     21 */
    2122
    2223#include <string.h>
     
    6970
    7071    switch (metadataItem->type) {
    71     case PS_META_LIST:
     72    case PS_META_MULTI:
    7273        printf("Key Value: %17c", ' ');
    7374        break;
     
    9293    printf("Key Comment: %s\n", metadataItem->comment);
    9394
    94     if(metadataItem->data.V && metadataItem->type==PS_META_LIST) {
     95    if(metadataItem->data.V && metadataItem->type==PS_META_MULTI) {
    9596        printMetadataList(metadataItem->data.V, "    ");
    9697    }
  • trunk/psLib/test/collections/tst_psMetadata_01.c

    r3341 r3381  
    1818*  @author  Ross Harman, MHPCC
    1919*
    20 *  @version $Revision: 1.21 $  $Name: not supported by cvs2svn $
    21 *  @date  $Date: 2005-02-28 23:34:10 $
     20*  @version $Revision: 1.22 $  $Name: not supported by cvs2svn $
     21*  @date  $Date: 2005-03-07 20:58:50 $
    2222*
    2323*  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    7575
    7676    switch (metadataItem->type) {
    77     case PS_META_LIST:
     77    case PS_META_MULTI:
    7878        printf("Key Value: %17c", ' ');
    7979        break;
     
    9898    printf("Key Comment: %s\n", metadataItem->comment);
    9999
    100     if(metadataItem->data.V && metadataItem->type==PS_META_LIST) {
     100    if(metadataItem->data.V && metadataItem->type==PS_META_MULTI) {
    101101        printMetadataList(metadataItem->data.V, "    ");
    102102    }
  • trunk/psLib/test/collections/tst_psMetadata_02.c

    r3341 r3381  
    11/** @file  tst_psMetadata_02.c
    2 *
    3 *  @brief Test driver for psMetadata functions
    4 *
    5 *  This test driver contains the following tests for psMetadata:
    6 *     Test A - Allocate metadata items
    7 *     Test B - Attempt to create metadata item with null name
    8 *     Test C - Attempt to create metadata item with invalid type
    9 *     Test D - Allocate metadata
    10 *     Test E - Attempt to add metadata item to null metadata
    11 *     Test F - Attempt to add null metadata item to metadata
    12 *     Test G - Free psMetadata
    13 *
    14 *  @author  Ross Harman, MHPCC
    15 *
    16 *  @version $Revision: 1.12 $  $Name: not supported by cvs2svn $
    17 *  @date  $Date: 2005-02-28 23:34:10 $
    18 *
    19 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
    20 *
    21 */
     2 *
     3 *  @brief Test driver for psMetadata functions
     4 *
     5 *  This test driver contains the following tests for psMetadata:
     6 *     Test A - Allocate metadata items
     7 *     Test B - Attempt to create metadata item with null name
     8 *     Test C - Attempt to create metadata item with invalid type
     9 *     Test D - Allocate metadata
     10 *     Test E - Attempt to add metadata item to null metadata
     11 *     Test F - Attempt to add null metadata item to metadata
     12 *     Test G - Free psMetadata
     13 *
     14 *  @author  Ross Harman, MHPCC
     15 *  @author  Robert DeSonia, MHPCC
     16 *
     17 *  @version $Revision: 1.13 $  $Name: not supported by cvs2svn $
     18 *  @date  $Date: 2005-03-07 20:58:50 $
     19 *
     20 *  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     21 *
     22 */
    2223
    2324#include <string.h>
     
    3132
    3233    switch (metadataItem->type) {
    33     case PS_META_LIST:
     34    case PS_META_MULTI:
    3435        printf("Key Value: %17c", ' ');
    3536        break;
     
    110111    printNegativeTestHeader(stdout,"psMetadata", "Test E - Attempt to add metadata item to null metadata",
    111112                            "Null metadata collection not allowed", 0);
    112     psMetadataAddItem(NULL, item1, PS_LIST_HEAD);
     113    psMetadataAddItem(NULL, item1, PS_LIST_HEAD, PS_META_DEFAULT);
    113114    printFooter(stdout, "psMetadata", "Test E - Attempt to add metadata item to null metadata", true);
    114115
     
    117118    printNegativeTestHeader(stdout,"psMetadata", "Test F - Attempt to add null metadata item to metadata",
    118119                            "Null metadata item not allowed", 0);
    119     psMetadataAddItem(metadata, NULL, PS_LIST_HEAD);
     120    psMetadataAddItem(metadata, NULL, PS_LIST_HEAD, PS_META_DEFAULT);
    120121    printFooter(stdout, "psMetadata", "Test F - Attempt to add null metadata item to metadata", true);
    121122
  • trunk/psLib/test/collections/tst_psMetadata_03.c

    r3341 r3381  
    1818*  @author  Ross Harman, MHPCC
    1919*
    20 *  @version $Revision: 1.14 $  $Name: not supported by cvs2svn $
    21 *  @date  $Date: 2005-02-28 23:34:10 $
     20*  @version $Revision: 1.15 $  $Name: not supported by cvs2svn $
     21*  @date  $Date: 2005-03-07 20:58:50 $
    2222*
    2323*  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    3535
    3636    switch (metadataItem->type) {
    37     case PS_META_LIST:
     37    case PS_META_MULTI:
    3838        printf("Key Value: %17c", ' ');
    3939        break;
     
    9090    // Test B - Remove items from metadata by name
    9191    printPositiveTestHeader(stdout, "psMetadata", "Test B - Remove items from metadata by name");
    92     if(!psMetadataAddItem(metadata, item1, PS_LIST_HEAD)) {
     92    if(!psMetadataAddItem(metadata, item1, PS_LIST_HEAD, PS_META_DEFAULT)) {
    9393        psError(PS_ERR_UNKNOWN, true,"psMetadataAddItem did not return true when adding by name.");
    9494        return 10;
     
    111111    // Test C - Remove items from metadata by index
    112112    printPositiveTestHeader(stdout, "psMetadata", "Test C - Remove items from metadata by index");
    113     if ( ! psMetadataAddItem(metadata, item3, PS_LIST_HEAD) ) {
     113    if ( ! psMetadataAddItem(metadata, item3, PS_LIST_HEAD, PS_META_DEFAULT) ) {
    114114        psError(PS_ERR_UNKNOWN, true,"psMetadataAddItem did not return true when adding by index.");
    115115        return 14;
     
    166166    mdTable = errMetadata->table;
    167167    errMetadata->table = NULL;
    168     if ( psMetadataAddItem(errMetadata, item3, PS_LIST_HEAD) ) {
     168    if ( psMetadataAddItem(errMetadata, item3, PS_LIST_HEAD, PS_META_DEFAULT) ) {
    169169        psError(PS_ERR_UNKNOWN, true,"psMetadataAddItem did not return false w/ invalid metadata struct w/o hash table.");
    170170        return 21;
     
    182182    mdList = errMetadata->list;
    183183    errMetadata->list = NULL;
    184     if ( psMetadataAddItem(errMetadata, item3, PS_LIST_HEAD) ) {
     184    if ( psMetadataAddItem(errMetadata, item3, PS_LIST_HEAD, PS_META_DEFAULT) ) {
    185185        psError(PS_ERR_UNKNOWN, true,"psMetadataAddItem did not return false w/ invalid metadata struct w/o link list.");
    186186        return 22;
     
    198198    errName = errItem->name;
    199199    errItem->name = NULL;
    200     if ( psMetadataAddItem(errMetadata, errItem, PS_LIST_HEAD) ) {
     200    if ( psMetadataAddItem(errMetadata, errItem, PS_LIST_HEAD, PS_META_DEFAULT) ) {
    201201        psError(PS_ERR_UNKNOWN, true,"psMetadataAddItem did not return false with item with null name.");
    202202        return 23;
  • trunk/psLib/test/collections/tst_psMetadata_04.c

    r3341 r3381  
    2323*  @author  Ross Harman, MHPCC
    2424*
    25 *  @version $Revision: 1.15 $  $Name: not supported by cvs2svn $
    26 *  @date  $Date: 2005-02-28 23:34:10 $
     25*  @version $Revision: 1.16 $  $Name: not supported by cvs2svn $
     26*  @date  $Date: 2005-03-07 20:58:50 $
    2727*
    2828*  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    4040
    4141    switch (metadataItem->type) {
    42     case PS_META_LIST:
     42    case PS_META_MULTI:
    4343        printf("Key Value: %17c", ' ');
    4444        break;
     
    9595    printMetadataItem(item4);
    9696    printMetadataItem(item5);
    97     psMetadataAddItem(metadata, item1, PS_LIST_HEAD);
    98     psMetadataAddItem(metadata, item2, PS_LIST_HEAD);
    99     psMetadataAddItem(metadata, item3, PS_LIST_HEAD);
    100     psMetadataAddItem(metadata, item4, PS_LIST_HEAD);
    101     psMetadataAddItem(metadata, item5, PS_LIST_HEAD);
    102     psMetadataAddItem(metadata, item6, PS_LIST_HEAD);
     97    psMetadataAddItem(metadata, item1, PS_LIST_HEAD, PS_META_DEFAULT);
     98    psMetadataAddItem(metadata, item2, PS_LIST_HEAD, PS_META_DEFAULT);
     99    psMetadataAddItem(metadata, item3, PS_LIST_HEAD, PS_META_DEFAULT);
     100    psMetadataAddItem(metadata, item4, PS_LIST_HEAD, PS_META_DEFAULT);
     101    psMetadataAddItem(metadata, item5, PS_LIST_HEAD, PS_META_DEFAULT);
     102    psMetadataAddItem(metadata, item6, PS_LIST_HEAD, PS_META_DEFAULT);
    103103    psFree(vec);
    104104    printFooter(stdout, "psMetadata", "Test A - Allocate metadata items", true);
  • trunk/psLib/test/collections/tst_psMetadata_05.c

    r3341 r3381  
    2222*  @author  Ross Harman, MHPCC
    2323*
    24 *  @version $Revision: 1.20 $  $Name: not supported by cvs2svn $
    25 *  @date  $Date: 2005-02-28 23:34:10 $
     24*  @version $Revision: 1.21 $  $Name: not supported by cvs2svn $
     25*  @date  $Date: 2005-03-07 20:58:50 $
    2626*
    2727*  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    3939
    4040    switch (metadataItem->type) {
    41     case PS_META_LIST:
     41    case PS_META_MULTI:
    4242        printf("Key Value: %17c", ' ');
    4343        break;
     
    9292    printMetadataItem(item3);
    9393    printMetadataItem(item4);
    94     psMetadataAddItem(metadata, item1, PS_LIST_HEAD);
    95     psMetadataAddItem(metadata, item2, PS_LIST_HEAD);
    96     psMetadataAddItem(metadata, item3, PS_LIST_HEAD);
    97     psMetadataAddItem(metadata, item4, PS_LIST_HEAD);
     94    psMetadataAddItem(metadata, item1, PS_LIST_HEAD, PS_META_DEFAULT);
     95    psMetadataAddItem(metadata, item2, PS_LIST_HEAD, PS_META_DEFAULT);
     96    psMetadataAddItem(metadata, item3, PS_LIST_HEAD, PS_META_DEFAULT);
     97    psMetadataAddItem(metadata, item4, PS_LIST_HEAD, PS_META_DEFAULT);
    9898    printFooter(stdout, "psMetadata", "Test A - Allocate metadata items", true);
    9999
  • 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.