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 );
 }
Esempio n. 3
0
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);
}