TEUCHOS_UNIT_TEST( ParameterList, ExistingSublistIsOkay ) { std::string xmlstring( "<ParameterList> \n" " <ParameterList name=\"SubList\">\n" " </ParameterList> \n" "</ParameterList> \n"); RCP<ParameterList> plist = getParametersFromXmlString(xmlstring); updateParametersFromXmlString( xmlstring, plist() ); }
TEUCHOS_UNIT_TEST( ParameterList, XMLDuplicatedSublists ) { ParameterList pl; TEST_THROW( updateParametersFromXmlFile(filename, inOutArg(pl) ), DuplicateParameterSublist ); TEST_THROW( getParametersFromXmlFile(filename), DuplicateParameterSublist ); TEST_THROW( getParametersFromXmlFile(filename,null), DuplicateParameterSublist ); // std::ifstream fin(filename.c_str()); std::string xmlstring( (std::istreambuf_iterator<char>(fin)), std::istreambuf_iterator<char>() ); TEST_THROW( updateParametersFromXmlString(xmlstring,inOutArg(pl) ), DuplicateParameterSublist ); TEST_THROW( getParametersFromXmlString(xmlstring), DuplicateParameterSublist ); TEST_THROW( getParametersFromXmlString(xmlstring,null), DuplicateParameterSublist ); }
signed xmledit (struct node const * node, void * memory, size_t extent) { if (node) { node = node->below; } while (node) { if (node->type == NODE_ELEM) { if (!strcmp (node->text, DATA_MEMBER)) { member = xmlattribute1 (node, DATA_NAME); offset = (unsigned)(-1); length = (unsigned)(-1); series = false; } else if (!strcmp (node->text, DATA_OFFSET)) { string = xmlcontent1 (node); offset = xmlinteger (node, 16); } else if (!strcmp (node->text, DATA_LENGTH)) { string = xmlcontent1 (node); length = xmlinteger (node, 10); } else if (!strcmp (node->text, DATA_STRUCT)) { series = true; } else if (!strcmp (node->text, DATA_STRING)) { string = xmlcontent1 (node); position (extent); xmlstring (memory, extent); } else if (!strcmp (node->text, DATA_MEMORY)) { string = xmlcontent1 (node); position (extent); xmlmemory (memory, extent); } else if (!strcmp (node->text, DATA_HUGE)) { length = sizeof (uint64_t); position (extent); string = xmlcontent1 (node); xmlnumber (memory, extent); } else if (!strcmp (node->text, DATA_LONG)) { length = sizeof (uint32_t); position (extent); string = xmlcontent1 (node); xmlnumber (memory, extent); } else if (!strcmp (node->text, DATA_WORD)) { length = sizeof (uint16_t); position (extent); string = xmlcontent1 (node); xmlnumber (memory, extent); } else if (!strcmp (node->text, DATA_BYTE)) { position (extent); string = xmlcontent1 (node); xmlbyte (memory, extent); } xmledit (node, memory, extent); } node = node->after; } return (0); }