IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Jan 25, 2006, 2:46:54 PM (20 years ago)
Author:
drobbin
Message:

Fixed/updated MetadataCopy (bug579) (& tests). Now makes deeper copies of items.

File:
1 edited

Legend:

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

    r6190 r6195  
    1616*  @author  David Robbins, MHPCC
    1717*
    18 *  @version $Revision: 1.18 $  $Name: not supported by cvs2svn $
    19 *  @date  $Date: 2006-01-25 22:18:00 $
     18*  @version $Revision: 1.19 $  $Name: not supported by cvs2svn $
     19*  @date  $Date: 2006-01-26 00:46:54 $
    2020*
    2121*  Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii
     
    291291    psMetadata *md = setupMeta();
    292292
    293 
    294293    //Return NULL for NULL input Metadata
    295294    test = psMetadataCopy(test, empty);
     295    if (test != NULL) {
     296        psError(PS_ERR_BAD_PARAMETER_VALUE, false,
     297                "psMetadataCopy failed to return NULL for NULL input metadata.\n");
     298        psFree(md);
     299        return 1;
     300    }
    296301
    297302    //Return a copy in of md in test
    298     test = psMetadataCopy(test, md);
     303    test = psMetadataCopy(NULL, md);
    299304    //Check if contents are the same
    300305    psMetadataItem *testItem = NULL;
     
    307312    mdItem = psMetadataGetAndIncrement(mdIterator);
    308313    while (testItem != NULL || mdItem != NULL ) {
    309         if (testItem != mdItem) {
    310             psError(PS_ERR_BAD_PARAMETER_VALUE, false,
    311                     "Copied psMetadataItem does not match Original.\n");
    312         }
    313314        testItem = psMetadataGetAndIncrement(testIterator);
    314315        mdItem = psMetadataGetAndIncrement(mdIterator);
    315316    }
     317
     318    if (!psMetadataConfigWrite(md, "MDCopy.in") ) {
     319        psError(PS_ERR_BAD_PARAMETER_VALUE, false,
     320                "psMetadataConfigWrite failed to output original metadata contents.\n");
     321        return 3;
     322    }
     323    if (!psMetadataConfigWrite(test, "MDCopy.out") ) {
     324        psError(PS_ERR_BAD_PARAMETER_VALUE, false,
     325                "psMetadataConfigWrite failed to output copied metadata contents.\n");
     326        return 4;
     327    }
     328    FILE *verified;
     329    FILE *output;
     330    verified = fopen("MDCopy.in", "r");
     331    output = fopen("MDCopy.out", "r");
     332    char buffer1[100];
     333    char buffer2[100];
     334    while ( fscanf(verified, "%s", buffer1) != EOF ) {
     335        if (fscanf(output, "%s", buffer2) == EOF) {
     336            psError(PS_ERR_BAD_PARAMETER_SIZE, false,
     337                    "Copied metadata is smaller than the original.\n");
     338            return 5;
     339        }
     340        if (strncmp(buffer1, buffer2, 100) ) {
     341            psError(PS_ERR_BAD_PARAMETER_VALUE, false,
     342                    "Copied metadata contents do not match original metadata contents.\n");
     343            return 6;
     344        }
     345    }
     346    if (fscanf(output, "%s", buffer2) != EOF) {
     347        psError(PS_ERR_BAD_PARAMETER_SIZE, false,
     348                "Copied metadata is larger than the original.\n");
     349        return 7;
     350    }
     351    fclose(verified);
     352    fclose(output);
     353
    316354
    317355    psFree(testItem);
Note: See TracChangeset for help on using the changeset viewer.