Changeset 5539
- Timestamp:
- Nov 17, 2005, 3:51:03 PM (21 years ago)
- Location:
- trunk/psLib
- Files:
-
- 1 added
- 3 edited
-
src/types/psMetadata.c (modified) (2 diffs)
-
src/types/psMetadata.h (modified) (3 diffs)
-
test/types/tst_psMetadata_07.c (modified) (4 diffs)
-
test/types/verified/tst_psMetadata_07.stderr (added)
Legend:
- Unmodified
- Added
- Removed
-
trunk/psLib/src/types/psMetadata.c
r5532 r5539 12 12 * @author Ross Harman, MHPCC 13 13 * 14 * @version $Revision: 1.9 1$ $Name: not supported by cvs2svn $15 * @date $Date: 2005-11-1 7 00:27:14$14 * @version $Revision: 1.92 $ $Name: not supported by cvs2svn $ 15 * @date $Date: 2005-11-18 01:51:03 $ 16 16 * 17 17 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 316 316 } 317 317 318 318 psMetadata *psMetadataCopy(psMetadata *out, 319 const psMetadata *in) 320 { 321 PS_ASSERT_PTR_NON_NULL(in,NULL); 322 if (out == NULL) { 323 out = psMetadataAlloc(); 324 } 325 psMetadataItem *item = NULL; 326 psMetadataIterator *iter = NULL; 327 iter = psMetadataIteratorAlloc(*(psMetadata**)&in, PS_LIST_HEAD, NULL); 328 item = psMetadataGetAndIncrement(iter); 329 while (item != NULL) { 330 psMetadataAddItem(out, item, PS_LIST_TAIL, 0); 331 item = psMetadataGetAndIncrement(iter); 332 } 333 psFree(item); 334 psFree(iter); 335 return out; 336 } 319 337 320 338 bool psMetadataAddItem(psMetadata *md, -
trunk/psLib/src/types/psMetadata.h
r5455 r5539 11 11 * @author Ross Harman, MHPCC 12 12 * 13 * @version $Revision: 1.7 0$ $Name: not supported by cvs2svn $14 * @date $Date: 2005-11- 02 01:07:25$13 * @version $Revision: 1.71 $ $Name: not supported by cvs2svn $ 14 * @date $Date: 2005-11-18 01:51:03 $ 15 15 * 16 16 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 270 270 ); 271 271 272 /** Creates a new copy of all the psMetadataItems in the psMetadata collection, in, and 273 * returns them in out, or creates a new container if out is NULL. 274 * 275 * @return psMetadata*: the copy of the psMetadata container. 276 */ 277 psMetadata *psMetadataCopy( 278 psMetadata *out, ///< output Metadata container for copying. 279 const psMetadata *in ///< Metadata collection to be copied. 280 ); 272 281 273 282 /** Add existing metadata item to metadata collection. … … 279 288 */ 280 289 bool psMetadataAddItem( 281 psMetadata* md, ///< Metadata collection to insert metadat item.290 psMetadata* md, ///< Metadata collection to insert metadata item. 282 291 const psMetadataItem* item, ///< Metadata item to be added. 283 292 int location, ///< Index number, PS_LIST_HEAD, or PS_LIST_TAIL -
trunk/psLib/test/types/tst_psMetadata_07.c
r5519 r5539 11 11 * Test F - psMetadataRemoveKey, RemoveIndex 12 12 * Test G - psMetadataAddPtr, psMetadataItemAllocPtr 13 * Test H - psMetadataCopy 14 * Test I - psArgument Functions 13 15 * 14 16 * @author David Robbins, MHPCC 15 17 * 16 * @version $Revision: 1.1 4$ $Name: not supported by cvs2svn $17 * @date $Date: 2005-11-1 5 22:20:17$18 * @version $Revision: 1.15 $ $Name: not supported by cvs2svn $ 19 * @date $Date: 2005-11-18 01:51:03 $ 18 20 * 19 21 * Copyright 2004-2005 Maui High Performance Computing Center, University of Hawaii … … 29 31 static psS32 testMetaRemove(void); 30 32 static psS32 testMetaAddPtr(void); 33 static psS32 testMetaCopy(void); 31 34 static psS32 testArgument(void); 32 35 … … 36 39 {testMetaRemove, 0, "Test psMetadataRemoveKey/Index", 0, false}, 37 40 {testMetaAddPtr, 0, "Test psMetadataAddPtr", 0, false}, 41 {testMetaCopy, 0, "Test psMetadataCopy", 0, false}, 38 42 {testArgument, 0, "Test psArgument fxns", 0, false}, 39 43 {NULL} … … 225 229 } 226 230 231 psS32 testMetaCopy(void) 232 { 233 psMetadata *test = NULL; 234 psMetadata *empty = NULL; 235 psMetadata *md = setupMeta(); 236 237 238 //Return NULL for NULL input Metadata 239 test = psMetadataCopy(test, empty); 240 241 //Return a copy in of md in test 242 test = psMetadataCopy(test, md); 243 //Check if contents are the same 244 psMetadataItem *testItem = NULL; 245 psMetadataItem *mdItem = NULL; 246 psMetadataIterator *testIterator = NULL; 247 psMetadataIterator *mdIterator = NULL; 248 testIterator = psMetadataIteratorAlloc(test, PS_LIST_HEAD, NULL); 249 mdIterator = psMetadataIteratorAlloc(md, PS_LIST_HEAD, NULL); 250 testItem = psMetadataGetAndIncrement(testIterator); 251 mdItem = psMetadataGetAndIncrement(mdIterator); 252 while (testItem != NULL || mdItem != NULL ) { 253 if (testItem != mdItem) { 254 psError(PS_ERR_BAD_PARAMETER_VALUE, false, 255 "Copied psMetadataItem does not match Original.\n"); 256 } 257 testItem = psMetadataGetAndIncrement(testIterator); 258 mdItem = psMetadataGetAndIncrement(mdIterator); 259 } 260 261 psFree(testItem); 262 psFree(mdItem); 263 psFree(testIterator); 264 psFree(mdIterator); 265 psFree(test); 266 psFree(md); 267 return 0; 268 } 269 227 270 psS32 testArgument(void) 228 271 {
Note:
See TracChangeset
for help on using the changeset viewer.
