Changeset 17515
- Timestamp:
- May 4, 2008, 2:09:04 PM (18 years ago)
- Location:
- trunk/psLib
- Files:
-
- 1 deleted
- 35 edited
-
src/math/psPolynomialMetadata.c (modified) (13 diffs)
-
src/types/psArguments.c (modified) (2 diffs)
-
src/types/psList.c (modified) (2 diffs)
-
src/types/psMetadata.c (modified) (11 diffs)
-
src/types/psMetadata.h (modified) (3 diffs)
-
src/types/psMetadataConfig.c (modified) (21 diffs)
-
test/imageops/tap_psImageMap.c (modified) (1 diff)
-
test/imageops/tap_psImageMapFit2.c (modified) (1 diff)
-
test/math/tap_psPolyFit4D.c (modified) (2 diffs)
-
test/math/tap_psPolynomial.c (modified) (5 diffs)
-
test/math/tap_psPolynomialEval1D.c (modified) (5 diffs)
-
test/math/tap_psPolynomialEval2D.c (modified) (5 diffs)
-
test/math/tap_psPolynomialEval3D.c (modified) (5 diffs)
-
test/math/tap_psPolynomialEval4D.c (modified) (5 diffs)
-
test/math/tap_psPolynomialUtils_Derivatives.c (modified) (10 diffs)
-
test/mathtypes/tap_psImage.c (modified) (3 diffs)
-
test/sys/tap_psError.c (modified) (9 diffs)
-
test/sys/tap_psString.c (modified) (3 diffs)
-
test/sys/tap_psTrace.c (modified) (8 diffs)
-
test/tst_template.c (deleted)
-
test/types (modified) (1 prop)
-
test/types/.cvsignore (modified) (1 diff)
-
test/types/tap_psArguments_all.c (modified) (15 diffs)
-
test/types/tap_psBitSet_all.c (modified) (2 diffs)
-
test/types/tap_psHash_all.c (modified) (2 diffs)
-
test/types/tap_psList_all.c (modified) (2 diffs)
-
test/types/tap_psLookupTable_all.c (modified) (8 diffs)
-
test/types/tap_psMetadataConfigFormat.c (modified) (3 diffs)
-
test/types/tap_psMetadataConfigPrint.c (modified) (2 diffs)
-
test/types/tap_psMetadataConfigWrite.c (modified) (1 diff)
-
test/types/tap_psMetadataConfig_input.c (modified) (1 diff)
-
test/types/tap_psMetadataOverlay.c (modified) (8 diffs)
-
test/types/tap_psMetadata_creating.c (modified) (3 diffs)
-
test/types/tap_psMetadata_manip.c (modified) (1 diff)
-
test/types/tap_psMetadata_polynomials.c (modified) (8 diffs)
-
test/types/tap_psPixels_all.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/math/psPolynomialMetadata.c
r15254 r17515 12 12 * @author Ross Harman, MHPCC 13 13 * 14 * @version $Revision: 1. 2$ $Name: not supported by cvs2svn $15 * @date $Date: 200 7-10-09 19:25:45$14 * @version $Revision: 1.3 $ $Name: not supported by cvs2svn $ 15 * @date $Date: 2008-05-05 00:09:04 $ 16 16 * 17 17 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 25 25 #include <stdarg.h> 26 26 #include <string.h> 27 #include <ctype.h> 27 28 28 29 #include "psType.h" … … 90 91 PS_ASSERT_PTR_NON_NULL(md, false); 91 92 PS_ASSERT_PTR_NON_NULL(poly, false); 93 PS_ASSERT_PTR_NON_NULL(format, false); 94 92 95 //XXX: Current implementation only supports ordinary polynomials. 93 96 if (poly->type != PS_POLYNOMIAL_ORD) … … 99 102 va_list argp; 100 103 101 va_start (argp, format); 102 Nbyte = vsnprintf (&tmp, 0, format, argp); 103 va_end (argp); 104 105 if (Nbyte <= 0) 106 return false; 104 // skip past whitespace (output name should not include whitespace) 105 char *fmt = (char *) format; 106 while (isspace(*fmt)) fmt++; 107 108 va_start (argp, format); 109 Nbyte = vsnprintf (&tmp, 0, fmt, argp); 110 va_end (argp); 111 112 if (Nbyte <= 0) return false; 107 113 108 114 va_start (argp, format); 109 115 root = (char *) psAlloc (Nbyte + 1); 110 116 memset (root, 0, Nbyte + 1); 111 vsnprintf (root, Nbyte + 1, f ormat, argp);117 vsnprintf (root, Nbyte + 1, fmt, argp); 112 118 va_end (argp); 113 119 … … 203 209 PS_ASSERT_PTR_NON_NULL(md, false); 204 210 PS_ASSERT_PTR_NON_NULL(poly, false); 211 PS_ASSERT_PTR_NON_NULL(format, false); 205 212 206 213 // XXX Current implementation only supports ordinary polynomials. … … 213 220 va_list argp; 214 221 215 va_start (argp, format); 216 Nbyte = vsnprintf (&tmp, 0, format, argp); 222 // skip past whitespace (output name should not include whitespace) 223 char *fmt = (char *) format; 224 while (isspace(*fmt)) fmt++; 225 226 va_start (argp, format); 227 Nbyte = vsnprintf (&tmp, 0, fmt, argp); 217 228 va_end (argp); 218 229 … … 223 234 root = (char *) psAlloc (Nbyte + 1); 224 235 memset (root, 0, Nbyte + 1); 225 vsnprintf (root, Nbyte + 1, f ormat, argp);236 vsnprintf (root, Nbyte + 1, fmt, argp); 226 237 va_end (argp); 227 238 … … 327 338 PS_ASSERT_PTR_NON_NULL(md, false); 328 339 PS_ASSERT_PTR_NON_NULL(poly, false); 340 PS_ASSERT_PTR_NON_NULL(format, false); 341 329 342 //XXX: Current implementation only supports ordinary polynomials. 330 343 if (poly->type != PS_POLYNOMIAL_ORD) … … 336 349 va_list argp; 337 350 338 va_start (argp, format); 339 Nbyte = vsnprintf (&tmp, 0, format, argp); 351 // skip past whitespace (output name should not include whitespace) 352 char *fmt = (char *) format; 353 while (isspace(*fmt)) fmt++; 354 355 va_start (argp, format); 356 Nbyte = vsnprintf (&tmp, 0, fmt, argp); 340 357 va_end (argp); 341 358 … … 346 363 root = (char *) psAlloc (Nbyte + 1); 347 364 memset (root, 0, Nbyte + 1); 348 vsnprintf (root, Nbyte + 1, f ormat, argp);365 vsnprintf (root, Nbyte + 1, fmt, argp); 349 366 va_end (argp); 350 367 … … 461 478 PS_ASSERT_PTR_NON_NULL(md, false); 462 479 PS_ASSERT_PTR_NON_NULL(poly, false); 480 PS_ASSERT_PTR_NON_NULL(format, false); 481 463 482 //XXX: Current implementation only supports ordinary polynomials. 464 483 if (poly->type != PS_POLYNOMIAL_ORD) … … 470 489 va_list argp; 471 490 472 va_start (argp, format); 473 Nbyte = vsnprintf (&tmp, 0, format, argp); 491 // skip past whitespace (output name should not include whitespace) 492 char *fmt = (char *) format; 493 while (isspace(*fmt)) fmt++; 494 495 va_start (argp, format); 496 Nbyte = vsnprintf (&tmp, 0, fmt, argp); 474 497 va_end (argp); 475 498 … … 480 503 root = (char *) psAlloc (Nbyte + 1); 481 504 memset (root, 0, Nbyte + 1); 482 vsnprintf (root, Nbyte + 1, f ormat, argp);505 vsnprintf (root, Nbyte + 1, fmt, argp); 483 506 va_end (argp); 484 507 -
trunk/psLib/src/types/psArguments.c
r17024 r17515 7 7 * @author David Robbins, MHPCC 8 8 * 9 * @version $Revision: 1.3 4$ $Name: not supported by cvs2svn $10 * @date $Date: 2008-0 3-17 23:54:43$9 * @version $Revision: 1.35 $ $Name: not supported by cvs2svn $ 10 * @date $Date: 2008-05-05 00:09:04 $ 11 11 * 12 12 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 88 88 if ((argnum = psArgumentGet(*argc, argv, "-trace-levels"))) { 89 89 psTracePrintLevels(); 90 // exit(2);91 90 return logLevel; 92 91 } -
trunk/psLib/src/types/psList.c
r17447 r17515 7 7 * @author Joshua Hoblitt, University of Hawaii 8 8 * 9 * @version $Revision: 1.6 8$ $Name: not supported by cvs2svn $10 * @date $Date: 2008-0 4-17 23:43:03$9 * @version $Revision: 1.69 $ $Name: not supported by cvs2svn $ 10 * @date $Date: 2008-05-05 00:09:04 $ 11 11 * 12 12 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 259 259 260 260 if (location != PS_LIST_HEAD && location >= list->n) { 261 psLogMsg(__func__,PS_LOG_ WARN,261 psLogMsg(__func__,PS_LOG_DETAIL, 262 262 "Specified location, %ld, is beyond the end of the list. " 263 263 "Adding data item to tail.", -
trunk/psLib/src/types/psMetadata.c
r16814 r17515 12 12 * @author Ross Harman, MHPCC 13 13 * 14 * @version $Revision: 1.16 8$ $Name: not supported by cvs2svn $15 * @date $Date: 2008-0 3-05 00:57:00$14 * @version $Revision: 1.169 $ $Name: not supported by cvs2svn $ 15 * @date $Date: 2008-05-05 00:09:04 $ 16 16 * 17 17 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 423 423 default: 424 424 // Other kinds of pointers 425 psWarning("Copying a pointer in the metadata item: %s (%x)\n", in->name, in->type); 425 // XXX EAM : why was this a warning?? 426 // psWarning("Copying a pointer in the metadata item: %s (%x)\n", in->name, in->type); 426 427 newItem = p_psMetadataItemAlloc(file, lineno, func, in->name, in->type, in->comment, in->data.V); 427 428 break; … … 495 496 bool result = true; 496 497 498 // we loop over the metadata container by item, not by name. this pushes us directly into 499 // the elements of the MULTI items; we miss the containers. We need to check the 500 // (possible) MULTI containers to see how to set the flags. If we encounter a MULTI which 501 // is requesting REPLACE, then the first item on the input list from that MULTI should be 502 // added with the REPLACE flag turned on; the rest should have the REPLACE flag turned off. 503 // save a list of the MULTI entries which has REPLACE turned off? 504 505 psArray *multiItems = psArrayAllocEmpty (128); 506 497 507 psMetadataIterator *iter = psMetadataIteratorAlloc(in, PS_LIST_HEAD, NULL); 498 508 psMetadataItem *inItem = NULL; 499 509 while ((inItem = psMetadataGetAndIncrement(iter))) { 510 511 // it is not possible to have RESET && UPDATE 512 // is it possible to have !RESET && !UPDATE? 513 // are these mutually exclusive conditions? 514 // input MULTI & RESET : replace an existing MULTI or ITEM of same name 515 // input MULTI & UPDATE : supplement an existing MULTI or ITEM of same name 516 // in both cases the name must exist in 'out' 517 500 518 // Need to look for MULTI, which won't be picked up using the iterator. 501 519 psMetadataItem *multiCheckItem = psMetadataLookup(in, inItem->name); 502 unsigned int flag = PS_META_REPLACE | PS_META_REQUIRE_ENTRY | PS_META_REQUIRE_TYPE; // Flag to indicate MULTI; otherwise, replace 503 if (multiCheckItem->type == PS_DATA_METADATA_MULTI) { 504 psTrace("psLib.types", 10, "MULTI: %s (%s)\n", inItem->name, inItem->comment); 505 flag = PS_META_DUPLICATE_OK | PS_META_REQUIRE_ENTRY | PS_META_REQUIRE_TYPE; 520 521 // default operation for the new metadata item (replace existing entry, require existence & type) 522 unsigned int flag = PS_META_REPLACE | PS_META_REQUIRE_ENTRY | PS_META_REQUIRE_TYPE; 523 524 // for MULTI items, the mode is carried on the multi container 525 if (PS_METADATA_ITEM_GET_TYPE(multiCheckItem) == PS_DATA_METADATA_MULTI) { 526 psTrace("psLib.types", 10, "MULTI: %s (%s)\n", inItem->name, inItem->comment); 527 if (multiCheckItem->type & PS_META_UPDATE_FOLDER) { 528 psTrace("psLib.types", 10, "supplement MULTI with new entries\n"); 529 flag = PS_META_DUPLICATE_OK | PS_META_REQUIRE_ENTRY | PS_META_REQUIRE_TYPE; 530 } else { 531 multiCheckItem->type |= PS_META_UPDATE_FOLDER; 532 // save this multi so we can reset their flags below 533 psArrayAdd (multiItems, 128, multiCheckItem); 534 } 506 535 } 507 536 psTrace("psLib.types", 5, "Copying %s (%s)...\n", inItem->name, inItem->comment); 537 538 // for METADATA folders, do something different? 539 if (PS_METADATA_ITEM_GET_TYPE(inItem) == PS_DATA_METADATA) { 540 if (inItem->type & PS_META_UPDATE_FOLDER) { 541 flag = PS_META_UPDATE_FOLDER | PS_META_REQUIRE_ENTRY | PS_META_REQUIRE_TYPE; 542 } 543 } 508 544 509 545 // Copy the item and add it on. report all errors so we get a listing 510 546 psMetadataItem *newItem = psMetadataItemCopy(inItem); // Copied item 511 547 if (!psMetadataAddItem(out, newItem, PS_LIST_TAIL, flag)) { 512 fprintf (stderr, "Error copying %s\n", inItem->name);548 psError(PS_ERR_UNKNOWN, false, "Error copying %s\n", inItem->name); 513 549 result = false; 514 550 } … … 516 552 } 517 553 psFree(iter); 554 555 // remove the UPDATE_FOLDER flag from the following MULTI items 556 for (int i = 0; i < multiItems->n; i++) { 557 psMetadataItem *item = multiItems->data[i]; 558 item->type &= ~PS_META_UPDATE_FOLDER; 559 } 560 psFree (multiItems); 518 561 519 562 if (!result) { 520 563 psError(PS_ERR_UNKNOWN, false, "failed to update metadata\n"); 521 564 } 565 522 566 return result; 523 567 } … … 599 643 } 600 644 601 645 // XXX is it sensible that item is a 'const' here? 602 646 bool psMetadataAddItem(psMetadata *md, 603 647 const psMetadataItem *item, … … 605 649 psS32 flags) 606 650 { 607 char * key = NULL;608 psHash *mdTable = NULL;609 psList *mdList = NULL;610 psMetadataItem *existingEntry = NULL;611 612 651 PS_ASSERT_METADATA_NON_NULL(md,false); 613 652 PS_ASSERT_METADATA_ITEM_NON_NULL(item,false); 614 653 615 mdTable = md->hash;616 mdList = md->list;617 key = item->name;654 psHash *mdTable = md->hash; 655 psList *mdList = md->list; 656 char *key = item->name; 618 657 619 658 // See if key is already in table 620 existingEntry = (psMetadataItem*)psHashLookup(mdTable, key); 621 659 psMetadataItem *existingEntry = psHashLookup(mdTable, key); 660 661 // this block handles cases for the MULTI items 622 662 if (item->type == PS_DATA_METADATA_MULTI) { 623 663 // the incoming entry is PS_DATA_METADATA_MULTI 624 664 625 //Shouldn't have a second reference to the same MULTI in a single Metadata! 665 // Shouldn't have a second reference to the same MULTI in a single Metadata! 666 // XXX not sure I understand this case 626 667 if (item == existingEntry) { 627 psError(PS_ERR_BAD_PARAMETER_VALUE, true, 628 "Cannot have 2 references to the same MULTI in a single Metadata!"); 668 psError(PS_ERR_BAD_PARAMETER_VALUE, true, "Cannot have 2 references to the same MULTI in a single Metadata!"); 629 669 return false; 630 670 } 631 671 632 // force the hash entry to be PS_DATA_METADATA_MULTI 633 existingEntry = makeMetaMulti(mdTable,key,existingEntry); 672 if (flags & PS_META_REPLACE) { 673 // drop the existing entry or entries 674 psMetadataRemoveKey(md, key); 675 } else { 676 // elevate the existing hash entry to be PS_DATA_METADATA_MULTI 677 existingEntry = makeMetaMulti(mdTable,key,existingEntry); 678 } 634 679 635 680 // add all the items in the incoming entry to metadata … … 647 692 } 648 693 694 // special block for items which are METADATA folders 695 if (existingEntry && (item->type == PS_DATA_METADATA)) { 696 // REPLACE and UPDATE must be mutually exclusive 697 psAssert ((!((flags & PS_META_REPLACE) && (flags & PS_META_UPDATE_FOLDER))), "cannot have both REPLACE and UPDATE"); 698 699 # if (0) 700 // handle the case of replace below 701 if (flags & PS_META_REPLACE) { 702 // drop the existing entry (skip if we are replacing with same pointer) 703 // XXX what if existingEntry is a MULTI? drop all? 704 // XXX this segment does not check for matched types 705 if (item != existingEntry) { 706 psMetadataRemoveKey(md, key); 707 } 708 existingEntry = NULL; 709 } 710 # endif 711 712 if (flags & PS_META_UPDATE_FOLDER) { 713 if (existingEntry->type != PS_DATA_METADATA) { 714 psError(PS_ERR_UNKNOWN, false, "invalid to request UPDATE for metadata which matches another type"); 715 return false; 716 } 717 718 // merge the existing entry : this completes the insert 719 if (!psMetadataCopy ((psMetadata *)existingEntry->data.V, (psMetadata *)item->data.V)) { 720 psError(PS_ERR_UNKNOWN, false, "failed to copy new metadata on existing"); 721 return false; 722 } 723 return true; 724 } 725 } 726 649 727 // how the item is added to the hash depends on prior existence, flags, etc. 728 // XXX i think these cases are overloaded - are all combinations possible? 650 729 if (existingEntry) { // prior existence 651 if (existingEntry->type == PS_DATA_METADATA_MULTI || (flags & PS_META_DUPLICATE_OK)) { 652 // duplicate entries allowed - add another entry. 730 731 // duplicate entries allowed - add another entry. 732 if ((existingEntry->type == PS_DATA_METADATA_MULTI) || (flags & PS_META_DUPLICATE_OK)) { 653 733 654 734 // make sure the existing entry is PS_DATA_METADATA_MULTI 655 735 existingEntry = makeMetaMulti(mdTable,key,existingEntry); 656 736 657 // add to the hash's list of duplicate entries 658 if (!psListAdd(existingEntry->data.list, PS_LIST_TAIL, (psPtr)item) ) { 659 psError(PS_ERR_UNKNOWN, false, 660 _("Failed to add metadata item, %s, to metadata collection list."), 661 key); 737 // add item to the existing hash's list of duplicate entries 738 if (!psListAdd(existingEntry->data.list, PS_LIST_TAIL, (psMetadataItem *) item) ) { 739 psError(PS_ERR_UNKNOWN, false, _("Failed to add metadata item, %s, to metadata collection list."), key); 662 740 return false; 663 741 } 664 } else if (flags & PS_META_REPLACE) { 665 // replace entry instead of creating a duplicate entry. 742 // add to the metadata list of entries 743 if (!psListAdd(mdList, location, (psMetadataItem *) item)) { 744 psError(PS_ERR_UNKNOWN, false, _("Failed to add metadata item, %s, to metadata collection list."), key); 745 return false; 746 } 747 return true; 748 } 749 750 // replace entry instead of creating a duplicate entry. 751 if (flags & PS_META_REPLACE) { 666 752 667 753 if ((flags & PS_META_REQUIRE_TYPE) && (existingEntry->type != item->type)) { … … 673 759 // when you blow away what you're trying to add 674 760 psMetadataRemoveKey(md, key); 675 psHashAdd(mdTable, key, (psPtr)item); 676 } 677 } else { 678 // default is to error on duplicate entry. 679 if (flags & PS_META_NO_REPLACE) { 680 return true; 681 } 682 psError(PS_ERR_BAD_PARAMETER_VALUE, true, 683 _("Duplicate metadata item name: %s is not allowed. " 684 "Use a psMetadataFlags option to allow such action."), item->name); 685 return false; 686 } 687 } else { 688 // OK, this is a new item. 689 if (flags & PS_META_REQUIRE_ENTRY) { 690 psError (PS_ERR_UNKNOWN, true, _("No matching item found for item requiring existing entry (%s)"), 691 key); 692 return false; 693 } 694 695 // Node doesn't exist - Add new metadata item to metadata collection's hash 696 /* The following is unneeded. HashAdd can't return false with non-null inputs. 697 698 if(!psHashAdd(mdTable, key, (psPtr)item)) { 699 psError(PS_ERR_UNKNOWN,false, 700 _("Failed to add metadata item, %s, to items table."),key); 701 return false; 702 } 703 */ 704 psHashAdd(mdTable, key, (psPtr)item); 705 // Create a multi, if required 706 if (flags & PS_META_DUPLICATE_OK) { 707 makeMetaMulti(mdTable,key,(psMetadataItem*)item); // Casting away const! 708 } 709 } 710 711 if(!psListAdd(mdList, location, (psPtr)item)) { 712 psError(PS_ERR_UNKNOWN, false, 713 _("Failed to add metadata item, %s, to metadata collection list."), key); 761 // add to the metadata has of entries 762 if (!psHashAdd(mdTable, key, (psMetadataItem *) item)) { 763 psError(PS_ERR_UNKNOWN, false, _("Failed to add metadata item, %s, to metadata collection list."), key); 764 return false; 765 } 766 // add to the metadata list of entries 767 if (!psListAdd(mdList, location, (psMetadataItem *) item)) { 768 psError(PS_ERR_UNKNOWN, false, _("Failed to add metadata item, %s, to metadata collection list."), key); 769 return false; 770 } 771 return true; 772 } 773 } 774 775 // if specified, keep the existing entry 776 if (flags & PS_META_NO_REPLACE) { 777 return true; 778 } 779 780 // default is to error on duplicate entry. 781 psError(PS_ERR_BAD_PARAMETER_VALUE, true, _("Duplicate metadata item name: %s is not allowed. Use a psMetadataFlags option to allow such action."), item->name); 782 return false; 783 } 784 785 // OK, this is a new item. 786 if (flags & PS_META_REQUIRE_ENTRY) { 787 psError (PS_ERR_UNKNOWN, true, _("No matching item found for item requiring existing entry (%s)"), key); 788 return false; 789 } 790 791 // Node doesn't exist - Add new metadata item to metadata collection's hash 792 psHashAdd(mdTable, key, (psMetadataItem *) item); 793 794 // Create a multi, if requested 795 if (flags & PS_META_DUPLICATE_OK) { 796 makeMetaMulti(mdTable, key, (psMetadataItem *) item); // Casting away const! 797 } 798 799 if (!psListAdd(mdList, location, (psPtr)item)) { 800 psError(PS_ERR_UNKNOWN, false, _("Failed to add metadata item, %s, to metadata collection list."), key); 714 801 return false; 715 802 } … … 1169 1256 *status = false; 1170 1257 } else { 1171 psLogMsg(__func__, PS_LOG_ WARN, "%s isn't of type PS_DATA_META, as expected.\n", key);1258 psLogMsg(__func__, PS_LOG_DETAIL, "%s isn't of type PS_DATA_META, as expected.\n", key); 1172 1259 } 1173 1260 // value = NULL; … … 1204 1291 *status = false; 1205 1292 } else { 1206 psLogMsg(__func__, PS_LOG_ WARN, "%s isn't of type PS_DATA_TIME, as expected.\n", key);1293 psLogMsg(__func__, PS_LOG_DETAIL, "%s isn't of type PS_DATA_TIME, as expected.\n", key); 1207 1294 } 1208 1295 return NULL; … … 1239 1326 *status = false; 1240 1327 } else { 1241 psLogMsg(__func__, PS_LOG_ WARN, "%s isn't of type PS_DATA_STRING, as expected.\n", key);1328 psLogMsg(__func__, PS_LOG_DETAIL, "%s isn't of type PS_DATA_STRING, as expected.\n", key); 1242 1329 } 1243 1330 // value = NULL; -
trunk/psLib/src/types/psMetadata.h
r14452 r17515 9 9 * @author Ross Harman, MHPCC 10 10 * 11 * @version $Revision: 1.10 3$ $Name: not supported by cvs2svn $12 * @date $Date: 200 7-08-09 01:40:08$11 * @version $Revision: 1.104 $ $Name: not supported by cvs2svn $ 12 * @date $Date: 2008-05-05 00:09:04 $ 13 13 * 14 14 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 57 57 */ 58 58 typedef enum { 59 PS_META_DEFAULT = 0, ///< default behaviour (duplicate entry is an error) 60 PS_META_REPLACE = 0x1000000, ///< allow entry to be replaced 61 PS_META_NO_REPLACE = 0x2000000, ///< duplicate entry is silently skipped 62 PS_META_DUPLICATE_OK = 0x4000000, ///< allow duplicate entries 63 PS_META_NULL = 0x8000000, ///< psMetadataItem.data is a NULL value 64 PS_META_REQUIRE_ENTRY = 0x10000000, ///< require pre-existing entry with same name 65 PS_META_REQUIRE_TYPE = 0x20000000 ///< require pre-existing entry to have same type 59 PS_META_DEFAULT = 0, ///< default behaviour (duplicate entry is an error) 60 PS_META_REPLACE = 0x01000000, ///< allow entry to be replaced 61 PS_META_NO_REPLACE = 0x02000000, ///< duplicate entry is silently skipped 62 PS_META_DUPLICATE_OK = 0x04000000, ///< allow duplicate entries 63 PS_META_UPDATE_FOLDER = 0x08000000, ///< for a metadata folder, merge contents with existing md 64 PS_META_NULL = 0x10000000, ///< psMetadataItem.data is a NULL value 65 PS_META_REQUIRE_ENTRY = 0x20000000, ///< require pre-existing entry with same name 66 PS_META_REQUIRE_TYPE = 0x40000000 ///< require pre-existing entry to have same type 66 67 } psMetadataFlags; 67 68 … … 69 70 #define PS_METADATA_TYPE_MASK 0x00FFFFFF 70 71 72 #define PS_METADATA_ITEM_GET_TYPE(MDITEM) (MDITEM->type & PS_METADATA_TYPE_MASK) 71 73 72 74 /** Metadata data structure. -
trunk/psLib/src/types/psMetadataConfig.c
r15505 r17515 11 11 * @author Joshua Hoblitt, University of Hawaii 2006-2007 12 12 * 13 * @version $Revision: 1.14 2$ $Name: not supported by cvs2svn $14 * @date $Date: 200 7-11-08 04:24:01$13 * @version $Revision: 1.143 $ $Name: not supported by cvs2svn $ 14 * @date $Date: 2008-05-05 00:09:04 $ 15 15 * 16 16 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 63 63 /*****************************************************************************/ 64 64 65 static psMetadata *genTypeTemplate(char *linePtr);66 static psMetadata * parseTypeValues(psMetadata* template, char*linePtr)65 static psMetadata *genTypeTemplate(char *linePtr); 66 static psMetadata *parseTypeValues(psMetadata *template, char *linePtr) 67 67 ; 68 static bool parseLine(psArray *levelArray,69 char *linePtr,68 static bool parseLine(psArray *levelArray, 69 char *linePtr, 70 70 bool overwrite, 71 71 bool *notBlank); 72 static bool parseMetadataItem(char * keyName, psArray*levelArray,73 char *linePtr, psMetadataFlags flags);72 static bool parseMetadataItem(char *keyName, psArray *levelArray, 73 char *linePtr, psMetadataFlags flags); 74 74 static psString formatMetadataItem(psMetadataItem *item); 75 75 static psArray *p_psMetadataKeyArray(psMetadata *md); 76 static bool parseGeneric(char *keyName,77 psArray *levelArray,78 char *linePtr,76 static bool parseGeneric(char *keyName, 77 psArray *levelArray, 78 char *linePtr, 79 79 psMetadataFlags flags); 80 static bool parseType(char *keyName,81 psArray *levelArray,82 char *linePtr,80 static bool parseType(char *keyName, 81 psArray *levelArray, 82 char *linePtr, 83 83 psMetadataFlags flags); 84 static bool parseMetadataEnd(char *keyName,85 psArray *levelArray,86 char *linePtr,84 static bool parseMetadataEnd(char *keyName, 85 psArray *levelArray, 86 char *linePtr, 87 87 psMetadataFlags flags); 88 88 … … 92 92 typedef struct 93 93 { 94 psArray *nonUniqueKeyArray; ///< non-unique key names95 psHash *typeTemplates; ///< hash of user type templates96 psMetadata *metadata; ///< metadata container94 psArray * nonUniqueKeyArray; ///< non-unique key names 95 psHash * typeTemplates; ///< hash of user type templates 96 psMetadata *metadata; ///< metadata container 97 97 } 98 98 p_psParseLevelInfo; 99 99 100 static void parseLevelInfoFree(p_psParseLevelInfo *info)100 static void parseLevelInfoFree(p_psParseLevelInfo *info) 101 101 { 102 102 psFree(info->nonUniqueKeyArray); … … 105 105 } 106 106 107 static p_psParseLevelInfo *p_psParseLevelInfoAlloc(void)107 static p_psParseLevelInfo *p_psParseLevelInfoAlloc(void) 108 108 { 109 109 // Allocate memory for parse level info … … 200 200 // Returns cleaned token based on delimiter, but not including delimiter. Also changes the pointer location 201 201 // the beginning of the string. Tokens are newly allocated null terminated strings. 202 static char* getToken(char **inString, 202 // XXX EAM : not sure this API is well-thought-out: 203 // *status must be set to 0 going in. 204 // status is 1 if delimeter is found, but no valid token 205 // returned string is NULL if no valid token is found 206 static char *getToken(char **inString, 203 207 char *delimiter, 204 208 psS32 *status, … … 353 357 354 358 /** Returns parsed vector filled with with data. The input string must be null terminated. */ 355 static psVector *parseVector(char *inString,359 static psVector *parseVector(char *inString, 356 360 psElemType elemType, 357 361 psS32 *status) … … 436 440 /*****************************************************************************/ 437 441 438 bool psMetadataItemPrint(FILE *fd,442 bool psMetadataItemPrint(FILE *fd, 439 443 const char *format, 440 444 const psMetadataItem* item) … … 450 454 451 455 // determining the format type 452 char *fType = strchr(format,'%');456 char *fType = strchr(format,'%'); 453 457 if (fType == NULL) { 454 458 // well, the format contains no reference to the metadataItem's data: … … 459 463 460 464 // skip over any format modifiers 461 const char *formatEnd = format+strlen(format);465 const char *formatEnd = format+strlen(format); 462 466 while ( (fType < formatEnd) && 463 467 (strchr(" +-01234567890.$#, hlL",*(++fType)) != NULL) ) {} … … 549 553 } 550 554 551 static psMetadata * genTypeTemplate(char*linePtr)555 static psMetadata *genTypeTemplate(char *linePtr) 552 556 { 553 557 psMetadata* metadataTemplate = NULL; … … 593 597 594 598 595 static psMetadata * parseTypeValues(psMetadata*template,596 char *linePtr)599 static psMetadata *parseTypeValues(psMetadata *template, 600 char *linePtr) 597 601 { 598 602 psMetadata* md = NULL; … … 660 664 } 661 665 662 bool parseMetadataItem(char *keyName,663 psArray *levelArray,664 char *linePtr,666 bool parseMetadataItem(char *keyName, 667 psArray *levelArray, 668 char *linePtr, 665 669 psMetadataFlags flags) 666 670 { … … 802 806 } 803 807 804 // If type is not MULTI or META then get the value and comment 805 if((mdType != PS_DATA_METADATA_MULTI) && (mdType != PS_DATA_METADATA)) { 808 // If type is MULTI or META then check for the (optional) directives UPDATE or RESET; 809 // otherwise, get the value and comment. 810 // line may have the following forms: 811 // NAME METADATA 812 // NAME METADATA # Comment 813 // NAME METADATA#Comment 814 // NAME METADATA UPDATE # Comment 815 // NAME METADATA RESET # Comment 816 // NAME METADATA UPDATE 817 // NAME METADATA RESET 818 if((mdType == PS_DATA_METADATA_MULTI) || (mdType == PS_DATA_METADATA)) { 819 820 // Get the metadata directive if there is one. 821 status = 0; 822 strValue = getToken (&linePtr, "#", &status, true); 823 824 if (!status && strValue) { 825 // found a directive, what does it say? 826 if (strcasecmp (strValue, "UPDATE") && strcasecmp (strValue, "RESET")) { 827 psError(PS_ERR_IO, true, _("Invalid directive %s for METADATA or MULTI."), strValue); 828 psFree(strType); 829 psFree(strValue); 830 return false; 831 } 832 833 // found a directive, what does it say? 834 if (!strcasecmp (strValue, "UPDATE")) { 835 // this folder or group is merged with an existing one of the same name 836 flags |= PS_META_UPDATE_FOLDER; 837 } 838 if (!strcasecmp (strValue, "RESET")) { 839 // this folder or group replaces an existing one of the same name 840 flags |= PS_META_REPLACE; 841 } 842 psFree(strValue); 843 strValue = NULL; 844 } 845 846 // Not all lines will have comments, so NULL is ok. 847 status = 0; 848 849 // XXX this is a very ugly way of finding from the current position to 850 // the end of the line 851 strComment = getToken(&linePtr, "", &status, true); 852 853 if (status) { 854 psError(PS_ERR_IO, true, _("Error reading metadata line")); 855 psFree(strType); 856 psFree(strComment); 857 return false; 858 } 859 } else { 806 860 // Get the metadata item value if there is one. 807 861 status = 0; … … 833 887 return false; 834 888 } 835 } 889 } 836 890 837 891 #define PARSE_ADD_CASE(NAME, TYPE, PARSEFUNC) \ … … 917 971 // Add key to non-unique array of keys 918 972 // Check for duplicate MULTI lines 973 974 // XXX currently, we only place the name of the MULTI on this list. we thus lose 975 // the associated comment (if any) and the flags (if any) we could probably fix this 976 // behavior by allowing psMetadataAddItem to be passed an empty MULTI, which would 977 // have a null data pointer until an element is added (in other words, treat MULTI 978 // as another type of folder, but without a link of its own on the metadata->list 979 919 980 addStatus = true; 920 981 for(psS32 k=0; k < nonUniqueKeys->n; k++) { … … 986 1047 } 987 1048 988 static bool parseLine(psArray *levelArray,989 char *linePtr,1049 static bool parseLine(psArray *levelArray, 1050 char *linePtr, 990 1051 bool overwrite, 991 1052 bool *notBlank) … … 1053 1114 } 1054 1115 1055 static bool parseGeneric(char *keyName,1056 psArray *levelArray,1057 char *linePtr,1116 static bool parseGeneric(char *keyName, 1117 psArray *levelArray, 1118 char *linePtr, 1058 1119 psMetadataFlags flags) 1059 1120 { … … 1082 1143 } 1083 1144 1084 static bool parseType(char *keyName,1085 psArray *levelArray,1086 char *linePtr,1145 static bool parseType(char *keyName, 1146 psArray *levelArray, 1147 char *linePtr, 1087 1148 psMetadataFlags flags) 1088 1149 { … … 1140 1201 } 1141 1202 1142 static bool parseMetadataEnd(char *keyName,1143 psArray *levelArray,1144 char *linePtr,1203 static bool parseMetadataEnd(char *keyName, 1204 psArray *levelArray, 1205 char *linePtr, 1145 1206 psMetadataFlags flags) 1146 1207 { … … 1166 1227 } 1167 1228 1168 psMetadata * psMetadataConfigRead(psMetadata*md,1229 psMetadata *psMetadataConfigRead(psMetadata *md, 1169 1230 unsigned int *nFail, 1170 1231 const char *filename, … … 1180 1241 psError(PS_ERR_IO, true, _("failed to parse file '%s'"), filename); 1181 1242 psFree(md); 1182 return false; 1243 psFree(file); 1244 return NULL; 1183 1245 } 1184 1246 1185 1247 psFree(file); 1186 1187 1248 return md; 1188 1249 } -
trunk/psLib/test/imageops/tap_psImageMap.c
r14926 r17515 197 197 // XXX this function needs to correct for the mean superpixel position 198 198 // which is sampled... 199 psImageMapGenerate (map, x, y, f, 0.1);199 psImageMapGenerate (map, x, y, f, NULL, 0.1); 200 200 psFree (binning); 201 201 -
trunk/psLib/test/imageops/tap_psImageMapFit2.c
r14926 r17515 141 141 // XXX this function needs to correct for the mean superpixel position 142 142 // which is sampled... 143 psImageMapFit (map, x, y, f, NULL);143 psImageMapFit (map, NULL, 0, x, y, f, NULL); 144 144 psFree (binning); 145 145 -
trunk/psLib/test/math/tap_psPolyFit4D.c
r13337 r17515 166 166 for (int iz = 0; iz < polyOrderZ + 1; iz++) { 167 167 for (int it = 0; it < polyOrderT + 1; it++) { 168 myPoly-> mask[ix][iy][iz][it] = 0xff; // Mask it out168 myPoly->coeffMask[ix][iy][iz][it] = 0xff; // Mask it out 169 169 } 170 170 } … … 173 173 174 174 // Put these back in 175 myPoly-> mask[0][0][0][0] = 0; // A176 myPoly-> mask[1][0][0][0] = 0; // B * x177 myPoly-> mask[0][1][0][0] = 0; // C * y178 myPoly-> mask[0][0][1][0] = 0; // D * z179 myPoly-> mask[0][0][0][1] = 0; // E * t180 myPoly-> mask[1][1][0][0] = 0; // F * xy175 myPoly->coeffMask[0][0][0][0] = 0; // A 176 myPoly->coeffMask[1][0][0][0] = 0; // B * x 177 myPoly->coeffMask[0][1][0][0] = 0; // C * y 178 myPoly->coeffMask[0][0][1][0] = 0; // D * z 179 myPoly->coeffMask[0][0][0][1] = 0; // E * t 180 myPoly->coeffMask[1][1][0][0] = 0; // F * xy 181 181 #endif 182 182 -
trunk/psLib/test/math/tap_psPolynomial.c
r13307 r17515 16 16 * XXX: Compare to FLT_EPSILON 17 17 * 18 * @version $Revision: 1. 4$ $Name: not supported by cvs2svn $19 * @date $Date: 200 7-05-08 06:35:16$18 * @version $Revision: 1.5 $ $Name: not supported by cvs2svn $ 19 * @date $Date: 2008-05-05 00:09:04 $ 20 20 * 21 21 * Copyright 2004-2005 Maui High Performance Computing Center, Univ. of Hawaii … … 61 61 errorFlag = true; 62 62 } 63 if (my1DPoly-> mask[i] != 0) {64 diag("Mask[%d] %d not as expected %d", i, my1DPoly-> mask[i], 0);63 if (my1DPoly->coeffMask[i] != 0) { 64 diag("Mask[%d] %d not as expected %d", i, my1DPoly->coeffMask[i], 0); 65 65 errorFlag = true; 66 66 } … … 135 135 errorFlag = true; 136 136 } 137 if (my2DPoly-> mask[i][j] != 0) {138 diag("Mask[%d][%d] %d not as expected %d", i, j, my2DPoly-> mask[i][j], 0);137 if (my2DPoly->coeffMask[i][j] != 0) { 138 diag("Mask[%d][%d] %d not as expected %d", i, j, my2DPoly->coeffMask[i][j], 0); 139 139 errorFlag = true; 140 140 } … … 214 214 errorFlag = true; 215 215 } 216 if (my3DPoly-> mask[i][j][k] != 0) {216 if (my3DPoly->coeffMask[i][j][k] != 0) { 217 217 diag("Mask[%d][%d][%d] %d not as expected %d", 218 i, j, k, my3DPoly-> mask[i][j][k], 0);218 i, j, k, my3DPoly->coeffMask[i][j][k], 0); 219 219 errorFlag = true; 220 220 } … … 301 301 errorFlag = true; 302 302 } 303 if (my4DPoly-> mask[i][j][k][l] != 0) {303 if (my4DPoly->coeffMask[i][j][k][l] != 0) { 304 304 diag("Mask[%d][%d][%d][%d] %d not as expected %d", 305 i, j, k, l, my4DPoly-> mask[i][j][k][l], 0);305 i, j, k, l, my4DPoly->coeffMask[i][j][k][l], 0); 306 306 errorFlag = true; 307 307 } -
trunk/psLib/test/math/tap_psPolynomialEval1D.c
r13308 r17515 4 4 * ORD and CHEB type polynomials. 5 5 * 6 * @version $Revision: 1. 9$ $Name: not supported by cvs2svn $7 * @date $Date: 200 7-05-08 06:36:51$6 * @version $Revision: 1.10 $ $Name: not supported by cvs2svn $ 7 * @date $Date: 2008-05-05 00:09:04 $ 8 8 * 9 9 * XXX: Probably should test single- and multi-dimensional polynomials in … … 68 68 for(psS32 i = 0; i < TERMS; i++) { 69 69 polyOrd->coeff[i] = poly1DCoeff[i]; 70 polyOrd-> mask[i] = poly1DMask[i];70 polyOrd->coeffMask[i] = poly1DMask[i]; 71 71 } 72 72 … … 97 97 { 98 98 polyCheb->coeff[i] = 1.0; 99 polyCheb-> mask[i] = poly1DMask[i];99 polyCheb->coeffMask[i] = poly1DMask[i]; 100 100 } 101 101 // Evaluate test points and verify results … … 133 133 { 134 134 polyOrd->coeff[i] = poly1DCoeff[i]; 135 polyOrd-> mask[i] = poly1DMask[i];135 polyOrd->coeffMask[i] = poly1DMask[i]; 136 136 } 137 137 … … 199 199 { 200 200 polyCheb->coeff[i] = 1.0; 201 polyCheb-> mask[i] = poly1DMask[i];201 polyCheb->coeffMask[i] = poly1DMask[i]; 202 202 } 203 203 -
trunk/psLib/test/math/tap_psPolynomialEval2D.c
r13308 r17515 4 4 * ORD and CHEB type polynomials. 5 5 * 6 * @version $Revision: 1. 7$ $Name: not supported by cvs2svn $7 * @date $Date: 200 7-05-08 06:36:51$6 * @version $Revision: 1.8 $ $Name: not supported by cvs2svn $ 7 * @date $Date: 2008-05-05 00:09:04 $ 8 8 * 9 9 * Copyright 2004-2005 Maui High Performance Computing Center, Univ. of Hawaii … … 96 96 for(psS32 j = 0; j < TERMS; j++) { 97 97 polyOrd->coeff[i][j] = poly2DCoeff[i][j]; 98 polyOrd-> mask[i][j] = poly2DMask[i][j];98 polyOrd->coeffMask[i][j] = poly2DMask[i][j]; 99 99 } 100 100 } … … 131 131 for(psS32 j = 0; j < TERMS; j++) { 132 132 polyCheb->coeff[i][j] = 1.0; 133 polyCheb-> mask[i][j] = poly2DMask[i][j];133 polyCheb->coeffMask[i][j] = poly2DMask[i][j]; 134 134 } 135 135 } … … 174 174 for(psS32 j = 0; j < TERMS; j++) { 175 175 polyOrd->coeff[i][j] = poly2DCoeff[i][j]; 176 polyOrd-> mask[i][j] = poly2DMask[i][j];176 polyOrd->coeffMask[i][j] = poly2DMask[i][j]; 177 177 } 178 178 } … … 268 268 for(psS32 j = 0; j < TERMS; j++) { 269 269 polyCheb->coeff[i][j] = 1.0; 270 polyCheb-> mask[i][j] = poly2DMask[i][j];270 polyCheb->coeffMask[i][j] = poly2DMask[i][j]; 271 271 } 272 272 } -
trunk/psLib/test/math/tap_psPolynomialEval3D.c
r13308 r17515 4 4 * ORD and CHEB type polynomials. 5 5 * 6 * @version $Revision: 1. 8$ $Name: not supported by cvs2svn $7 * @date $Date: 200 7-05-08 06:36:51$6 * @version $Revision: 1.9 $ $Name: not supported by cvs2svn $ 7 * @date $Date: 2008-05-05 00:09:04 $ 8 8 * 9 9 * Copyright 2004-2005 Maui High Performance Computing Center, Univ. of Hawaii … … 149 149 for(psS32 k = 0; k < TERMS; k++) { 150 150 polyOrd->coeff[i][j][k] = Dpoly3DCoeff[i][j][k]; 151 polyOrd-> mask[i][j][k] = poly3DMask[i][j][k];151 polyOrd->coeffMask[i][j][k] = poly3DMask[i][j][k]; 152 152 } 153 153 } … … 188 188 for(psS32 k = 0; k < TERMS; k++) { 189 189 polyCheb->coeff[i][j][k] = 1.0; 190 polyCheb-> mask[i][j][k] = poly3DMask[i][j][k];190 polyCheb->coeffMask[i][j][k] = poly3DMask[i][j][k]; 191 191 } 192 192 } … … 239 239 for(psS32 k = 0; k < TERMS; k++) { 240 240 polyOrd->coeff[i][j][k] = Dpoly3DCoeff[i][j][k]; 241 polyOrd-> mask[i][j][k] = poly3DMask[i][j][k];241 polyOrd->coeffMask[i][j][k] = poly3DMask[i][j][k]; 242 242 } 243 243 } … … 355 355 for(psS32 k = 0; k < TERMS; k++) { 356 356 polyCheb->coeff[i][j][k] = 1.0; 357 polyCheb-> mask[i][j][k] = poly3DMask[i][j][k];357 polyCheb->coeffMask[i][j][k] = poly3DMask[i][j][k]; 358 358 } 359 359 } -
trunk/psLib/test/math/tap_psPolynomialEval4D.c
r13308 r17515 4 4 * ORD and CHEB type polynomials. 5 5 * 6 * @version $Revision: 1. 6$ $Name: not supported by cvs2svn $7 * @date $Date: 200 7-05-08 06:36:51$6 * @version $Revision: 1.7 $ $Name: not supported by cvs2svn $ 7 * @date $Date: 2008-05-05 00:09:04 $ 8 8 * 9 9 * Copyright 2004-2005 Maui High Performance Computing Center, Univ. of Hawaii … … 389 389 for(psS32 l = 0; l < TERMS; l++) { 390 390 polyOrd->coeff[i][j][k][l] = Dpoly4DCoeff[i][j][k][l]; 391 polyOrd-> mask[i][j][k][l] = poly4DMask[i][j][k][l];391 polyOrd->coeffMask[i][j][k][l] = poly4DMask[i][j][k][l]; 392 392 } 393 393 } … … 428 428 for(psS32 l = 0; l < TERMS; l++) { 429 429 polyCheb->coeff[i][j][k][l] = 1.0; 430 polyCheb-> mask[i][j][k][l] = poly4DMask[i][j][k][l];430 polyCheb->coeffMask[i][j][k][l] = poly4DMask[i][j][k][l]; 431 431 } 432 432 } … … 485 485 for(psS32 l = 0; l < TERMS; l++) { 486 486 polyOrd->coeff[i][j][k][l] = Dpoly4DCoeff[i][j][k][l]; 487 polyOrd-> mask[i][j][k][l] = poly4DMask[i][j][k][l];487 polyOrd->coeffMask[i][j][k][l] = poly4DMask[i][j][k][l]; 488 488 } 489 489 } … … 629 629 for(psS32 l = 0; l < TERMS; l++) { 630 630 polyCheb->coeff[i][j][k][l] = 1.0; 631 polyCheb-> mask[i][j][k][l] = poly4DMask[i][j][k][l];631 polyCheb->coeffMask[i][j][k][l] = poly4DMask[i][j][k][l]; 632 632 } 633 633 } -
trunk/psLib/test/math/tap_psPolynomialUtils_Derivatives.c
r12607 r17515 33 33 34 34 // mask remaining elements 35 poly-> mask[2][1] = 1;36 poly-> mask[1][2] = 1;37 poly-> mask[2][2] = 1;35 poly->coeffMask[2][1] = 1; 36 poly->coeffMask[1][2] = 1; 37 poly->coeffMask[2][2] = 1; 38 38 39 39 psPolynomial2D *dX = psPolynomial2D_dX (NULL, poly); … … 46 46 is_float(dX->coeff[0][1], +4.0, "x^0 y^1 coeff is %f", dX->coeff[0][1]); 47 47 48 ok(!dX-> mask[0][0], "x^0 y^0 coeff is unmasked");49 ok(!dX-> mask[1][0], "x^1 y^0 coeff is unmasked");50 ok(!dX-> mask[0][1], "x^0 y^1 coeff is unmasked");51 52 ok(dX-> mask[1][1], "x^1 y^1 coeff is masked");53 ok(dX-> mask[1][2], "x^1 y^2 coeff is masked");48 ok(!dX->coeffMask[0][0], "x^0 y^0 coeff is unmasked"); 49 ok(!dX->coeffMask[1][0], "x^1 y^0 coeff is unmasked"); 50 ok(!dX->coeffMask[0][1], "x^0 y^1 coeff is unmasked"); 51 52 ok(dX->coeffMask[1][1], "x^1 y^1 coeff is masked"); 53 ok(dX->coeffMask[1][2], "x^1 y^2 coeff is masked"); 54 54 55 55 psFree (dX); … … 81 81 82 82 // mask remaining elements 83 poly-> mask[2][1] = 1;84 poly-> mask[1][2] = 1;85 poly-> mask[2][2] = 1;83 poly->coeffMask[2][1] = 1; 84 poly->coeffMask[1][2] = 1; 85 poly->coeffMask[2][2] = 1; 86 86 87 87 psPolynomial2D *dX = psPolynomial2DAlloc(PS_POLYNOMIAL_ORD, 2, 2); … … 95 95 is_float(dX->coeff[0][1], +4.0, "x^0 y^1 coeff is %f", dX->coeff[0][1]); 96 96 97 ok(!dX-> mask[0][0], "x^0 y^0 coeff is unmasked");98 ok(!dX-> mask[1][0], "x^1 y^0 coeff is unmasked");99 ok(!dX-> mask[0][1], "x^0 y^1 coeff is unmasked");100 101 ok(dX-> mask[1][1], "x^1 y^1 coeff is masked");102 ok(dX-> mask[1][2], "x^1 y^2 coeff is masked");97 ok(!dX->coeffMask[0][0], "x^0 y^0 coeff is unmasked"); 98 ok(!dX->coeffMask[1][0], "x^1 y^0 coeff is unmasked"); 99 ok(!dX->coeffMask[0][1], "x^0 y^1 coeff is unmasked"); 100 101 ok(dX->coeffMask[1][1], "x^1 y^1 coeff is masked"); 102 ok(dX->coeffMask[1][2], "x^1 y^2 coeff is masked"); 103 103 104 104 psFree (dX); … … 130 130 131 131 // mask remaining elements 132 poly-> mask[2][1] = 1;133 poly-> mask[1][2] = 1;134 poly-> mask[2][2] = 1;132 poly->coeffMask[2][1] = 1; 133 poly->coeffMask[1][2] = 1; 134 poly->coeffMask[2][2] = 1; 135 135 136 136 psPolynomial2D *result = psPolynomial2D_dX (poly, poly); … … 163 163 164 164 // mask remaining elements 165 poly-> mask[2][1] = 1;166 poly-> mask[1][2] = 1;167 poly-> mask[2][2] = 1;165 poly->coeffMask[2][1] = 1; 166 poly->coeffMask[1][2] = 1; 167 poly->coeffMask[2][2] = 1; 168 168 169 169 psPolynomial2D *dY = psPolynomial2D_dY (NULL, poly); … … 176 176 is_float(dY->coeff[0][1], -4.0, "x^0 y^1 coeff is %f", dY->coeff[0][1]); 177 177 178 ok(!dY-> mask[0][0], "x^0 y^0 coeff is unmasked");179 ok(!dY-> mask[1][0], "x^1 y^0 coeff is unmasked");180 ok(!dY-> mask[0][1], "x^0 y^1 coeff is unmasked");181 182 ok(dY-> mask[1][1], "x^1 y^1 coeff is masked");183 ok(dY-> mask[1][2], "x^1 y^2 coeff is masked");178 ok(!dY->coeffMask[0][0], "x^0 y^0 coeff is unmasked"); 179 ok(!dY->coeffMask[1][0], "x^1 y^0 coeff is unmasked"); 180 ok(!dY->coeffMask[0][1], "x^0 y^1 coeff is unmasked"); 181 182 ok(dY->coeffMask[1][1], "x^1 y^1 coeff is masked"); 183 ok(dY->coeffMask[1][2], "x^1 y^2 coeff is masked"); 184 184 185 185 psFree (dY); … … 211 211 212 212 // mask remaining elements 213 poly-> mask[2][1] = 1;214 poly-> mask[1][2] = 1;215 poly-> mask[2][2] = 1;213 poly->coeffMask[2][1] = 1; 214 poly->coeffMask[1][2] = 1; 215 poly->coeffMask[2][2] = 1; 216 216 217 217 psPolynomial2D *dY = psPolynomial2DAlloc(PS_POLYNOMIAL_ORD, 2, 2); … … 225 225 is_float(dY->coeff[0][1], -4.0, "x^0 y^1 coeff is %f", dY->coeff[0][1]); 226 226 227 ok(!dY-> mask[0][0], "x^0 y^0 coeff is unmasked");228 ok(!dY-> mask[1][0], "x^1 y^0 coeff is unmasked");229 ok(!dY-> mask[0][1], "x^0 y^1 coeff is unmasked");230 231 ok(dY-> mask[1][1], "x^1 y^1 coeff is masked");232 ok(dY-> mask[1][2], "x^1 y^2 coeff is masked");227 ok(!dY->coeffMask[0][0], "x^0 y^0 coeff is unmasked"); 228 ok(!dY->coeffMask[1][0], "x^1 y^0 coeff is unmasked"); 229 ok(!dY->coeffMask[0][1], "x^0 y^1 coeff is unmasked"); 230 231 ok(dY->coeffMask[1][1], "x^1 y^1 coeff is masked"); 232 ok(dY->coeffMask[1][2], "x^1 y^2 coeff is masked"); 233 233 234 234 psFree (dY); … … 260 260 261 261 // mask remaining elements 262 poly-> mask[2][1] = 1;263 poly-> mask[1][2] = 1;264 poly-> mask[2][2] = 1;262 poly->coeffMask[2][1] = 1; 263 poly->coeffMask[1][2] = 1; 264 poly->coeffMask[2][2] = 1; 265 265 266 266 psPolynomial2D *result = psPolynomial2D_dY (poly, poly); -
trunk/psLib/test/mathtypes/tap_psImage.c
r13043 r17515 6 6 * @author Robert DeSonia, MHPCC 7 7 * 8 * @version $Revision: 1. 7$ $Name: not supported by cvs2svn $9 * @date $Date: 200 7-04-26 22:18:39$8 * @version $Revision: 1.8 $ $Name: not supported by cvs2svn $ 9 * @date $Date: 2008-05-05 00:09:04 $ 10 10 * 11 11 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 17 17 #include <stdlib.h> 18 18 #include "pslib.h" 19 #include "psType.h"20 19 #include "tap.h" 21 20 #include "pstap.h" … … 170 169 // children is freed. 171 170 image = psImageAlloc(100,100,PS_TYPE_F32); 172 psImageSubset(image,( psRegion) {50,0,70,20});173 psImageSubset(image,( psRegion) {70,20,90,40});171 psImageSubset(image,((psRegion) {50,0,70,20})); 172 psImageSubset(image,((psRegion) {70,20,90,40})); 174 173 psFree(image); 175 174 ok(!psMemCheckLeaks(id, NULL, NULL, false), "no memory leaks"); -
trunk/psLib/test/sys/tap_psError.c
r13084 r17515 5 5 * @author Eric Van Alst, MHPCC 6 6 * 7 * @version $Revision: 1. 6$ $Name: not supported by cvs2svn $8 * @date $Date: 200 7-05-01 00:08:52$7 * @version $Revision: 1.7 $ $Name: not supported by cvs2svn $ 8 * @date $Date: 2008-05-05 00:09:04 $ 9 9 * 10 10 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 19 19 #include "pstap.h" 20 20 21 // XXX in this file, several operations are only validated by printing an output to the screen. 22 // we should define an output file and compare the contents of the output file to expectations. 23 // I've commented out these features for now 24 25 # if (0) 21 26 // Function used in testError02 to verify the psErrorStackPrintV function 22 27 static void myErrorStackPrint( … … 32 37 va_end(ap); 33 38 } 34 39 # endif 35 40 36 41 psS32 main( psS32 argc, char* argv[] ) … … 83 88 psErrorCode code=PS_ERR_BAD_PARAMETER_VALUE; 84 89 ok(psError(code, true, "Error code = %d", code) == code, "Failed return value verify."); 85 psErrorStackPrint(stderr,"ERROR STACK PRINT Test1A");90 // psErrorStackPrint(stderr,"ERROR STACK PRINT Test1A"); 86 91 ok(!psMemCheckLeaks(id, NULL, NULL, false), "no memory leaks"); 87 92 } … … 94 99 ok(psError(code+1, true, "Error code = %d", code+1) == code+1, 95 100 "Failed return with empty string."); 96 psErrorStackPrint(stderr,"ERROR STACK PRINT Test1B");101 // psErrorStackPrint(stderr,"ERROR STACK PRINT Test1B"); 97 102 ok(!psMemCheckLeaks(id, NULL, NULL, false), "no memory leaks"); 98 103 } … … 104 109 ok(psError(-1, true, "Error code = %d", -1) == -1, 105 110 "Failed return with undefined code."); 106 psErrorStackPrint(stderr,"ERROR STACK PRINT Test1D");111 // psErrorStackPrint(stderr,"ERROR STACK PRINT Test1D"); 107 112 ok(!psMemCheckLeaks(id, NULL, NULL, false), "no memory leaks"); 108 113 } … … 115 120 ok(psError(code, false, "Error code = %d", code) == code, 116 121 "Failed return with false new arg."); 117 psErrorStackPrint(stderr,"ERROR STACK PRINT Test1E");122 // psErrorStackPrint(stderr,"ERROR STACK PRINT Test1E"); 118 123 ok(!psMemCheckLeaks(id, NULL, NULL, false), "no memory leaks"); 119 124 } … … 124 129 psMemId id = psMemGetId(); 125 130 ok(psError(9, true, "Errno code = %d", 9) == 9, "Error Code" ); 126 psErrorStackPrint(stderr,"ERROR STACK PRINT Test1F");131 // psErrorStackPrint(stderr,"ERROR STACK PRINT Test1F"); 127 132 ok(!psMemCheckLeaks(id, NULL, NULL, false), "no memory leaks"); 128 133 } … … 138 143 ok(psError(code, true, "Error code = %d", code) == code, 139 144 "Failed return value verify."); 140 myErrorStackPrint(stderr,"ERROR STACK PRINT Test%dA",2);145 // myErrorStackPrint(stderr,"ERROR STACK PRINT Test%dA",2); 141 146 ok(!psMemCheckLeaks(id, NULL, NULL, false), "no memory leaks"); 142 147 } -
trunk/psLib/test/sys/tap_psString.c
r13799 r17515 20 20 * @author Eric Van Alst, MHPCC 21 21 * 22 * @version $Revision: 1.1 0$ $Name: not supported by cvs2svn $23 * @date $Date: 200 7-06-13 23:32:11$22 * @version $Revision: 1.11 $ $Name: not supported by cvs2svn $ 23 * @date $Date: 2008-05-05 00:09:04 $ 24 24 * 25 25 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 38 38 psLogSetFormat("HLNM"); 39 39 psLogSetLevel(PS_LOG_INFO); 40 plan_tests(6 8);40 plan_tests(65); 41 41 42 42 … … 455 455 psFree(str); 456 456 457 char charStr[10]; 458 ok(!psMemCheckType(PS_DATA_STRING, charStr), 459 "Input string is a psDataType"); 457 // XXX EAM this function raises an abort since we are trying to test a non-psLib memory block 458 // char charStr[10]; 459 // ok(!psMemCheckType(PS_DATA_STRING, charStr), "Input string is a psDataType"); 460 460 461 ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 461 462 } -
trunk/psLib/test/sys/tap_psTrace.c
r12781 r17515 19 19 plan_tests(54); 20 20 21 # define DEBUG 1 22 # if (DEBUG) 23 FILE *output = fopen ("/dev/null", "w"); 24 int outFD = fileno (output); 25 # else 26 int outFD = 2; 27 # endif 28 21 29 // testTrace00() 22 30 { 23 31 psMemId id = psMemGetId(); 24 32 psS32 lev = 0; 25 (void)psTraceSetDestination( 2);33 (void)psTraceSetDestination(outFD); 26 34 for (int i=0;i<10;i++) { 27 35 (void)psTraceSetLevel(".", i); … … 58 66 { 59 67 psMemId id = psMemGetId(); 60 (void)psTraceSetDestination( 2);68 (void)psTraceSetDestination(outFD); 61 69 (void)psTraceSetLevel(".A.B.C.D.E", 5); 62 70 psTrace(".A.C.D.C",1,"You should not see this"); … … 72 80 psMemId id = psMemGetId(); 73 81 psTraceReset(); 74 (void)psTraceSetDestination( 2);82 (void)psTraceSetDestination(outFD); 75 83 (void)psTraceSetLevel(".A.B", 2); 76 84 (void)psTraceSetLevel(".A.B.C.D.E", 5); … … 97 105 { 98 106 psMemId id = psMemGetId(); 99 (void)psTraceSetDestination( 2);107 (void)psTraceSetDestination(outFD); 100 108 101 109 for (int i=0;i<10;i++) { … … 134 142 for (int nb = 0 ; nb<4;nb++) { 135 143 if (nb == 0) 136 (void)psTraceSetDestination( 1);144 (void)psTraceSetDestination(((outFD == 2) ? 1 : outFD)); 137 145 if (nb == 1) 138 (void)psTraceSetDestination( 2);146 (void)psTraceSetDestination(((outFD == 2) ? 2 : outFD)); 139 147 if (nb == 2) 140 (void)psTraceSetDestination( 0);148 (void)psTraceSetDestination(((outFD == 2) ? 0 : outFD)); 141 149 if (nb == 3) 142 150 (void)psTraceSetDestination(FD); … … 174 182 { 175 183 psMemId id = psMemGetId(); 176 (void)psTraceSetDestination( 2);184 (void)psTraceSetDestination(outFD); 177 185 (void)psTraceSetLevel(".", 9); 178 186 (void)psTraceSetLevel(".a", 8); … … 213 221 { 214 222 psMemId id = psMemGetId(); 215 (void)psTraceSetDestination( 2);223 (void)psTraceSetDestination(outFD); 216 224 (void)psTraceSetLevel(".", 9); 217 225 (void)psTraceSetLevel(".a", 8); … … 287 295 ok(!psMemCheckLeaks(id, NULL, NULL, false), "no memory leaks"); 288 296 } 297 298 # if (DEBUG) 299 close (outFD); 300 # endif 301 289 302 } -
trunk/psLib/test/types
- Property svn:ignore
-
old new 73 73 tap_psPixels_all 74 74 tap_psMetadataUpdate 75 tap_psMetadataOverlay
-
- Property svn:ignore
-
trunk/psLib/test/types/.cvsignore
r12532 r17515 76 76 77 77 tap_psMetadataUpdate 78 tap_psMetadataOverlay -
trunk/psLib/test/types/tap_psArguments_all.c
r12781 r17515 15 15 #include "pstap.h" 16 16 17 // tests which send output to the screen are silent unless DEBUG = 1 18 #define DEBUG 0 19 17 20 int main(void) 18 21 { 19 22 psLogSetFormat("HLNM"); 20 23 psLogSetLevel(PS_LOG_INFO); 21 plan_tests( 28);22 23 // test ArgumentGetParse()24 plan_tests(30); 25 26 // test the failure cases for psArgumentGet, psArgumentRemove 24 27 { 25 28 psMemId id = psMemGetId(); 26 psMetadata *arg = NULL; 27 char *argv[25]; 29 30 // define a simple fake argument list : this is not modified 31 char *argv[5]; 28 32 argv[0] = "./program"; 29 33 argv[1] = "-string"; … … 31 35 argv[3] = "-float"; 32 36 argv[4] = "6.66"; 33 argv[5] = "-double"; 34 argv[6] = "0.666"; 35 argv[7] = "-int"; 36 argv[8] = "8"; 37 argv[9] = "-int"; 38 argv[10] = "16"; 39 argv[11] = "-int"; 40 argv[12] = "32"; 41 argv[13] = "-int"; 42 argv[14] = "64"; 43 argv[15] = "-U8"; 44 argv[16] = "1"; 45 argv[17] = "-U16"; 46 argv[18] = "666"; 47 argv[19] = "-U32"; 48 argv[20] = "666"; 49 argv[21] = "-Bool"; 50 argv[22] = "true"; 51 argv[23] = "-int"; 52 // argv[24] = "32"; 53 argv[24] = "-vvv"; 54 int argc = 25; 55 56 //Try to get an argument's position 37 int argc = 5; 38 39 // Try to get an argument's position 57 40 int i = psArgumentGet(argc, argv, "-float"); 58 41 { … … 61 44 } 62 45 63 // Return 0 for attempting to get from a NULL input argument.46 // Return 0 for attempting to get from a NULL input argument. 64 47 { 65 48 ok( psArgumentGet(argc, NULL, "-float") == 0, … … 67 50 } 68 51 69 // Return 0 for attempting to find a NULL string52 // Return 0 for attempting to find a NULL string 70 53 { 71 54 ok( psArgumentGet(argc, argv, NULL) == 0, … … 73 56 } 74 57 75 // Return 0 for attempting to find an empty string58 // Return 0 for attempting to find an empty string 76 59 { 77 60 ok( psArgumentGet(argc, argv, "") == 0, … … 79 62 } 80 63 81 // Return 0 for attempting to get an argument that doesn't match64 // Return 0 for attempting to get an argument that doesn't match 82 65 { 83 66 ok( psArgumentGet(argc, argv, "-xxx") == 0, … … 85 68 } 86 69 87 // Return false for attempting to remove argnum = 070 // Return false for attempting to remove argnum = 0 88 71 { 89 72 ok( !psArgumentRemove(0, &argc, argv), … … 91 74 } 92 75 93 // Return false for attempting to remove NULL argc76 // Return false for attempting to remove NULL argc 94 77 { 95 78 ok( !psArgumentRemove(0, NULL, argv), … … 97 80 } 98 81 99 // Setup the argument listfor comparison82 // simple argument definitions for comparison 100 83 psMetadata *args = psMetadataAlloc(); 101 84 psMetadataAdd(args, PS_LIST_TAIL, "-string", PS_DATA_STRING, "Test String", "SomeString"); 102 85 psMetadataAdd(args, PS_LIST_TAIL, "-float", PS_DATA_F32, "Test Float", 0.666); 103 86 psMetadataAdd(args, PS_LIST_TAIL, "-double", PS_DATA_F64, "Test Double", 0.666); 104 psMetadata *ints = psMetadataAlloc(); 105 psMetadataAdd(ints, PS_LIST_TAIL, "int1", PS_DATA_S8, "Int1", 8); 106 psMetadataAdd(ints, PS_LIST_TAIL, "int2", PS_DATA_S16, "Int2", 16); 107 psMetadataAdd(ints, PS_LIST_TAIL, "int3", PS_DATA_S32, "Int3", 32); 108 psMetadataAdd(ints, PS_LIST_TAIL, "int4", PS_DATA_S64, "Int4", 64); 109 psMetadataAdd(args, PS_LIST_TAIL, "-int", PS_DATA_METADATA, "Integers", ints); 110 psFree(ints); // Drop reference 111 psMetadataAddS32(args, PS_LIST_TAIL, "-multi", 0, "666", 2); 112 psMetadataAddS32(args, PS_LIST_TAIL, "-multi", PS_META_DUPLICATE_OK, "hello kitty", 1); 113 114 psMetadataAddU8(args, PS_LIST_TAIL, "-U8", 0, "U8", 1); 115 psMetadataAddU16(args, PS_LIST_TAIL, "-U16", 0, "U16", 666); 116 psMetadataAddU32(args, PS_LIST_TAIL, "-U32", 0, "U32", 666); 117 psMetadataAddU64(args, PS_LIST_TAIL, "-U64", 0, "U64", 666); 118 psMetadataAddBool(args, PS_LIST_TAIL, "-Bool", 0, "boolean", true); 119 psMetadataAddBool(args, PS_LIST_TAIL, "-Bool2", 0, "boolean", false); 120 psSphere *sphere = psSphereAlloc(); 121 sphere->r = 6.66; 122 sphere->d = 666.666; 123 psMetadataAddPtr(args, PS_LIST_TAIL, "ptr", PS_DATA_SPHERE, "", sphere); 124 psFree(sphere); 125 126 //psArgumentHelp test 127 //Do nothing for NULL input (exit gracefully) 128 psArgumentHelp(NULL); 129 //Print the Argument help for valid metadata 130 psArgumentHelp(args); 131 132 //psArgumentParse tests 133 //Return false for NULL input arguments 87 88 // psArgumentParse tests 89 // Return false for NULL input arguments 134 90 { 135 91 ok( !psArgumentParse(NULL, &argc, argv), … … 137 93 } 138 94 139 // Return false for NULL input argc95 // Return false for NULL input argc 140 96 { 141 97 ok( !psArgumentParse(args, NULL, argv), … … 143 99 } 144 100 145 // Return false for NULL input argv101 // Return false for NULL input argv 146 102 { 147 103 ok( !psArgumentParse(args, &argc, NULL), … … 149 105 } 150 106 151 // Return false for argc = 0107 // Return false for argc = 0 152 108 { 153 109 int tempc = 0; … … 156 112 } 157 113 158 //Return false for string not found in metadata arguments 159 { 160 ok( !psArgumentParse(args, &argc, argv), 114 // Return false for string not found in metadata arguments 115 { 116 // define a simple fake argument list : this is not modified 117 char *argvBad[5]; 118 argvBad[0] = "./program"; 119 argvBad[1] = "-string"; 120 argvBad[2] = "new"; 121 argvBad[3] = "-test"; 122 argvBad[4] = "6.66"; 123 int argcBad = 5; 124 125 ok( !psArgumentParse(args, &argcBad, argvBad), 161 126 "psArgumentParse: return false for argv containing unspecified input."); 162 127 } 163 128 164 //Return true for valid case 165 { 166 psArgumentRemove(25, &argc, argv); 167 ok( psArgumentParse(args, &argc, argv), 168 "psArgumentParse: return true for valid inputs."); 169 } 170 171 //Return false for inconsistent argc in metadata 172 { 173 psMetadata *tempArg = psMetadataAlloc(); 174 psMetadata *mdtemp = psMetadataAlloc(); 175 psMetadataAdd(mdtemp, PS_LIST_TAIL, "int1", PS_DATA_S8, "Int1", 8); 176 psMetadataAdd(mdtemp, PS_LIST_TAIL, "int2", PS_DATA_S16, "Int2", 16); 177 psMetadataAdd(mdtemp, PS_LIST_TAIL, "int3", PS_DATA_S32, "Int3", 32); 178 psMetadataAdd(tempArg, PS_LIST_TAIL, "-int", PS_DATA_METADATA, "Integers", mdtemp); 179 psFree(mdtemp); 180 int argcc = 2; 181 char *argvv[2]; 182 argvv[0] = "./program"; 183 argvv[1] = "-string"; 184 ok( !psArgumentParse(tempArg, &argcc, argvv), 185 "psArgumentParse: return false for inconsistent argc."); 186 psFree(tempArg); 187 } 188 189 //Return false for argc = 1 190 { 191 int argcc = 2; 192 char *argvv[2]; 193 argvv[0] = "./program"; 194 argvv[1] = "-string"; 195 ok( !psArgumentParse(args, &argcc, argvv), 196 "psArgumentParse: return false for incomplete string syntax."); 197 } 198 199 //Return true for an unfound MULTI match 200 { 201 int argcc = 3; 202 char *argvv[3]; 203 argvv[0] = "./program"; 204 argvv[1] = "-multi"; 205 argvv[2] = "2"; 206 ok( psArgumentParse(args, &argcc, argvv), 207 "psArgumentParse: return true for MULTI."); 208 } 209 210 //Check for Memory leaks 129 // Check for Memory leaks 211 130 { 212 131 psFree(args); 213 psFree(arg);214 132 checkMem(); 215 133 } … … 217 135 } 218 136 219 220 // testArgumentVerbosity()137 // define a valid argument input set and definition set 138 // Return true for valid case 221 139 { 222 140 psMemId id = psMemGetId(); 223 //Return 2 (default) for NULL input argument 224 { 225 int argc = 1; 226 ok( psArgumentVerbosity(&argc, NULL) == 2, 227 "psArgumentVerbosity: return 2 for NULL argument input."); 228 } 229 230 //Return 2 for NULL argc input 231 { 232 char *argv[1]; 233 argv[0] = "./program"; 234 ok( psArgumentVerbosity(NULL, argv) == 2, 235 "psArgumentVerbosity: return 2 for NULL argument input."); 236 } 237 238 //Return 3 for "-v" option 239 { 240 int argc = 2; 241 char *argv[2]; 242 argv[0] = "./program"; 243 argv[1] = "-v"; 244 ok( psArgumentVerbosity(&argc, argv) == 3, 245 "psArgumentVerbosity: return 3 for '-v' argument input."); 246 } 247 248 //Return 4 for "-vv" option 249 { 250 int argc = 2; 251 char *argv[2]; 252 argv[0] = "./program"; 253 argv[1] = "-vv"; 254 ok( psArgumentVerbosity(&argc, argv) == 4, 255 "psArgumentVerbosity: return 4 for '-vv' argument input."); 256 } 257 258 //Return 5 for "-vvv" option 259 { 260 int argc = 2; 261 char *argv[2]; 262 argv[0] = "./program"; 263 argv[1] = "-vvv"; 264 ok( psArgumentVerbosity(&argc, argv) == 5, 265 "psArgumentVerbosity: return 5 for '-vvv' argument input."); 266 } 267 268 //These routines should return 5 since that was the last level set above with -vvv 269 //Return 5 for "-logfmt" option 270 { 271 int argc = 2; 272 char *argv[2]; 273 argv[0] = "./program"; 274 argv[1] = "-logfmt"; 275 int rc = psArgumentVerbosity(&argc, argv); 276 ok(rc == 5, "psArgumentVerbosity: return 5 for '-logfmt' argument input (was %d)", rc); 277 } 278 279 //Return 5 for "-logfmt" option with "H" 280 { 281 int argc = 3; 282 char *argv[3]; 283 argv[0] = "./program"; 284 argv[1] = "-logfmt"; 285 argv[2] = "H"; 286 int rc = psArgumentVerbosity(&argc, argv); 287 ok(rc == 5, "psArgumentVerbosity: return 5 for '-logfmt H' argument inputs (was %d)", rc); 288 } 289 290 //Return 5 for "-trace" option 291 { 292 int argc = 2; 293 char *argv[2]; 294 argv[0] = "./program"; 295 argv[1] = "-trace"; 296 int rc = psArgumentVerbosity(&argc, argv); 297 ok(rc == 5, "psArgumentVerbosity: return 5 for '-trace' argument input (was %d)", rc); 298 } 299 300 //Return 5 for "-trace 1 2" option 301 { 302 int argc = 4; 303 char *argv[4]; 304 argv[0] = "./program"; 305 argv[1] = "-trace"; 306 argv[2] = "1"; 307 argv[3] = "2"; 308 int rc = psArgumentVerbosity(&argc, argv); 309 ok(rc == 5, "psArgumentVerbosity: return 5 for '-trace 1 2' argument inputs (was %d", rc); 310 } 311 312 //Return 5 for "-trace-levels" option 313 { 314 int argc = 2; 315 char *argv[2]; 316 argv[0] = "./program"; 317 argv[1] = "-trace-levels"; 318 int rc = psArgumentVerbosity(&argc, argv); 319 ok(rc == 5, "psArgumentVerbosity: return 5 for '-trace-levels' argument input (was %d)", rc); 320 } 141 142 // define the sample arguments 143 char *argv[20]; 144 argv[0] = "./program"; 145 argv[1] = "-string"; 146 argv[2] = "new"; 147 argv[3] = "-float"; 148 argv[4] = "6.66"; 149 argv[5] = "-double"; 150 argv[6] = "0.666"; 151 argv[7] = "-int"; 152 argv[8] = "8"; 153 argv[9] = "16"; 154 argv[10] = "32"; 155 argv[11] = "64"; 156 argv[12] = "-U8"; 157 argv[13] = "1"; 158 argv[14] = "-U16"; 159 argv[15] = "666"; 160 argv[16] = "-U32"; 161 argv[17] = "666"; 162 argv[18] = "-Bool"; 163 argv[19] = "true"; 164 int argc = 20; 165 166 // setup the argument definition 167 psMetadata *args = psMetadataAlloc(); 168 169 // three simple types 170 psMetadataAdd(args, PS_LIST_TAIL, "-string", PS_DATA_STRING, "Test String", "SomeString"); 171 psMetadataAdd(args, PS_LIST_TAIL, "-float", PS_DATA_F32, "Test Float", 0.666); 172 psMetadataAdd(args, PS_LIST_TAIL, "-double", PS_DATA_F64, "Test Double", 0.666); 173 174 // a multiple argument option : -int 1 2 3 4 175 psMetadata *ints = psMetadataAlloc(); 176 psMetadataAdd(ints, PS_LIST_TAIL, "int1", PS_DATA_S8, "Int1", 8); 177 psMetadataAdd(ints, PS_LIST_TAIL, "int2", PS_DATA_S16, "Int2", 16); 178 psMetadataAdd(ints, PS_LIST_TAIL, "int3", PS_DATA_S32, "Int3", 32); 179 psMetadataAdd(ints, PS_LIST_TAIL, "int4", PS_DATA_S64, "Int4", 64); 180 psMetadataAdd(args, PS_LIST_TAIL, "-int", PS_DATA_METADATA, "Integers", ints); 181 psFree(ints); // Drop reference 182 183 // a multiple option example : -multi 1 -multi 2 184 psMetadataAddS32(args, PS_LIST_TAIL, "-multi", 0, "666", 2); 185 psMetadataAddS32(args, PS_LIST_TAIL, "-multi", PS_META_DUPLICATE_OK, "hello kitty", 1); 186 187 // simple psLib types 188 psMetadataAddU8(args, PS_LIST_TAIL, "-U8", 0, "U8", 1); 189 psMetadataAddU16(args, PS_LIST_TAIL, "-U16", 0, "U16", 666); 190 psMetadataAddU32(args, PS_LIST_TAIL, "-U32", 0, "U32", 666); 191 psMetadataAddU64(args, PS_LIST_TAIL, "-U64", 0, "U64", 666); 192 psMetadataAddBool(args, PS_LIST_TAIL, "-Bool", 0, "boolean", true); 193 194 // attempt to parse the above arguments using the above argument definition 195 ok( psArgumentParse(args, &argc, argv), "psArgumentParse: return true for valid inputs."); 196 197 // Check for Memory leaks 198 psFree(args); 199 checkMem(); 200 321 201 ok(!psMemCheckLeaks(id, NULL, NULL, false), "no memory leaks"); 202 203 } 204 205 // other basic tests 206 { 207 psMemId id = psMemGetId(); 208 209 // Return false for inconsistent argc in metadata 210 { 211 psMetadata *tempArg = psMetadataAlloc(); 212 psMetadata *mdtemp = psMetadataAlloc(); 213 psMetadataAdd(mdtemp, PS_LIST_TAIL, "int1", PS_DATA_S8, "Int1", 8); 214 psMetadataAdd(mdtemp, PS_LIST_TAIL, "int2", PS_DATA_S16, "Int2", 16); 215 psMetadataAdd(mdtemp, PS_LIST_TAIL, "int3", PS_DATA_S32, "Int3", 32); 216 psMetadataAdd(tempArg, PS_LIST_TAIL, "-int", PS_DATA_METADATA, "Integers", mdtemp); 217 psFree(mdtemp); 218 219 int argc = 2; 220 char *argv[2]; 221 argv[0] = "./program"; 222 argv[1] = "-string"; 223 ok( !psArgumentParse(tempArg, &argc, argv), 224 "psArgumentParse: return false for inconsistent argc."); 225 psFree(tempArg); 226 } 227 228 // setup the argument definition 229 psMetadata *args = psMetadataAlloc(); 230 231 // three simple types 232 psMetadataAdd(args, PS_LIST_TAIL, "-string", PS_DATA_STRING, "Test String", "SomeString"); 233 psMetadataAddS32(args, PS_LIST_TAIL, "-multi", 0, "666", 2); 234 psMetadataAddS32(args, PS_LIST_TAIL, "-multi", PS_META_DUPLICATE_OK, "hello kitty", 1); 235 236 // Return false for argc = 1 237 { 238 int argc = 2; 239 char *argv[2]; 240 argv[0] = "./program"; 241 argv[1] = "-string"; 242 ok( !psArgumentParse(args, &argc, argv), 243 "psArgumentParse: return false for incomplete string syntax."); 244 } 245 246 // Return true for an unfound MULTI match 247 { 248 int argc = 3; 249 char *argv[3]; 250 argv[0] = "./program"; 251 argv[1] = "-multi"; 252 argv[2] = "2"; 253 ok( psArgumentParse(args, &argc, argv), 254 "psArgumentParse: return true for MULTI."); 255 } 256 257 // Check for Memory leaks 258 { 259 psFree(args); 260 checkMem(); 261 } 262 ok(!psMemCheckLeaks(id, NULL, NULL, false), "no memory leaks"); 263 } 264 265 // test psArgumentVerbosity() 266 { 267 psMemId id = psMemGetId(); 268 // Return 2 (default) for NULL input argument 269 { 270 int argc = 1; 271 ok( psArgumentVerbosity(&argc, NULL) == 2, 272 "psArgumentVerbosity: return 2 for NULL argument input."); 273 } 274 275 // Return 2 for NULL argc input 276 { 277 char *argv[1]; 278 argv[0] = "./program"; 279 ok( psArgumentVerbosity(NULL, argv) == 2, 280 "psArgumentVerbosity: return 2 for NULL argument input."); 281 } 282 283 // Return 3 for "-v" option 284 { 285 int argc = 2; 286 char *argv[2]; 287 argv[0] = "./program"; 288 argv[1] = "-v"; 289 ok( psArgumentVerbosity(&argc, argv) == 3, 290 "psArgumentVerbosity: return 3 for '-v' argument input."); 291 } 292 293 // Return 4 for "-vv" option 294 { 295 int argc = 2; 296 char *argv[2]; 297 argv[0] = "./program"; 298 argv[1] = "-vv"; 299 ok( psArgumentVerbosity(&argc, argv) == 4, 300 "psArgumentVerbosity: return 4 for '-vv' argument input."); 301 } 302 303 // Return 5 for "-vvv" option 304 { 305 int argc = 2; 306 char *argv[2]; 307 argv[0] = "./program"; 308 argv[1] = "-vvv"; 309 ok( psArgumentVerbosity(&argc, argv) == 5, 310 "psArgumentVerbosity: return 5 for '-vvv' argument input."); 311 } 312 313 // These routines should return 5 since that was the last level set above with -vvv 314 // Return 5 for "-logfmt" option 315 { 316 int argc = 2; 317 char *argv[2]; 318 argv[0] = "./program"; 319 argv[1] = "-logfmt"; 320 int rc = psArgumentVerbosity(&argc, argv); 321 ok(rc == 5, "psArgumentVerbosity: return 5 for '-logfmt' argument input (was %d)", rc); 322 } 323 324 // Return 5 for "-logfmt" option with "H" 325 { 326 int argc = 3; 327 char *argv[3]; 328 argv[0] = "./program"; 329 argv[1] = "-logfmt"; 330 argv[2] = "H"; 331 int rc = psArgumentVerbosity(&argc, argv); 332 ok(rc == 5, "psArgumentVerbosity: return 5 for '-logfmt H' argument inputs (was %d)", rc); 333 } 334 335 // Return 5 for "-trace" option 336 { 337 int argc = 2; 338 char *argv[2]; 339 argv[0] = "./program"; 340 argv[1] = "-trace"; 341 int rc = psArgumentVerbosity(&argc, argv); 342 ok(rc == 5, "psArgumentVerbosity: return 5 for '-trace' argument input (was %d)", rc); 343 } 344 345 // Return 5 for "-trace 1 2" option 346 { 347 int argc = 4; 348 char *argv[4]; 349 argv[0] = "./program"; 350 argv[1] = "-trace"; 351 argv[2] = "1"; 352 argv[3] = "2"; 353 // XXX EAM : we are getting unneeded output because of the verbosity set above. 354 int rc = psArgumentVerbosity(&argc, argv); 355 ok(rc == 5, "psArgumentVerbosity: return 5 for '-trace 1 2' argument inputs (was %d", rc); 356 } 357 358 // Return 5 for "-trace-levels" option 359 { 360 // this function sends output to the screen or /dev/null (i 361 # if (!DEBUG) 362 FILE *f = fopen ("/dev/null", "w"); 363 int fd = fileno(f); 364 psTraceSetDestination (fd); 365 # endif 366 367 int argc = 2; 368 char *argv[2]; 369 argv[0] = "./program"; 370 argv[1] = "-trace-levels"; 371 int rc = psArgumentVerbosity(&argc, argv); 372 ok(rc == 5, "psArgumentVerbosity: return 5 for '-trace-levels' argument input (was %d)", rc); 373 } 374 ok(!psMemCheckLeaks(id, NULL, NULL, false), "no memory leaks"); 322 375 } 323 376 } … … 325 378 326 379 /* XXX: Why is this commented out? 327 void testLogTraceArguments(void)328 {329 note(" >>>Test 3: psLogArguments & psTraceArguments Fxns");380 void testLogTraceArguments(void) 381 { 382 note(" >>>Test 3: psLogArguments & psTraceArguments Fxns"); 330 383 331 //Return 2 (default) for NULL arguments input332 {333 int argc = 4;334 ok( psLogArguments(&argc, NULL) == 2,335 "psLogArguments: return 2 for NULL argument input.");336 }337 //Return 2 (default) for NULL argc input338 {339 char *argv[1];340 argv[0] = "./program";341 ok( psLogArguments(NULL, argv) == 2,342 "psLogArguments: return 2 for NULL argc input.");343 }344 //Return 3 for "-v" option345 {346 int argc = 2;347 char *argv[2];348 argv[0] = "./program";349 argv[1] = "-v";350 ok( psLogArguments(&argc, argv) == 3,351 "psLogArguments: return 3 for '-v' argument input.");352 }353 //Return 4 for "-vv" option354 {355 int argc = 2;356 char *argv[2];357 argv[0] = "./program";358 argv[1] = "-vv";359 ok( psLogArguments(&argc, argv) == 4,360 "psLogArguments: return 4 for '-vv' argument input.");361 }362 //Return 5 for "-vvv" option363 {364 int argc = 2;365 char *argv[2];366 argv[0] = "./program";367 argv[1] = "-vvv";368 ok( psLogArguments(&argc, argv) == 5,369 "psLogArguments: return 5 for '-vvv' argument input.");370 }371 //Return 2 for "-logfmt" option372 {373 int argc = 2;374 char *argv[2];375 argv[0] = "./program";376 argv[1] = "-logfmt";377 ok( psLogArguments(&argc, argv) == 2,378 "psLogArguments: return 2 for '-logfmt' argument input.");379 }380 //Return 2 for "-logfmt" option with "H"381 {382 int argc = 3;383 char *argv[3];384 argv[0] = "./program";385 argv[1] = "-logfmt";386 argv[2] = "H";387 ok( psLogArguments(&argc, argv) == 2,388 "psLogArguments: return 2 for '-logfmt H' argument inputs.");389 }384 // Return 2 (default) for NULL arguments input 385 { 386 int argc = 4; 387 ok( psLogArguments(&argc, NULL) == 2, 388 "psLogArguments: return 2 for NULL argument input."); 389 } 390 // Return 2 (default) for NULL argc input 391 { 392 char *argv[1]; 393 argv[0] = "./program"; 394 ok( psLogArguments(NULL, argv) == 2, 395 "psLogArguments: return 2 for NULL argc input."); 396 } 397 // Return 3 for "-v" option 398 { 399 int argc = 2; 400 char *argv[2]; 401 argv[0] = "./program"; 402 argv[1] = "-v"; 403 ok( psLogArguments(&argc, argv) == 3, 404 "psLogArguments: return 3 for '-v' argument input."); 405 } 406 // Return 4 for "-vv" option 407 { 408 int argc = 2; 409 char *argv[2]; 410 argv[0] = "./program"; 411 argv[1] = "-vv"; 412 ok( psLogArguments(&argc, argv) == 4, 413 "psLogArguments: return 4 for '-vv' argument input."); 414 } 415 // Return 5 for "-vvv" option 416 { 417 int argc = 2; 418 char *argv[2]; 419 argv[0] = "./program"; 420 argv[1] = "-vvv"; 421 ok( psLogArguments(&argc, argv) == 5, 422 "psLogArguments: return 5 for '-vvv' argument input."); 423 } 424 // Return 2 for "-logfmt" option 425 { 426 int argc = 2; 427 char *argv[2]; 428 argv[0] = "./program"; 429 argv[1] = "-logfmt"; 430 ok( psLogArguments(&argc, argv) == 2, 431 "psLogArguments: return 2 for '-logfmt' argument input."); 432 } 433 // Return 2 for "-logfmt" option with "H" 434 { 435 int argc = 3; 436 char *argv[3]; 437 argv[0] = "./program"; 438 argv[1] = "-logfmt"; 439 argv[2] = "H"; 440 ok( psLogArguments(&argc, argv) == 2, 441 "psLogArguments: return 2 for '-logfmt H' argument inputs."); 442 } 390 443 391 444 392 //psTraceArguments Tests393 //Return 0 (default) for NULL arguments input394 {395 int argc = 4;396 ok( psTraceArguments(&argc, NULL) == 0,397 "psTraceArguments: return 0 for NULL argument input.");398 }399 //Return 0 (default) for NULL argc input400 {401 char *argv[1];402 argv[0] = "./program";403 ok( psTraceArguments(NULL, argv) == 0,404 "psTraceArguments: return 0 for NULL argc input.");405 }406 //Return 0 for "-trace" option407 {408 int argc = 2;409 char *argv[2];410 argv[0] = "./program";411 argv[1] = "-trace";412 ok( psTraceArguments(&argc, argv) == 0,413 "psTraceArguments: return 2 for '-trace' argument input.");414 }415 //Return 2 for "-trace 1 2" option416 {417 int argc = 4;418 char *argv[4];419 argv[0] = "./program";420 argv[1] = "-trace";421 argv[2] = "1";422 argv[3] = "2";423 ok( psTraceArguments(&argc, argv) == 1,424 "psTraceArguments: return 2 for '-trace 1 2' argument inputs.");425 }426 //Return 2 for "-trace-levels" option427 {428 int argc = 2;429 char *argv[2];430 argv[0] = "./program";431 argv[1] = "-trace-levels";432 ok( psTraceArguments(&argc, argv) == 0,433 "psTraceArguments: return 2 for '-trace-levels' argument input.");434 }445 // psTraceArguments Tests 446 // Return 0 (default) for NULL arguments input 447 { 448 int argc = 4; 449 ok( psTraceArguments(&argc, NULL) == 0, 450 "psTraceArguments: return 0 for NULL argument input."); 451 } 452 // Return 0 (default) for NULL argc input 453 { 454 char *argv[1]; 455 argv[0] = "./program"; 456 ok( psTraceArguments(NULL, argv) == 0, 457 "psTraceArguments: return 0 for NULL argc input."); 458 } 459 // Return 0 for "-trace" option 460 { 461 int argc = 2; 462 char *argv[2]; 463 argv[0] = "./program"; 464 argv[1] = "-trace"; 465 ok( psTraceArguments(&argc, argv) == 0, 466 "psTraceArguments: return 2 for '-trace' argument input."); 467 } 468 // Return 2 for "-trace 1 2" option 469 { 470 int argc = 4; 471 char *argv[4]; 472 argv[0] = "./program"; 473 argv[1] = "-trace"; 474 argv[2] = "1"; 475 argv[3] = "2"; 476 ok( psTraceArguments(&argc, argv) == 1, 477 "psTraceArguments: return 2 for '-trace 1 2' argument inputs."); 478 } 479 // Return 2 for "-trace-levels" option 480 { 481 int argc = 2; 482 char *argv[2]; 483 argv[0] = "./program"; 484 argv[1] = "-trace-levels"; 485 ok( psTraceArguments(&argc, argv) == 0, 486 "psTraceArguments: return 2 for '-trace-levels' argument input."); 487 } 435 488 436 //Check for Memory leaks437 {438 checkMem();439 }440 }489 // Check for Memory leaks 490 { 491 checkMem(); 492 } 493 } 441 494 */ -
trunk/psLib/test/types/tap_psBitSet_all.c
r12781 r17515 20 20 psLogSetFormat("HLNM"); 21 21 psLogSetLevel(PS_LOG_INFO); 22 plan_tests(3 2);22 plan_tests(31); 23 23 24 24 … … 49 49 } 50 50 //Make sure psMemCheckBitSet works correctly - return false 51 {51 if (0) { 52 52 int j = 2; 53 53 ok( !psMemCheckBitSet(&j), -
trunk/psLib/test/types/tap_psHash_all.c
r10822 r17515 23 23 int main(void) 24 24 { 25 plan_tests(2 5);25 plan_tests(24); 26 26 27 27 note("Tests for psHash Functions"); … … 60 60 } 61 61 //Make sure psMemCheckHash works correctly - return false 62 {62 if (0) { 63 63 int j = 2; 64 64 ok( !psMemCheckHash(&j), -
trunk/psLib/test/types/tap_psList_all.c
r12781 r17515 22 22 psLogSetFormat("HLNM"); 23 23 psLogSetLevel(PS_LOG_INFO); 24 plan_tests(6 2);24 plan_tests(61); 25 25 26 26 // Test 1: psList Creation Fxns"); … … 50 50 } 51 51 //Make sure psMemCheckList works correctly - return false 52 {52 if (0) { 53 53 int j = 2; 54 54 ok( !psMemCheckList(&j), -
trunk/psLib/test/types/tap_psLookupTable_all.c
r12781 r17515 24 24 psLogSetFormat("HLNM"); 25 25 psLogSetLevel(PS_LOG_INFO); 26 plan_tests(3 1);26 plan_tests(32); 27 27 28 28 // Tests for psLookupTable Functions … … 57 57 //Tests for psMemCheckArray 58 58 //Make sure psMemCheckArray works correctly - return false 59 {59 if (0) { 60 60 int j = 2; 61 61 ok( !psMemCheckLookupTable(&j), … … 147 147 " constructed row."); 148 148 } 149 //Attempt to read with valid inputs 150 { 151 outVec = psVectorsReadFromFile("types/table.dat", 152 "\%f \%d \%d \%ld \%d \%d \%d \%ld \%*d \%lf"); 153 ok( outVec != NULL && outVec->n == 9 && 154 ((psVector*)(outVec->data[6]))->data.S32[1] == -8, 155 "psVectorsReadFromFile: return correct array for valid format input."); 149 // Attempt to read with valid inputs 150 { 151 outVec = psVectorsReadFromFile("table.dat", 152 "\%f \%d \%d \%ld \%d \%d \%d \%ld \%*d \%lf"); 153 ok(outVec, "psVectorsReadFromFile: read vectors from file"); 154 155 skip_start (!outVec, 2, "skipping tests using the invalid null array"); 156 ok(outVec->n == 9, "psVectorsReadFromFile: read correct number of vectors"); 157 158 psVector *tmpVec = outVec->data[6]; 159 ok(tmpVec->data.S32[1] == -8, "psVectorsReadFromFile: selected data element has correct value."); 160 skip_end(); 156 161 } 157 162 … … 182 187 // Attempt to read valid table 183 188 psFree(table1); 184 table1 = psLookupTableAlloc("t ypes/table.dat",189 table1 = psLookupTableAlloc("table.dat", 185 190 "\%f \%d \%d \%ld \%d \%d \%d \%ld \%*d \%lf", 0); 186 191 numRows = psLookupTableRead(table1); … … 199 204 //Attempt to import table with unsorted array column 200 205 psFree(table1); 201 table1 = psLookupTableAlloc("t ypes/table.dat",206 table1 = psLookupTableAlloc("table.dat", 202 207 "\%f \%d \%d \%ld \%d \%d \%d \%ld \%*d \%lf", 0); 203 208 { … … 220 225 psVector *vec = NULL; 221 226 // XXX: Remove the "types" path here 222 table1 = psLookupTableAlloc("t ypes/table.dat",227 table1 = psLookupTableAlloc("table.dat", 223 228 "\%f \%d \%d \%ld \%d \%d \%d \%ld \%*d \%lf", 0); 224 229 psLookupTable *table2 = NULL; 225 230 // XXX: Remove the "types" path here 226 table2 = psLookupTableAlloc("t ypes/table.dat",231 table2 = psLookupTableAlloc("table.dat", 227 232 "\%f \%d \%d \%ld \%d \%d \%d \%ld \%*d \%lf", 0); 228 233 psLookupTableRead(table2); … … 243 248 244 249 ok(table2->values != NULL, "table->values not NULL"); 250 skip_start (!table2->values, 3, "skipping for failed table load"); 245 251 //Return NULL for table with table->values->n == 0 246 252 { … … 267 273 skip_end(); 268 274 } 275 skip_end(); 269 276 270 277 //Remaining tests for psLookupTableInterpolate -
trunk/psLib/test/types/tap_psMetadataConfigFormat.c
r12781 r17515 18 18 psLogSetFormat("HLNM"); 19 19 psLogSetLevel(PS_LOG_INFO); 20 plan_tests(1 6 + 1);20 plan_tests(18); 21 21 22 22 psMetadata *md = NULL; … … 27 27 psMemId id = psMemGetId(); 28 28 out = psMetadataConfigFormat(md); 29 ok( out == NULL, 30 "psMetadataConfigFormat: return NULL for NULL metadata input."); 29 ok( !out, "psMetadataConfigFormat: return NULL for NULL metadata input."); 31 30 ok(!psMemCheckLeaks (id, NULL, NULL, false), "no memory leaks"); 32 31 } … … 37 36 md = psMetadataAlloc(); 38 37 out = psMetadataConfigFormat(md); 39 ok( out == NULL, 40 "psMetadataConfigFormat: return NULL for empty metadata input."); 38 ok( out, "psMetadataConfigFormat: return valid string for empty metadata input."); 39 skip_start (!out, 1, "failed to build valid string"); 40 ok( *out == 0, "psMetadataConfigFormat: return empty string for empty metadata input."); 41 psFree (out); 42 skip_end(); 41 43 } 42 44 -
trunk/psLib/test/types/tap_psMetadataConfigPrint.c
r12781 r17515 35 35 36 36 37 // Return false for empty metadata input37 // Return true for empty metadata input (creates an empty file; is not an error) 38 38 { 39 39 psMemId id = psMemGetId(); … … 41 41 psMetadata *md = psMetadataAlloc(); 42 42 43 ok(!psMetadataConfigPrint(openfile, md), 44 "return false for empty metadata input."); 43 ok(psMetadataConfigPrint(openfile, md), "return true for empty metadata input."); 45 44 46 45 psFree(md); -
trunk/psLib/test/types/tap_psMetadataConfigWrite.c
r12781 r17515 53 53 54 54 55 // Return false for empty metadata input55 // Return true for empty metadata input (creates an empty file) 56 56 { 57 57 psMemId id = psMemGetId(); 58 58 psMetadata *md = psMetadataAlloc(); 59 ok( !psMetadataConfigWrite(md, "mdcfg.wrt"), 60 "return false for empty metadata input."); 59 ok(psMetadataConfigWrite(md, "mdcfg.wrt"), "return false for empty metadata input."); 61 60 psFree(md); 62 61 ok(!psMemCheckLeaks(id, NULL, NULL, false), "no memory leaks"); -
trunk/psLib/test/types/tap_psMetadataConfig_input.c
r12781 r17515 129 129 ok(item->type == PS_DATA_METADATA, "metadataItem type"); 130 130 131 is_str(item->comment, " ", "metadataItem comment");131 is_str(item->comment, "duplicate", "metadataItem comment"); 132 132 skip_end(); 133 133 psFree(md); -
trunk/psLib/test/types/tap_psMetadataOverlay.c
r14008 r17515 13 13 #include "pstap.h" 14 14 15 #define DEBUG 0 16 15 17 int main(void) 16 18 { … … 35 37 36 38 bool status = psMetadataOverlay (out, in); 37 psMetadataPrint (stderr, out, 1);39 if (DEBUG) psMetadataPrint (stderr, out, 1); 38 40 39 41 ok (status, "psMetadataOverlay : overlay two MDs"); … … 65 67 66 68 bool status = psMetadataOverlay (out, in); 67 psMetadataPrint (stderr, out, 1);69 if (DEBUG) psMetadataPrint (stderr, out, 1); 68 70 69 71 ok (status, "psMetadataOverlay : overlay two MDs"); … … 96 98 97 99 bool status = psMetadataOverlay (out, in); 98 psMetadataPrint (stderr, out, 1);100 if (DEBUG) psMetadataPrint (stderr, out, 1); 99 101 100 102 ok (status, "psMetadataOverlay : overlay two MDs"); … … 132 134 133 135 bool status = psMetadataOverlay (out, in); 134 psMetadataPrint (stderr, out, 1);136 if (DEBUG) psMetadataPrint (stderr, out, 1); 135 137 136 138 ok (status, "psMetadataOverlay : overlay two MDs"); … … 183 185 184 186 bool status = psMetadataOverlay (out, in); 185 psMetadataPrint (stderr, out, 1);187 if (DEBUG) psMetadataPrint (stderr, out, 1); 186 188 187 189 ok (status, "psMetadataOverlay : overlay two MDs"); … … 223 225 224 226 bool status = psMetadataOverlay (out, in); 225 psMetadataPrint (stderr, out, 1);227 if (DEBUG) psMetadataPrint (stderr, out, 1); 226 228 227 229 ok (status, "psMetadataOverlay : overlay two MDs"); … … 274 276 275 277 bool status = psMetadataOverlay (out, in); 276 psMetadataPrint (stderr, out, 1);278 if (DEBUG) psMetadataPrint (stderr, out, 1); 277 279 278 280 ok (status, "psMetadataOverlay : overlay two MDs"); -
trunk/psLib/test/types/tap_psMetadata_creating.c
r12781 r17515 22 22 psLogSetFormat("HLNM"); 23 23 psLogSetLevel(PS_LOG_INFO); 24 plan_tests(4 4);24 plan_tests(42); 25 25 // psMetadata & psMetadataItem Creation Functions 26 26 … … 227 227 228 228 //Make sure MemCheckItem worked. Try primitive type. Expect false. 229 { 229 // XXX EAM : disabled 230 if (0) { 230 231 int j = 2; 231 232 ok( !psMemCheckMetadataItem(&j), … … 262 263 } 263 264 //Make sure MemCheck worked. Try primitive type. Expect false. 264 { 265 // XXX EAM : disabled 266 if (0) { 265 267 int j = 2; 266 268 ok( !psMemCheckMetadata(&j), -
trunk/psLib/test/types/tap_psMetadata_manip.c
r12781 r17515 19 19 { 20 20 psLogSetFormat("HLNM"); 21 psLogSetLevel(PS_LOG_ INFO);21 psLogSetLevel(PS_LOG_WARN); 22 22 plan_tests(50); 23 23 // psMetadataLookup, Remove, and Iterator Fxns -
trunk/psLib/test/types/tap_psMetadata_polynomials.c
r14678 r17515 128 128 psPolynomial1D *maskPoly = psPolynomial1DAlloc(PS_POLYNOMIAL_ORD, 0); 129 129 maskPoly->coeff[0] = 6.66; 130 maskPoly-> mask[0] = 1;130 maskPoly->coeffMask[0] = 1; 131 131 psMetadata *newmd = psMetadataAlloc(); 132 132 psPolynomial1DtoMetadata(newmd, maskPoly, "polyMD"); … … 135 135 { 136 136 ok( outPoly->type == PS_POLYNOMIAL_ORD && outPoly->nX == 0 && 137 outPoly-> mask[0] == 1,137 outPoly->coeffMask[0] == 1, 138 138 "psPolynomial1DfromMetadata: return correct polynomial (w/mask) from metadata"); 139 139 } … … 336 336 psPolynomial2D *maskPoly = psPolynomial2DAlloc(PS_POLYNOMIAL_ORD, 0, 0); 337 337 maskPoly->coeff[0][0] = 6.66; 338 maskPoly-> mask[0][0] = 1;338 maskPoly->coeffMask[0][0] = 1; 339 339 psMetadata *newmd = psMetadataAlloc(); 340 340 psPolynomial2DtoMetadata(newmd, maskPoly, "polyMD"); … … 343 343 { 344 344 ok( outPoly->type == PS_POLYNOMIAL_ORD && outPoly->nX == 0 && 345 outPoly->nY == 0 && outPoly-> mask[0][0] == 1,345 outPoly->nY == 0 && outPoly->coeffMask[0][0] == 1, 346 346 "psPolynomial2DfromMetadata: return correct polynomial (w/mask) from metadata"); 347 347 } … … 525 525 psPolynomial3D *maskPoly = psPolynomial3DAlloc(PS_POLYNOMIAL_ORD, 0, 0, 0); 526 526 maskPoly->coeff[0][0][0] = 6.66; 527 maskPoly-> mask[0][0][0] = 1;527 maskPoly->coeffMask[0][0][0] = 1; 528 528 psMetadata *newmd = psMetadataAlloc(); 529 529 psPolynomial3DtoMetadata(newmd, maskPoly, "polyMD"); … … 532 532 { 533 533 ok( outPoly->type == PS_POLYNOMIAL_ORD && outPoly->nX == 0 && outPoly->nY == 0 534 && outPoly->nZ == 0 && outPoly-> mask[0][0][0] == 1,534 && outPoly->nZ == 0 && outPoly->coeffMask[0][0][0] == 1, 535 535 "psPolynomial3DfromMetadata: return correct polynomial (w/mask) from metadata"); 536 536 } … … 746 746 psPolynomial4D *maskPoly = psPolynomial4DAlloc(PS_POLYNOMIAL_ORD, 0, 0, 0, 0); 747 747 maskPoly->coeff[0][0][0][0] = 6.66; 748 maskPoly-> mask[0][0][0][0] = 1;748 maskPoly->coeffMask[0][0][0][0] = 1; 749 749 psMetadata *newmd = psMetadataAlloc(); 750 750 psPolynomial4DtoMetadata(newmd, maskPoly, "polyMD"); … … 753 753 { 754 754 ok( outPoly->type == PS_POLYNOMIAL_ORD && outPoly->nX == 0 && outPoly->nY == 0 755 && outPoly->nZ == 0 && outPoly->nT == 0 && outPoly-> mask[0][0][0][0] == 1,755 && outPoly->nZ == 0 && outPoly->nT == 0 && outPoly->coeffMask[0][0][0][0] == 1, 756 756 "psPolynomial4DfromMetadata: return correct polynomial (w/mask) from metadata"); 757 757 } -
trunk/psLib/test/types/tap_psPixels_all.c
r13128 r17515 21 21 int main(void) 22 22 { 23 plan_tests(4 9);23 plan_tests(48); 24 24 25 25 //Tests for psPixels Functions … … 51 51 } 52 52 //Make sure psMemCheckPixels works correctly - return false 53 { 53 // XXX EAM : disabled -- failing test causes segfault 54 if (0) { 54 55 int j = 2; 55 56 ok(!psMemCheckPixels(&j), … … 392 393 } 393 394 } 394 395
Note:
See TracChangeset
for help on using the changeset viewer.
