diff options
| -rw-r--r-- | src/pugixml.cpp | 5 | ||||
| -rw-r--r-- | tests/test_document.cpp | 70 | ||||
| -rw-r--r-- | tests/test_dom_modify.cpp | 170 | ||||
| -rw-r--r-- | tests/test_dom_text.cpp | 6 | ||||
| -rw-r--r-- | tests/test_parse.cpp | 64 | ||||
| -rw-r--r-- | tests/test_parse_doctype.cpp | 6 | ||||
| -rw-r--r-- | tests/test_write.cpp | 12 | 
7 files changed, 168 insertions, 165 deletions
| diff --git a/src/pugixml.cpp b/src/pugixml.cpp index ee573c6..e8c10a7 100644 --- a/src/pugixml.cpp +++ b/src/pugixml.cpp @@ -4014,7 +4014,10 @@ PUGI__NS_BEGIN  		{  			if (!node->first_child)  			{ -				writer.write(' ', '/', '>'); +				if ((flags & format_raw) == 0) +					writer.write(' '); + +				writer.write('/', '>');  				return false;  			} diff --git a/tests/test_document.cpp b/tests/test_document.cpp index eba2fd4..b442126 100644 --- a/tests/test_document.cpp +++ b/tests/test_document.cpp @@ -68,7 +68,7 @@ TEST(document_create)  {  	pugi::xml_document doc;  	doc.append_child().set_name(STR("node")); -	CHECK_NODE(doc, STR("<node />")); +	CHECK_NODE(doc, STR("<node/>"));  }  #ifndef PUGIXML_NO_STL @@ -78,7 +78,7 @@ TEST(document_load_stream)  	std::istringstream iss("<node/>");  	CHECK(doc.load(iss)); -	CHECK_NODE(doc, STR("<node />")); +	CHECK_NODE(doc, STR("<node/>"));  }  TEST(document_load_stream_offset) @@ -91,7 +91,7 @@ TEST(document_load_stream_offset)  	iss >> s;  	CHECK(doc.load(iss)); -	CHECK_NODE(doc, STR("<node />")); +	CHECK_NODE(doc, STR("<node/>"));  }  TEST(document_load_stream_text) @@ -100,7 +100,7 @@ TEST(document_load_stream_text)  	std::ifstream iss("tests/data/multiline.xml");  	CHECK(doc.load(iss)); -	CHECK_NODE(doc, STR("<node1 /><node2 /><node3 />")); +	CHECK_NODE(doc, STR("<node1/><node2/><node3/>"));  }  TEST(document_load_stream_error) @@ -130,7 +130,7 @@ TEST(document_load_stream_wide)  	std::basic_istringstream<wchar_t> iss(L"<node/>");  	CHECK(doc.load(iss)); -	CHECK_NODE(doc, STR("<node />")); +	CHECK_NODE(doc, STR("<node/>"));  }  #ifndef PUGIXML_NO_EXCEPTIONS @@ -201,7 +201,7 @@ TEST(document_load_stream_nonseekable)      pugi::xml_document doc;      CHECK(doc.load(in)); -    CHECK_NODE(doc, STR("<node />")); +    CHECK_NODE(doc, STR("<node/>"));  }  TEST(document_load_stream_wide_nonseekable) @@ -212,14 +212,14 @@ TEST(document_load_stream_wide_nonseekable)      pugi::xml_document doc;      CHECK(doc.load(in)); -    CHECK_NODE(doc, STR("<node />")); +    CHECK_NODE(doc, STR("<node/>"));  }  TEST(document_load_stream_nonseekable_large)  {  	std::basic_string<pugi::char_t> str;  	str += STR("<node>"); -	for (int i = 0; i < 10000; ++i) str += STR("<node />"); +	for (int i = 0; i < 10000; ++i) str += STR("<node/>");  	str += STR("</node>");      char_array_buffer<pugi::char_t> buffer(&str[0], &str[0] + str.length()); @@ -264,7 +264,7 @@ TEST(document_load_string)  	pugi::xml_document doc;  	CHECK(doc.load_string(STR("<node/>"))); -	CHECK_NODE(doc, STR("<node />")); +	CHECK_NODE(doc, STR("<node/>"));  }  TEST(document_load_file) @@ -272,7 +272,7 @@ TEST(document_load_file)  	pugi::xml_document doc;  	CHECK(doc.load_file("tests/data/small.xml")); -	CHECK_NODE(doc, STR("<node />")); +	CHECK_NODE(doc, STR("<node/>"));  }  TEST(document_load_file_empty) @@ -291,7 +291,7 @@ TEST(document_load_file_large)  	std::basic_string<pugi::char_t> str;  	str += STR("<node>"); -	for (int i = 0; i < 10000; ++i) str += STR("<node />"); +	for (int i = 0; i < 10000; ++i) str += STR("<node/>");  	str += STR("</node>");  	CHECK_NODE(doc, str.c_str()); @@ -324,7 +324,7 @@ TEST(document_load_file_out_of_memory_file_leak)  	test_runner::_memory_fail_threshold = 0;  	CHECK(doc.load_file("tests/data/small.xml")); -	CHECK_NODE(doc, STR("<node />")); +	CHECK_NODE(doc, STR("<node/>"));  }  TEST(document_load_file_wide_out_of_memory_file_leak) @@ -339,7 +339,7 @@ TEST(document_load_file_wide_out_of_memory_file_leak)  	test_runner::_memory_fail_threshold = 0;  	CHECK(doc.load_file(L"tests/data/small.xml")); -	CHECK_NODE(doc, STR("<node />")); +	CHECK_NODE(doc, STR("<node/>"));  }  TEST(document_load_file_error_previous) @@ -357,7 +357,7 @@ TEST(document_load_file_wide_ascii)  	pugi::xml_document doc;  	CHECK(doc.load_file(L"tests/data/small.xml")); -	CHECK_NODE(doc, STR("<node />")); +	CHECK_NODE(doc, STR("<node/>"));  }  #if !defined(__DMC__) && !defined(__MWERKS__) && !(defined(__MINGW32__) && defined(__STRICT_ANSI__) && !defined(__MINGW64_VERSION_MAJOR)) && !defined(__BORLANDC__) @@ -366,7 +366,7 @@ TEST(document_load_file_wide_unicode)  	pugi::xml_document doc;  	CHECK(doc.load_file(L"tests/data/\x0442\x0435\x0441\x0442.xml")); -	CHECK_NODE(doc, STR("<node />")); +	CHECK_NODE(doc, STR("<node/>"));  }  #endif @@ -389,7 +389,7 @@ TEST_XML(document_save, "<node/>")  	doc.save(writer, STR(""), pugi::format_no_declaration | pugi::format_raw, get_native_encoding()); -	CHECK(writer.as_string() == STR("<node />")); +	CHECK(writer.as_string() == STR("<node/>"));  }  #ifndef PUGIXML_NO_STL @@ -399,7 +399,7 @@ TEST_XML(document_save_stream, "<node/>")  	doc.save(oss, STR(""), pugi::format_no_declaration | pugi::format_raw); -	CHECK(oss.str() == "<node />"); +	CHECK(oss.str() == "<node/>");  }  TEST_XML(document_save_stream_wide, "<node/>") @@ -408,7 +408,7 @@ TEST_XML(document_save_stream_wide, "<node/>")  	doc.save(oss, STR(""), pugi::format_no_declaration | pugi::format_raw); -	CHECK(oss.str() == L"<node />"); +	CHECK(oss.str() == L"<node/>");  }  #endif @@ -417,12 +417,12 @@ TEST_XML(document_save_bom, "<n/>")  	unsigned int flags = format_no_declaration | format_raw | format_write_bom;  	// specific encodings -	CHECK(test_save_narrow(doc, flags, encoding_utf8, "\xef\xbb\xbf<n />", 8)); -	CHECK(test_save_narrow(doc, flags, encoding_utf16_be, "\xfe\xff\x00<\x00n\x00 \x00/\x00>", 12)); -	CHECK(test_save_narrow(doc, flags, encoding_utf16_le, "\xff\xfe<\x00n\x00 \x00/\x00>\x00", 12)); -	CHECK(test_save_narrow(doc, flags, encoding_utf32_be, "\x00\x00\xfe\xff\x00\x00\x00<\x00\x00\x00n\x00\x00\x00 \x00\x00\x00/\x00\x00\x00>", 24)); -	CHECK(test_save_narrow(doc, flags, encoding_utf32_le, "\xff\xfe\x00\x00<\x00\x00\x00n\x00\x00\x00 \x00\x00\x00/\x00\x00\x00>\x00\x00\x00", 24)); -	CHECK(test_save_narrow(doc, flags, encoding_latin1, "<n />", 5)); +	CHECK(test_save_narrow(doc, flags, encoding_utf8, "\xef\xbb\xbf<n/>", 7)); +	CHECK(test_save_narrow(doc, flags, encoding_utf16_be, "\xfe\xff\x00<\x00n\x00/\x00>", 10)); +	CHECK(test_save_narrow(doc, flags, encoding_utf16_le, "\xff\xfe<\x00n\x00/\x00>\x00", 10)); +	CHECK(test_save_narrow(doc, flags, encoding_utf32_be, "\x00\x00\xfe\xff\x00\x00\x00<\x00\x00\x00n\x00\x00\x00/\x00\x00\x00>", 20)); +	CHECK(test_save_narrow(doc, flags, encoding_utf32_le, "\xff\xfe\x00\x00<\x00\x00\x00n\x00\x00\x00/\x00\x00\x00>\x00\x00\x00", 20)); +	CHECK(test_save_narrow(doc, flags, encoding_latin1, "<n/>", 4));  	// encodings synonyms  	CHECK(save_narrow(doc, flags, encoding_utf16) == save_narrow(doc, flags, (is_little_endian() ? encoding_utf16_le : encoding_utf16_be))); @@ -521,7 +521,7 @@ TEST_XML(document_save_file, "<node/>")  	CHECK(doc.save_file(f.path));  	CHECK(doc.load_file(f.path, pugi::parse_default | pugi::parse_declaration)); -	CHECK_NODE(doc, STR("<?xml version=\"1.0\"?><node />")); +	CHECK_NODE(doc, STR("<?xml version=\"1.0\"?><node/>"));  }  TEST_XML(document_save_file_wide, "<node/>") @@ -535,7 +535,7 @@ TEST_XML(document_save_file_wide, "<node/>")  	CHECK(doc.save_file(wpath));  	CHECK(doc.load_file(f.path, pugi::parse_default | pugi::parse_declaration)); -	CHECK_NODE(doc, STR("<?xml version=\"1.0\"?><node />")); +	CHECK_NODE(doc, STR("<?xml version=\"1.0\"?><node/>"));  }  TEST_XML(document_save_file_error, "<node/>") @@ -596,7 +596,7 @@ TEST(document_load_buffer)  	pugi::xml_document doc;  	CHECK(doc.load_buffer(text, sizeof(text))); -	CHECK_NODE(doc, STR("<node />")); +	CHECK_NODE(doc, STR("<node/>"));  }  TEST(document_load_buffer_inplace) @@ -606,7 +606,7 @@ TEST(document_load_buffer_inplace)  	pugi::xml_document doc;  	CHECK(doc.load_buffer_inplace(text, sizeof(text))); -	CHECK_NODE(doc, STR("<node />")); +	CHECK_NODE(doc, STR("<node/>"));  }  TEST(document_load_buffer_inplace_own) @@ -623,7 +623,7 @@ TEST(document_load_buffer_inplace_own)  	pugi::xml_document doc;  	CHECK(doc.load_buffer_inplace_own(text, size)); -	CHECK_NODE(doc, STR("<node />")); +	CHECK_NODE(doc, STR("<node/>"));  }  TEST(document_parse_result_bool) @@ -1196,7 +1196,7 @@ TEST_XML(document_reset, "<node><child/></node>")      CHECK(doc.load_string(STR("<node/>")));      CHECK(doc.first_child()); -    CHECK_NODE(doc, STR("<node />")); +    CHECK_NODE(doc, STR("<node/>"));      doc.reset();      CHECK(!doc.first_child()); @@ -1220,12 +1220,12 @@ TEST_XML(document_reset_copy, "<node><child/></node>")      doc2.reset(doc); -    CHECK_NODE(doc2, STR("<node><child /></node>")); +    CHECK_NODE(doc2, STR("<node><child/></node>"));      CHECK(doc.first_child() != doc2.first_child());      doc.reset(doc2); -    CHECK_NODE(doc, STR("<node><child /></node>")); +    CHECK_NODE(doc, STR("<node><child/></node>"));      CHECK(doc.first_child() != doc2.first_child());      CHECK(doc.first_child().offset_debug() == -1); @@ -1233,7 +1233,7 @@ TEST_XML(document_reset_copy, "<node><child/></node>")  TEST_XML(document_reset_copy_self, "<node><child/></node>")  { -    CHECK_NODE(doc, STR("<node><child /></node>")); +    CHECK_NODE(doc, STR("<node><child/></node>"));      doc.reset(doc); @@ -1349,7 +1349,7 @@ TEST(document_alignment)  		xml_document* doc = new (buf + offset) xml_document;  		CHECK(doc->load_string(STR("<node />"))); -		CHECK_NODE(*doc, STR("<node />")); +		CHECK_NODE(*doc, STR("<node/>"));  		doc->~xml_document();  	} @@ -1393,5 +1393,5 @@ TEST(document_deprecated_load)  {  	xml_document doc;  	CHECK(doc.load(STR("<node/>"))); -	CHECK_NODE(doc, STR("<node />")); +	CHECK_NODE(doc, STR("<node/>"));  } diff --git a/tests/test_dom_modify.cpp b/tests/test_dom_modify.cpp index 4c944e9..f2d7ea8 100644 --- a/tests/test_dom_modify.cpp +++ b/tests/test_dom_modify.cpp @@ -31,7 +31,7 @@ TEST_XML(dom_attr_assign, "<node/>")  	node.append_attribute(STR("attr8")) = true;  	xml_attribute() = true; -	CHECK_NODE(node, STR("<node attr1=\"v1\" attr2=\"-2147483647\" attr3=\"-2147483648\" attr4=\"4294967295\" attr5=\"4294967294\" attr6=\"0.5\" attr7=\"0.25\" attr8=\"true\" />")); +	CHECK_NODE(node, STR("<node attr1=\"v1\" attr2=\"-2147483647\" attr3=\"-2147483648\" attr4=\"4294967295\" attr5=\"4294967294\" attr6=\"0.5\" attr7=\"0.25\" attr8=\"true\"/>"));  }  TEST_XML(dom_attr_set_name, "<node attr='value' />") @@ -41,7 +41,7 @@ TEST_XML(dom_attr_set_name, "<node attr='value' />")  	CHECK(attr.set_name(STR("n")));  	CHECK(!xml_attribute().set_name(STR("n"))); -	CHECK_NODE(doc, STR("<node n=\"value\" />")); +	CHECK_NODE(doc, STR("<node n=\"value\"/>"));  }  TEST_XML(dom_attr_set_value, "<node/>") @@ -68,7 +68,7 @@ TEST_XML(dom_attr_set_value, "<node/>")  	CHECK(node.append_attribute(STR("attr8")).set_value(true));  	CHECK(!xml_attribute().set_value(true)); -	CHECK_NODE(node, STR("<node attr1=\"v1\" attr2=\"-2147483647\" attr3=\"-2147483648\" attr4=\"4294967295\" attr5=\"4294967294\" attr6=\"0.5\" attr7=\"0.25\" attr8=\"true\" />")); +	CHECK_NODE(node, STR("<node attr1=\"v1\" attr2=\"-2147483647\" attr3=\"-2147483648\" attr4=\"4294967295\" attr5=\"4294967294\" attr6=\"0.5\" attr7=\"0.25\" attr8=\"true\"/>"));  }  #if LONG_MAX > 2147483647 @@ -84,7 +84,7 @@ TEST_XML(dom_attr_assign_long, "<node/>")  	node.append_attribute(STR("attr4")) = 18446744073709551614ul;  	xml_attribute() = 18446744073709551615ul; -	CHECK_NODE(node, STR("<node attr1=\"-9223372036854775807\" attr2=\"-9223372036854775808\" attr3=\"18446744073709551615\" attr4=\"18446744073709551614\" />")); +	CHECK_NODE(node, STR("<node attr1=\"-9223372036854775807\" attr2=\"-9223372036854775808\" attr3=\"18446744073709551615\" attr4=\"18446744073709551614\"/>"));  }  TEST_XML(dom_attr_set_value_long, "<node/>") @@ -99,7 +99,7 @@ TEST_XML(dom_attr_set_value_long, "<node/>")  	CHECK(node.append_attribute(STR("attr4")).set_value(18446744073709551614ul));  	CHECK(!xml_attribute().set_value(18446744073709551615ul)); -	CHECK_NODE(node, STR("<node attr1=\"-9223372036854775807\" attr2=\"-9223372036854775808\" attr3=\"18446744073709551615\" attr4=\"18446744073709551614\" />")); +	CHECK_NODE(node, STR("<node attr1=\"-9223372036854775807\" attr2=\"-9223372036854775808\" attr3=\"18446744073709551615\" attr4=\"18446744073709551614\"/>"));  }  #else  TEST_XML(dom_attr_assign_long, "<node/>") @@ -114,7 +114,7 @@ TEST_XML(dom_attr_assign_long, "<node/>")  	node.append_attribute(STR("attr4")) = 4294967294ul;  	xml_attribute() = 4294967295ul; -	CHECK_NODE(node, STR("<node attr1=\"-2147483647\" attr2=\"-2147483648\" attr3=\"4294967295\" attr4=\"4294967294\" />")); +	CHECK_NODE(node, STR("<node attr1=\"-2147483647\" attr2=\"-2147483648\" attr3=\"4294967295\" attr4=\"4294967294\"/>"));  }  TEST_XML(dom_attr_set_value_long, "<node/>") @@ -129,7 +129,7 @@ TEST_XML(dom_attr_set_value_long, "<node/>")  	CHECK(node.append_attribute(STR("attr4")).set_value(4294967294ul));  	CHECK(!xml_attribute().set_value(4294967295ul)); -	CHECK_NODE(node, STR("<node attr1=\"-2147483647\" attr2=\"-2147483648\" attr3=\"4294967295\" attr4=\"4294967294\" />")); +	CHECK_NODE(node, STR("<node attr1=\"-2147483647\" attr2=\"-2147483648\" attr3=\"4294967295\" attr4=\"4294967294\"/>"));  }  #endif @@ -146,7 +146,7 @@ TEST_XML(dom_attr_assign_llong, "<node/>")  	node.append_attribute(STR("attr4")) = 18446744073709551614ull;  	xml_attribute() = 18446744073709551615ull; -	CHECK_NODE(node, STR("<node attr1=\"-9223372036854775807\" attr2=\"-9223372036854775808\" attr3=\"18446744073709551615\" attr4=\"18446744073709551614\" />")); +	CHECK_NODE(node, STR("<node attr1=\"-9223372036854775807\" attr2=\"-9223372036854775808\" attr3=\"18446744073709551615\" attr4=\"18446744073709551614\"/>"));  }  TEST_XML(dom_attr_set_value_llong, "<node/>") @@ -161,7 +161,7 @@ TEST_XML(dom_attr_set_value_llong, "<node/>")  	CHECK(node.append_attribute(STR("attr4")).set_value(18446744073709551614ull));  	CHECK(!xml_attribute().set_value(18446744073709551615ull)); -	CHECK_NODE(node, STR("<node attr1=\"-9223372036854775807\" attr2=\"-9223372036854775808\" attr3=\"18446744073709551615\" attr4=\"18446744073709551614\" />")); +	CHECK_NODE(node, STR("<node attr1=\"-9223372036854775807\" attr2=\"-9223372036854775808\" attr3=\"18446744073709551615\" attr4=\"18446744073709551614\"/>"));  }  #endif @@ -171,8 +171,8 @@ TEST_XML(dom_attr_assign_large_number_float, "<node attr='' />")  	node.attribute(STR("attr")) = std::numeric_limits<float>::max(); -	CHECK(test_node(node, STR("<node attr=\"3.40282347e+038\" />"), STR(""), pugi::format_raw) || -		  test_node(node, STR("<node attr=\"3.40282347e+38\" />"), STR(""), pugi::format_raw)); +	CHECK(test_node(node, STR("<node attr=\"3.40282347e+038\"/>"), STR(""), pugi::format_raw) || +		  test_node(node, STR("<node attr=\"3.40282347e+38\"/>"), STR(""), pugi::format_raw));  }  TEST_XML(dom_attr_assign_large_number_double, "<node attr='' />") @@ -183,9 +183,9 @@ TEST_XML(dom_attr_assign_large_number_double, "<node attr='' />")  	// Borland C does not print double values with enough precision  #ifdef __BORLANDC__ -	CHECK_NODE(node, STR("<node attr=\"1.7976931348623156e+308\" />")); +	CHECK_NODE(node, STR("<node attr=\"1.7976931348623156e+308\"/>"));  #else -	CHECK_NODE(node, STR("<node attr=\"1.7976931348623157e+308\" />")); +	CHECK_NODE(node, STR("<node attr=\"1.7976931348623157e+308\"/>"));  #endif  } @@ -234,7 +234,7 @@ TEST_XML(dom_node_prepend_attribute, "<node><child/></node>")  	CHECK(a3 && a1 != a3 && a2 != a3);  	a3 = STR("v3"); -	CHECK_NODE(doc, STR("<node a2=\"v2\" a1=\"v1\"><child a3=\"v3\" /></node>")); +	CHECK_NODE(doc, STR("<node a2=\"v2\" a1=\"v1\"><child a3=\"v3\"/></node>"));  }  TEST_XML(dom_node_append_attribute, "<node><child/></node>") @@ -254,7 +254,7 @@ TEST_XML(dom_node_append_attribute, "<node><child/></node>")  	CHECK(a3 && a1 != a3 && a2 != a3);  	a3 = STR("v3"); -	CHECK_NODE(doc, STR("<node a1=\"v1\" a2=\"v2\"><child a3=\"v3\" /></node>")); +	CHECK_NODE(doc, STR("<node a1=\"v1\" a2=\"v2\"><child a3=\"v3\"/></node>"));  }  TEST_XML(dom_node_insert_attribute_after, "<node a1='v1'><child a2='v2'/></node>") @@ -284,7 +284,7 @@ TEST_XML(dom_node_insert_attribute_after, "<node a1='v1'><child a2='v2'/></node>  	CHECK(child.insert_attribute_after(STR("a"), a4) == xml_attribute()); -	CHECK_NODE(doc, STR("<node a1=\"v1\" a4=\"v4\" a3=\"v3\" a5=\"v5\"><child a2=\"v2\" /></node>")); +	CHECK_NODE(doc, STR("<node a1=\"v1\" a4=\"v4\" a3=\"v3\" a5=\"v5\"><child a2=\"v2\"/></node>"));  }  TEST_XML(dom_node_insert_attribute_before, "<node a1='v1'><child a2='v2'/></node>") @@ -314,7 +314,7 @@ TEST_XML(dom_node_insert_attribute_before, "<node a1='v1'><child a2='v2'/></node  	CHECK(child.insert_attribute_before(STR("a"), a4) == xml_attribute()); -	CHECK_NODE(doc, STR("<node a5=\"v5\" a3=\"v3\" a4=\"v4\" a1=\"v1\"><child a2=\"v2\" /></node>")); +	CHECK_NODE(doc, STR("<node a5=\"v5\" a3=\"v3\" a4=\"v4\" a1=\"v1\"><child a2=\"v2\"/></node>"));  }  TEST_XML(dom_node_prepend_copy_attribute, "<node a1='v1'><child a2='v2'/><child/></node>") @@ -339,7 +339,7 @@ TEST_XML(dom_node_prepend_copy_attribute, "<node a1='v1'><child a2='v2'/><child/  	xml_attribute a5 = node.last_child().prepend_copy(a1);  	CHECK(a5 && a5 != a4 && a5 != a3 && a5 != a2 && a5 != a1); -	CHECK_NODE(doc, STR("<node a2=\"v2\" a1=\"v1\" a1=\"v1\"><child a2=\"v2\" /><child a1=\"v1\" /></node>")); +	CHECK_NODE(doc, STR("<node a2=\"v2\" a1=\"v1\" a1=\"v1\"><child a2=\"v2\"/><child a1=\"v1\"/></node>"));  	a3.set_name(STR("a3"));  	a3 = STR("v3"); @@ -350,7 +350,7 @@ TEST_XML(dom_node_prepend_copy_attribute, "<node a1='v1'><child a2='v2'/><child/  	a5.set_name(STR("a5"));  	a5 = STR("v5"); -	CHECK_NODE(doc, STR("<node a4=\"v4\" a3=\"v3\" a1=\"v1\"><child a2=\"v2\" /><child a5=\"v5\" /></node>")); +	CHECK_NODE(doc, STR("<node a4=\"v4\" a3=\"v3\" a1=\"v1\"><child a2=\"v2\"/><child a5=\"v5\"/></node>"));  }  TEST_XML(dom_node_append_copy_attribute, "<node a1='v1'><child a2='v2'/><child/></node>") @@ -375,7 +375,7 @@ TEST_XML(dom_node_append_copy_attribute, "<node a1='v1'><child a2='v2'/><child/>  	xml_attribute a5 = node.last_child().append_copy(a1);  	CHECK(a5 && a5 != a4 && a5 != a3 && a5 != a2 && a5 != a1); -	CHECK_NODE(doc, STR("<node a1=\"v1\" a1=\"v1\" a2=\"v2\"><child a2=\"v2\" /><child a1=\"v1\" /></node>")); +	CHECK_NODE(doc, STR("<node a1=\"v1\" a1=\"v1\" a2=\"v2\"><child a2=\"v2\"/><child a1=\"v1\"/></node>"));  	a3.set_name(STR("a3"));  	a3 = STR("v3"); @@ -386,7 +386,7 @@ TEST_XML(dom_node_append_copy_attribute, "<node a1='v1'><child a2='v2'/><child/>  	a5.set_name(STR("a5"));  	a5 = STR("v5"); -	CHECK_NODE(doc, STR("<node a1=\"v1\" a3=\"v3\" a4=\"v4\"><child a2=\"v2\" /><child a5=\"v5\" /></node>")); +	CHECK_NODE(doc, STR("<node a1=\"v1\" a3=\"v3\" a4=\"v4\"><child a2=\"v2\"/><child a5=\"v5\"/></node>"));  }  TEST_XML(dom_node_insert_copy_after_attribute, "<node a1='v1'><child a2='v2'/></node>") @@ -414,7 +414,7 @@ TEST_XML(dom_node_insert_copy_after_attribute, "<node a1='v1'><child a2='v2'/></  	CHECK(child.insert_copy_after(a4, a4) == xml_attribute()); -	CHECK_NODE(doc, STR("<node a1=\"v1\" a2=\"v2\" a2=\"v2\" a1=\"v1\"><child a2=\"v2\" /></node>")); +	CHECK_NODE(doc, STR("<node a1=\"v1\" a2=\"v2\" a2=\"v2\" a1=\"v1\"><child a2=\"v2\"/></node>"));  	a3.set_name(STR("a3"));  	a3 = STR("v3"); @@ -425,7 +425,7 @@ TEST_XML(dom_node_insert_copy_after_attribute, "<node a1='v1'><child a2='v2'/></  	a5.set_name(STR("a5"));  	a5 = STR("v5"); -	CHECK_NODE(doc, STR("<node a1=\"v1\" a5=\"v5\" a4=\"v4\" a3=\"v3\"><child a2=\"v2\" /></node>")); +	CHECK_NODE(doc, STR("<node a1=\"v1\" a5=\"v5\" a4=\"v4\" a3=\"v3\"><child a2=\"v2\"/></node>"));  }  TEST_XML(dom_node_insert_copy_before_attribute, "<node a1='v1'><child a2='v2'/></node>") @@ -453,7 +453,7 @@ TEST_XML(dom_node_insert_copy_before_attribute, "<node a1='v1'><child a2='v2'/><  	CHECK(child.insert_copy_before(a4, a4) == xml_attribute()); -	CHECK_NODE(doc, STR("<node a1=\"v1\" a2=\"v2\" a2=\"v2\" a1=\"v1\"><child a2=\"v2\" /></node>")); +	CHECK_NODE(doc, STR("<node a1=\"v1\" a2=\"v2\" a2=\"v2\" a1=\"v1\"><child a2=\"v2\"/></node>"));  	a3.set_name(STR("a3"));  	a3 = STR("v3"); @@ -464,7 +464,7 @@ TEST_XML(dom_node_insert_copy_before_attribute, "<node a1='v1'><child a2='v2'/><  	a5.set_name(STR("a5"));  	a5 = STR("v5"); -	CHECK_NODE(doc, STR("<node a3=\"v3\" a4=\"v4\" a5=\"v5\" a1=\"v1\"><child a2=\"v2\" /></node>")); +	CHECK_NODE(doc, STR("<node a3=\"v3\" a4=\"v4\" a5=\"v5\" a1=\"v1\"><child a2=\"v2\"/></node>"));  }  TEST_XML(dom_node_remove_attribute, "<node a1='v1' a2='v2' a3='v3'><child a4='v4'/></node>") @@ -479,13 +479,13 @@ TEST_XML(dom_node_remove_attribute, "<node a1='v1' a2='v2' a3='v3'><child a4='v4  	CHECK(!node.remove_attribute(xml_attribute()));  	CHECK(!node.remove_attribute(child.attribute(STR("a4")))); -	CHECK_NODE(doc, STR("<node a1=\"v1\" a2=\"v2\" a3=\"v3\"><child a4=\"v4\" /></node>")); +	CHECK_NODE(doc, STR("<node a1=\"v1\" a2=\"v2\" a3=\"v3\"><child a4=\"v4\"/></node>"));  	CHECK(node.remove_attribute(STR("a1")));  	CHECK(node.remove_attribute(node.attribute(STR("a3"))));  	CHECK(child.remove_attribute(STR("a4"))); -	CHECK_NODE(doc, STR("<node a2=\"v2\"><child /></node>")); +	CHECK_NODE(doc, STR("<node a2=\"v2\"><child/></node>"));  }  TEST_XML(dom_node_prepend_child, "<node>foo<child/></node>") @@ -511,7 +511,7 @@ TEST_XML(dom_node_prepend_child, "<node>foo<child/></node>")  	CHECK(n4 && n1 != n4 && n2 != n4 && n3 != n4);  	CHECK(n4.set_value(STR("n4"))); -	CHECK_NODE(doc, STR("<!--n4--><node><n2 /><n1 />foo<child>n3</child></node>")); +	CHECK_NODE(doc, STR("<!--n4--><node><n2/><n1/>foo<child>n3</child></node>"));  }  TEST_XML(dom_node_append_child, "<node>foo<child/></node>") @@ -537,7 +537,7 @@ TEST_XML(dom_node_append_child, "<node>foo<child/></node>")  	CHECK(n4 && n1 != n4 && n2 != n4 && n3 != n4);  	CHECK(n4.set_value(STR("n4"))); -	CHECK_NODE(doc, STR("<node>foo<child>n3</child><n1 /><n2 /></node><!--n4-->")); +	CHECK_NODE(doc, STR("<node>foo<child>n3</child><n1/><n2/></node><!--n4-->"));  }  TEST_XML(dom_node_insert_child_after, "<node>foo<child/></node>") @@ -571,7 +571,7 @@ TEST_XML(dom_node_insert_child_after, "<node>foo<child/></node>")  	CHECK(child.insert_child_after(node_element, n3) == xml_node()); -	CHECK_NODE(doc, STR("<node>foo<?n4?><child /><n2 />n3<n1 /></node>")); +	CHECK_NODE(doc, STR("<node>foo<?n4?><child/><n2/>n3<n1/></node>"));  }  TEST_XML(dom_node_insert_child_before, "<node>foo<child/></node>") @@ -605,7 +605,7 @@ TEST_XML(dom_node_insert_child_before, "<node>foo<child/></node>")  	CHECK(child.insert_child_before(node_element, n3) == xml_node()); -	CHECK_NODE(doc, STR("<node><?n4?>foo<n1 />n3<n2 /><child /></node>")); +	CHECK_NODE(doc, STR("<node><?n4?>foo<n1/>n3<n2/><child/></node>"));  }  TEST_XML(dom_node_prepend_child_name, "<node>foo<child/></node>") @@ -619,7 +619,7 @@ TEST_XML(dom_node_prepend_child_name, "<node>foo<child/></node>")  	xml_node n2 = doc.child(STR("node")).prepend_child(STR("n2"));  	CHECK(n2 && n1 != n2); -	CHECK_NODE(doc, STR("<node><n2 /><n1 />foo<child /></node>")); +	CHECK_NODE(doc, STR("<node><n2/><n1/>foo<child/></node>"));  }  TEST_XML(dom_node_append_child_name, "<node>foo<child/></node>") @@ -633,7 +633,7 @@ TEST_XML(dom_node_append_child_name, "<node>foo<child/></node>")  	xml_node n2 = doc.child(STR("node")).append_child(STR("n2"));  	CHECK(n2 && n1 != n2); -	CHECK_NODE(doc, STR("<node>foo<child /><n1 /><n2 /></node>")); +	CHECK_NODE(doc, STR("<node>foo<child/><n1/><n2/></node>"));  }  TEST_XML(dom_node_insert_child_after_name, "<node>foo<child/></node>") @@ -655,7 +655,7 @@ TEST_XML(dom_node_insert_child_after_name, "<node>foo<child/></node>")  	CHECK(child.insert_child_after(STR(""), n2) == xml_node()); -	CHECK_NODE(doc, STR("<node>foo<child /><n2 /><n1 /></node>")); +	CHECK_NODE(doc, STR("<node>foo<child/><n2/><n1/></node>"));  }  TEST_XML(dom_node_insert_child_before_name, "<node>foo<child/></node>") @@ -677,7 +677,7 @@ TEST_XML(dom_node_insert_child_before_name, "<node>foo<child/></node>")  	CHECK(child.insert_child_before(STR(""), n2) == xml_node()); -	CHECK_NODE(doc, STR("<node>foo<n1 /><n2 /><child /></node>")); +	CHECK_NODE(doc, STR("<node>foo<n1/><n2/><child/></node>"));  }  TEST_XML(dom_node_remove_child, "<node><n1/><n2/><n3/><child><n4/></child></node>") @@ -692,20 +692,20 @@ TEST_XML(dom_node_remove_child, "<node><n1/><n2/><n3/><child><n4/></child></node  	CHECK(!node.remove_child(xml_node()));  	CHECK(!node.remove_child(child.child(STR("n4")))); -	CHECK_NODE(doc, STR("<node><n1 /><n2 /><n3 /><child><n4 /></child></node>")); +	CHECK_NODE(doc, STR("<node><n1/><n2/><n3/><child><n4/></child></node>"));  	CHECK(node.remove_child(STR("n1")));  	CHECK(node.remove_child(node.child(STR("n3"))));  	CHECK(child.remove_child(STR("n4"))); -	CHECK_NODE(doc, STR("<node><n2 /><child /></node>")); +	CHECK_NODE(doc, STR("<node><n2/><child/></node>"));  }  TEST_XML(dom_node_remove_child_complex, "<node id='1'><n1 id1='1' id2='2'/><n2/><n3/><child><n4/></child></node>")  {  	CHECK(doc.child(STR("node")).remove_child(STR("n1"))); -	CHECK_NODE(doc, STR("<node id=\"1\"><n2 /><n3 /><child><n4 /></child></node>")); +	CHECK_NODE(doc, STR("<node id=\"1\"><n2/><n3/><child><n4/></child></node>"));  	CHECK(doc.remove_child(STR("node"))); @@ -732,17 +732,17 @@ TEST_XML(dom_node_prepend_copy, "<node>foo<child/></node>")  	xml_node n1 = doc.child(STR("node")).prepend_copy(doc.child(STR("node")).first_child());  	CHECK(n1);  	CHECK_STRING(n1.value(), STR("foo")); -	CHECK_NODE(doc, STR("<node>foofoo<child /></node>")); +	CHECK_NODE(doc, STR("<node>foofoo<child/></node>"));  	xml_node n2 = doc.child(STR("node")).prepend_copy(doc.child(STR("node")).child(STR("child")));  	CHECK(n2 && n2 != n1);  	CHECK_STRING(n2.name(), STR("child")); -	CHECK_NODE(doc, STR("<node><child />foofoo<child /></node>")); +	CHECK_NODE(doc, STR("<node><child/>foofoo<child/></node>"));  	xml_node n3 = doc.child(STR("node")).child(STR("child")).prepend_copy(doc.child(STR("node")).first_child().next_sibling());  	CHECK(n3 && n3 != n1 && n3 != n2);  	CHECK_STRING(n3.value(), STR("foo")); -	CHECK_NODE(doc, STR("<node><child>foo</child>foofoo<child /></node>")); +	CHECK_NODE(doc, STR("<node><child>foo</child>foofoo<child/></node>"));  }  TEST_XML(dom_node_append_copy, "<node>foo<child/></node>") @@ -755,17 +755,17 @@ TEST_XML(dom_node_append_copy, "<node>foo<child/></node>")  	xml_node n1 = doc.child(STR("node")).append_copy(doc.child(STR("node")).first_child());  	CHECK(n1);  	CHECK_STRING(n1.value(), STR("foo")); -	CHECK_NODE(doc, STR("<node>foo<child />foo</node>")); +	CHECK_NODE(doc, STR("<node>foo<child/>foo</node>"));  	xml_node n2 = doc.child(STR("node")).append_copy(doc.child(STR("node")).child(STR("child")));  	CHECK(n2 && n2 != n1);  	CHECK_STRING(n2.name(), STR("child")); -	CHECK_NODE(doc, STR("<node>foo<child />foo<child /></node>")); +	CHECK_NODE(doc, STR("<node>foo<child/>foo<child/></node>"));  	xml_node n3 = doc.child(STR("node")).child(STR("child")).append_copy(doc.child(STR("node")).first_child());  	CHECK(n3 && n3 != n1 && n3 != n2);  	CHECK_STRING(n3.value(), STR("foo")); -	CHECK_NODE(doc, STR("<node>foo<child>foo</child>foo<child /></node>")); +	CHECK_NODE(doc, STR("<node>foo<child>foo</child>foo<child/></node>"));  }  TEST_XML(dom_node_insert_copy_after, "<node>foo<child/></node>") @@ -779,17 +779,17 @@ TEST_XML(dom_node_insert_copy_after, "<node>foo<child/></node>")  	xml_node n1 = doc.child(STR("node")).insert_copy_after(doc.child(STR("node")).child(STR("child")), doc.child(STR("node")).first_child());  	CHECK(n1);  	CHECK_STRING(n1.name(), STR("child")); -	CHECK_NODE(doc, STR("<node>foo<child /><child /></node>")); +	CHECK_NODE(doc, STR("<node>foo<child/><child/></node>"));  	xml_node n2 = doc.child(STR("node")).insert_copy_after(doc.child(STR("node")).first_child(), doc.child(STR("node")).last_child());  	CHECK(n2 && n2 != n1);  	CHECK_STRING(n2.value(), STR("foo")); -	CHECK_NODE(doc, STR("<node>foo<child /><child />foo</node>")); +	CHECK_NODE(doc, STR("<node>foo<child/><child/>foo</node>"));  	xml_node n3 = doc.child(STR("node")).insert_copy_after(doc.child(STR("node")).first_child(), doc.child(STR("node")).first_child());  	CHECK(n3 && n3 != n1 && n3 != n2);  	CHECK_STRING(n3.value(), STR("foo")); -	CHECK_NODE(doc, STR("<node>foofoo<child /><child />foo</node>")); +	CHECK_NODE(doc, STR("<node>foofoo<child/><child/>foo</node>"));  }  TEST_XML(dom_node_insert_copy_before, "<node>foo<child/></node>") @@ -803,39 +803,39 @@ TEST_XML(dom_node_insert_copy_before, "<node>foo<child/></node>")  	xml_node n1 = doc.child(STR("node")).insert_copy_before(doc.child(STR("node")).child(STR("child")), doc.child(STR("node")).first_child());  	CHECK(n1);  	CHECK_STRING(n1.name(), STR("child")); -	CHECK_NODE(doc, STR("<node><child />foo<child /></node>")); +	CHECK_NODE(doc, STR("<node><child/>foo<child/></node>"));  	xml_node n2 = doc.child(STR("node")).insert_copy_before(doc.child(STR("node")).first_child(), doc.child(STR("node")).last_child());  	CHECK(n2 && n2 != n1);  	CHECK_STRING(n2.name(), STR("child")); -	CHECK_NODE(doc, STR("<node><child />foo<child /><child /></node>")); +	CHECK_NODE(doc, STR("<node><child/>foo<child/><child/></node>"));  	xml_node n3 = doc.child(STR("node")).insert_copy_before(doc.child(STR("node")).first_child().next_sibling(), doc.child(STR("node")).first_child());  	CHECK(n3 && n3 != n1 && n3 != n2);  	CHECK_STRING(n3.value(), STR("foo")); -	CHECK_NODE(doc, STR("<node>foo<child />foo<child /><child /></node>")); +	CHECK_NODE(doc, STR("<node>foo<child/>foo<child/><child/></node>"));  }  TEST_XML(dom_node_copy_recursive, "<node>foo<child/></node>")  {  	doc.child(STR("node")).append_copy(doc.child(STR("node"))); -	CHECK_NODE(doc, STR("<node>foo<child /><node>foo<child /></node></node>")); +	CHECK_NODE(doc, STR("<node>foo<child/><node>foo<child/></node></node>"));  }  TEST_XML(dom_node_copy_crossdoc, "<node/>")  {  	xml_document newdoc;  	newdoc.append_copy(doc.child(STR("node"))); -	CHECK_NODE(doc, STR("<node />")); -	CHECK_NODE(newdoc, STR("<node />")); +	CHECK_NODE(doc, STR("<node/>")); +	CHECK_NODE(newdoc, STR("<node/>"));  }  TEST_XML(dom_node_copy_crossdoc_attribute, "<node attr='value'/>")  {  	xml_document newdoc;  	newdoc.append_child(STR("copy")).append_copy(doc.child(STR("node")).attribute(STR("attr"))); -	CHECK_NODE(doc, STR("<node attr=\"value\" />")); -	CHECK_NODE(newdoc, STR("<copy attr=\"value\" />")); +	CHECK_NODE(doc, STR("<node attr=\"value\"/>")); +	CHECK_NODE(newdoc, STR("<copy attr=\"value\"/>"));  }  TEST_XML_FLAGS(dom_node_copy_types, "<?xml version='1.0'?><!DOCTYPE id><root><?pi value?><!--comment--><node id='1'>pcdata<![CDATA[cdata]]></node></root>", parse_full) @@ -906,7 +906,7 @@ TEST(dom_node_declaration_copy)  	doc.last_child().append_copy(doc.first_child()); -	CHECK_NODE(doc, STR("<?xml?><node />")); +	CHECK_NODE(doc, STR("<?xml?><node/>"));  }  TEST(dom_string_out_of_memory) @@ -1056,7 +1056,7 @@ TEST(dom_node_doctype_copy)  	doc.last_child().append_copy(doc.first_child()); -	CHECK_NODE(doc, STR("<!DOCTYPE><node />")); +	CHECK_NODE(doc, STR("<!DOCTYPE><node/>"));  }  TEST(dom_node_doctype_value) @@ -1085,7 +1085,7 @@ TEST_XML(dom_node_append_buffer_native, "<node>test</node>")  	CHECK(node.append_buffer(data2, sizeof(data2)));  	CHECK(node.append_buffer(data2, sizeof(data2))); -	CHECK_NODE(doc, STR("<node>test<child1 id=\"1\" /><child2>text</child2><child3 /><child1 id=\"1\" /><child2>text</child2><child3 /><child3 /></node>")); +	CHECK_NODE(doc, STR("<node>test<child1 id=\"1\"/><child2>text</child2><child3/><child1 id=\"1\"/><child2>text</child2><child3/><child3/></node>"));  }  TEST_XML(dom_node_append_buffer_convert, "<node>test</node>") @@ -1097,7 +1097,7 @@ TEST_XML(dom_node_append_buffer_convert, "<node>test</node>")  	CHECK(node.append_buffer(data, sizeof(data)));  	CHECK(node.append_buffer(data, sizeof(data), parse_default, encoding_utf32_be)); -	CHECK_NODE(doc, STR("<node>test<n /><n /></node>")); +	CHECK_NODE(doc, STR("<node>test<n/><n/></node>"));  } @@ -1113,15 +1113,15 @@ TEST_XML(dom_node_append_buffer_remove, "<node>test</node>")  	CHECK(node.append_buffer(data1, sizeof(data1)));  	CHECK(node.append_buffer(data2, sizeof(data2))); -	CHECK_NODE(doc, STR("<node>test<child1 id=\"1\" /><child2>text</child2><child3 /><child1 id=\"1\" /><child2>text</child2><child3 /></node>")); +	CHECK_NODE(doc, STR("<node>test<child1 id=\"1\"/><child2>text</child2><child3/><child1 id=\"1\"/><child2>text</child2><child3/></node>"));  	while (node.remove_child(STR("child2"))) {} -	CHECK_NODE(doc, STR("<node>test<child1 id=\"1\" /><child3 /><child1 id=\"1\" /><child3 /></node>")); +	CHECK_NODE(doc, STR("<node>test<child1 id=\"1\"/><child3/><child1 id=\"1\"/><child3/></node>"));  	while (node.remove_child(STR("child1"))) {} -	CHECK_NODE(doc, STR("<node>test<child3 /><child3 /></node>")); +	CHECK_NODE(doc, STR("<node>test<child3/><child3/></node>"));  	while (node.remove_child(STR("child3"))) {} @@ -1140,7 +1140,7 @@ TEST(dom_node_append_buffer_empty_document)  	doc.append_buffer(data, sizeof(data)); -	CHECK_NODE(doc, STR("<child1 id=\"1\" /><child2>text</child2>")); +	CHECK_NODE(doc, STR("<child1 id=\"1\"/><child2>text</child2>"));  }  TEST_XML(dom_node_append_buffer_invalid_type, "<node>test</node>") @@ -1158,10 +1158,10 @@ TEST_XML(dom_node_append_buffer_close_external, "<node />")  	const char data[] = "<child1 /></node><child2 />";  	CHECK(node.append_buffer(data, sizeof(data)).status == status_end_element_mismatch); -	CHECK_NODE(doc, STR("<node><child1 /></node>")); +	CHECK_NODE(doc, STR("<node><child1/></node>"));  	CHECK(node.append_buffer(data, sizeof(data)).status == status_end_element_mismatch); -	CHECK_NODE(doc, STR("<node><child1 /><child1 /></node>")); +	CHECK_NODE(doc, STR("<node><child1/><child1/></node>"));  }  TEST(dom_node_append_buffer_out_of_memory_extra) @@ -1252,7 +1252,7 @@ TEST_XML(dom_node_append_buffer_empty, "<node />")  	CHECK(node.append_buffer(0, 0).status == status_no_document_element);  	CHECK(node.append_buffer(0, 0, parse_fragment).status == status_ok); -	CHECK_NODE(doc, STR("<node />")); +	CHECK_NODE(doc, STR("<node/>"));  }  TEST_XML(dom_node_prepend_move, "<node>foo<child/></node>") @@ -1267,12 +1267,12 @@ TEST_XML(dom_node_prepend_move, "<node>foo<child/></node>")  	xml_node n1 = doc.child(STR("node")).prepend_move(doc.child(STR("node")).first_child());  	CHECK(n1 && n1 == doc.child(STR("node")).first_child());  	CHECK_STRING(n1.value(), STR("foo")); -	CHECK_NODE(doc, STR("<node>foo<child /></node>")); +	CHECK_NODE(doc, STR("<node>foo<child/></node>"));  	xml_node n2 = doc.child(STR("node")).prepend_move(doc.child(STR("node")).child(STR("child")));  	CHECK(n2 && n2 != n1 && n2 == child);  	CHECK_STRING(n2.name(), STR("child")); -	CHECK_NODE(doc, STR("<node><child />foo</node>")); +	CHECK_NODE(doc, STR("<node><child/>foo</node>"));  	xml_node n3 = doc.child(STR("node")).child(STR("child")).prepend_move(doc.child(STR("node")).first_child().next_sibling());  	CHECK(n3 && n3 == n1 && n3 != n2); @@ -1292,12 +1292,12 @@ TEST_XML(dom_node_append_move, "<node>foo<child/></node>")  	xml_node n1 = doc.child(STR("node")).append_move(doc.child(STR("node")).first_child());  	CHECK(n1 && n1 == doc.child(STR("node")).last_child());  	CHECK_STRING(n1.value(), STR("foo")); -	CHECK_NODE(doc, STR("<node><child />foo</node>")); +	CHECK_NODE(doc, STR("<node><child/>foo</node>"));  	xml_node n2 = doc.child(STR("node")).append_move(doc.child(STR("node")).last_child());  	CHECK(n2 && n2 == n1);  	CHECK_STRING(n2.value(), STR("foo")); -	CHECK_NODE(doc, STR("<node><child />foo</node>")); +	CHECK_NODE(doc, STR("<node><child/>foo</node>"));  	xml_node n3 = doc.child(STR("node")).child(STR("child")).append_move(doc.child(STR("node")).last_child());  	CHECK(n3 && n3 == n1 && n3 == n2); @@ -1378,7 +1378,7 @@ TEST_XML(dom_node_move_recursive, "<root><node>foo<child/></node></root>")  	CHECK(child.append_move(node) == xml_node()); -	CHECK_NODE(doc, STR("<root><node>foo<child /></node></root>")); +	CHECK_NODE(doc, STR("<root><node>foo<child/></node></root>"));  }  TEST_XML(dom_node_move_marker, "<node />") @@ -1388,7 +1388,7 @@ TEST_XML(dom_node_move_marker, "<node />")  	CHECK(doc.insert_move_before(node, node) == xml_node());  	CHECK(doc.insert_move_after(node, node) == xml_node()); -	CHECK_NODE(doc, STR("<node />")); +	CHECK_NODE(doc, STR("<node/>"));  }  TEST_XML(dom_node_move_crossdoc, "<node/>") @@ -1418,7 +1418,7 @@ TEST_XML(dom_node_move_tree, "<root><n1 a1='v1'><c1/>t1</n1><n2 a2='v2'><c2/>t2<  	// n2 n4 n1 + n3  	CHECK(n3 == doc.insert_move_after(n3, root)); -	CHECK_NODE(doc, STR("<root><n2 a2=\"v2\"><c2 />t2</n2><n4 a4=\"v4\"><c4 />t4</n4><n1 a1=\"v1\"><c1 />t1</n1></root><n3 a3=\"v3\"><c3 />t3</n3>")); +	CHECK_NODE(doc, STR("<root><n2 a2=\"v2\"><c2/>t2</n2><n4 a4=\"v4\"><c4/>t4</n4><n1 a1=\"v1\"><c1/>t1</n1></root><n3 a3=\"v3\"><c3/>t3</n3>"));  	CHECK(n1 == root.child(STR("n1")));  	CHECK(n2 == root.child(STR("n2"))); @@ -1454,7 +1454,7 @@ TEST(dom_node_copy_copyless)  	data += STR("<node>");  	for (int i = 0; i < 10000; ++i)  		data += STR("pcdata"); -	data += STR("<?name value?><child attr1=\"\" attr2=\"value2\" /></node>"); +	data += STR("<?name value?><child attr1=\"\" attr2=\"value2\"/></node>");  	std::basic_string<char_t> datacopy = data; @@ -1500,7 +1500,7 @@ TEST(dom_node_copy_copyless_mix)  	std::basic_string<char_t> dataxml;  	dataxml += STR("<node>");  	dataxml += data; -	dataxml += STR("<?name value?><copychild attr1=\"copyvalue1\" copyattr2=\"value2\" /></node>"); +	dataxml += STR("<?name value?><copychild attr1=\"copyvalue1\" copyattr2=\"value2\"/></node>");  	CHECK_NODE(copy, dataxml.c_str());  	CHECK_NODE(copy2, dataxml.c_str()); @@ -1511,23 +1511,23 @@ TEST_XML(dom_node_copy_copyless_taint, "<node attr=\"value\" />")  	xml_node node = doc.child(STR("node"));  	xml_node copy = doc.append_copy(node); -	CHECK_NODE(doc, STR("<node attr=\"value\" /><node attr=\"value\" />")); +	CHECK_NODE(doc, STR("<node attr=\"value\"/><node attr=\"value\"/>"));  	node.set_name(STR("nod1")); -	CHECK_NODE(doc, STR("<nod1 attr=\"value\" /><node attr=\"value\" />")); +	CHECK_NODE(doc, STR("<nod1 attr=\"value\"/><node attr=\"value\"/>"));  	xml_node copy2 = doc.append_copy(copy); -	CHECK_NODE(doc, STR("<nod1 attr=\"value\" /><node attr=\"value\" /><node attr=\"value\" />")); +	CHECK_NODE(doc, STR("<nod1 attr=\"value\"/><node attr=\"value\"/><node attr=\"value\"/>"));  	copy.attribute(STR("attr")).set_value(STR("valu2")); -	CHECK_NODE(doc, STR("<nod1 attr=\"value\" /><node attr=\"valu2\" /><node attr=\"value\" />")); +	CHECK_NODE(doc, STR("<nod1 attr=\"value\"/><node attr=\"valu2\"/><node attr=\"value\"/>"));  	copy2.attribute(STR("attr")).set_name(STR("att3")); -	CHECK_NODE(doc, STR("<nod1 attr=\"value\" /><node attr=\"valu2\" /><node att3=\"value\" />")); +	CHECK_NODE(doc, STR("<nod1 attr=\"value\"/><node attr=\"valu2\"/><node att3=\"value\"/>"));  }  TEST(dom_node_copy_attribute_copyless) @@ -1536,7 +1536,7 @@ TEST(dom_node_copy_attribute_copyless)  	data += STR("<node attr=\"");  	for (int i = 0; i < 10000; ++i)  		data += STR("data"); -	data += STR("\" />"); +	data += STR("\"/>");  	std::basic_string<char_t> datacopy = data; @@ -1571,21 +1571,21 @@ TEST_XML(dom_node_copy_attribute_copyless_taint, "<node attr=\"value\" />")  	xml_node copy2 = doc.append_child(STR("copy2"));  	xml_node copy3 = doc.append_child(STR("copy3")); -	CHECK_NODE(doc, STR("<node attr=\"value\" /><copy1 /><copy2 /><copy3 />")); +	CHECK_NODE(doc, STR("<node attr=\"value\"/><copy1/><copy2/><copy3/>"));  	copy1.append_copy(attr); -	CHECK_NODE(doc, STR("<node attr=\"value\" /><copy1 attr=\"value\" /><copy2 /><copy3 />")); +	CHECK_NODE(doc, STR("<node attr=\"value\"/><copy1 attr=\"value\"/><copy2/><copy3/>"));  	attr.set_name(STR("att1"));  	copy2.append_copy(attr); -	CHECK_NODE(doc, STR("<node att1=\"value\" /><copy1 attr=\"value\" /><copy2 att1=\"value\" /><copy3 />")); +	CHECK_NODE(doc, STR("<node att1=\"value\"/><copy1 attr=\"value\"/><copy2 att1=\"value\"/><copy3/>"));  	copy1.first_attribute().set_value(STR("valu2"));  	copy3.append_copy(copy1.first_attribute()); -	CHECK_NODE(doc, STR("<node att1=\"value\" /><copy1 attr=\"valu2\" /><copy2 att1=\"value\" /><copy3 attr=\"valu2\" />")); +	CHECK_NODE(doc, STR("<node att1=\"value\"/><copy1 attr=\"valu2\"/><copy2 att1=\"value\"/><copy3 attr=\"valu2\"/>"));  }  TEST_XML(dom_node_copy_out_of_memory_node, "<node><child1 /><child2 /><child3>text1<child4 />text2</child3></node>") diff --git a/tests/test_dom_text.cpp b/tests/test_dom_text.cpp index 7582460..8f62e49 100644 --- a/tests/test_dom_text.cpp +++ b/tests/test_dom_text.cpp @@ -403,16 +403,16 @@ TEST_XML(dom_text_middle, "<node><c1>notthisone</c1>text<c2/></node>")      CHECK_STRING(t.get(), STR("text"));      t.set(STR("notext")); -    CHECK_NODE(node, STR("<node><c1>notthisone</c1>notext<c2 /></node>")); +    CHECK_NODE(node, STR("<node><c1>notthisone</c1>notext<c2/></node>"));      CHECK(node.remove_child(t.data()));      CHECK(!t); -    CHECK_NODE(node, STR("<node><c1>notthisone</c1><c2 /></node>")); +    CHECK_NODE(node, STR("<node><c1>notthisone</c1><c2/></node>"));      t.set(STR("yestext"));      CHECK(t); -    CHECK_NODE(node, STR("<node><c1>notthisone</c1><c2 />yestext</node>")); +    CHECK_NODE(node, STR("<node><c1>notthisone</c1><c2/>yestext</node>"));      CHECK(t.data() == node.last_child());  } diff --git a/tests/test_parse.cpp b/tests/test_parse.cpp index bc40815..dc709a2 100644 --- a/tests/test_parse.cpp +++ b/tests/test_parse.cpp @@ -288,38 +288,38 @@ TEST(parse_ws_pcdata_permutations)      test_data_t test_data[] =      {          // external pcdata should be discarded (whitespace or not) -        {7, STR("ext1<node/>"), STR("<node />"), 2}, -        {7, STR("ext1<node/>ext2"), STR("<node />"), 2}, -        {7, STR(" <node/>"), STR("<node />"), 2}, -        {7, STR("<node/> "), STR("<node />"), 2}, -        {7, STR(" <node/> "), STR("<node />"), 2}, +        {7, STR("ext1<node/>"), STR("<node/>"), 2}, +        {7, STR("ext1<node/>ext2"), STR("<node/>"), 2}, +        {7, STR(" <node/>"), STR("<node/>"), 2}, +        {7, STR("<node/> "), STR("<node/>"), 2}, +        {7, STR(" <node/> "), STR("<node/>"), 2},          // inner pcdata should be preserved          {7, STR("<node>inner</node>"), STR("<node>inner</node>"), 3}, -        {7, STR("<node>inner1<child/>inner2</node>"), STR("<node>inner1<child />inner2</node>"), 5}, +        {7, STR("<node>inner1<child/>inner2</node>"), STR("<node>inner1<child/>inner2</node>"), 5},          {7, STR("<node>inner1<child>deep</child>inner2</node>"), STR("<node>inner1<child>deep</child>inner2</node>"), 6},          // empty pcdata nodes should never be created -        {7, STR("<node>inner1<child></child>inner2</node>"), STR("<node>inner1<child />inner2</node>"), 5}, -        {7, STR("<node><child></child>inner2</node>"), STR("<node><child />inner2</node>"), 4}, -        {7, STR("<node>inner1<child></child></node>"), STR("<node>inner1<child /></node>"), 4}, -        {7, STR("<node><child></child></node>"), STR("<node><child /></node>"), 3}, +        {7, STR("<node>inner1<child></child>inner2</node>"), STR("<node>inner1<child/>inner2</node>"), 5}, +        {7, STR("<node><child></child>inner2</node>"), STR("<node><child/>inner2</node>"), 4}, +        {7, STR("<node>inner1<child></child></node>"), STR("<node>inner1<child/></node>"), 4}, +        {7, STR("<node><child></child></node>"), STR("<node><child/></node>"), 3},          // comments, pi or other nodes should not cause pcdata creation either -        {7, STR("<node><!----><child><?pi?></child><![CDATA[x]]></node>"), STR("<node><child /><![CDATA[x]]></node>"), 4}, +        {7, STR("<node><!----><child><?pi?></child><![CDATA[x]]></node>"), STR("<node><child/><![CDATA[x]]></node>"), 4},          // leading/trailing pcdata whitespace should be preserved (note: this will change if parse_ws_pcdata_trim is introduced)          {7, STR("<node>\t \tinner1<child> deep   </child>\t\ninner2\n\t</node>"), STR("<node>\t \tinner1<child> deep   </child>\t\ninner2\n\t</node>"), 6},          // whitespace-only pcdata preservation depends on the parsing mode -        {1, STR("<node>\n\t<child>   </child>\n\t<child> <deep>  </deep> </child>\n\t<!---->\n\t</node>"), STR("<node><child /><child><deep /></child></node>"), 5}, +        {1, STR("<node>\n\t<child>   </child>\n\t<child> <deep>  </deep> </child>\n\t<!---->\n\t</node>"), STR("<node><child/><child><deep/></child></node>"), 5},          {2, STR("<node>\n\t<child>   </child>\n\t<child> <deep>  </deep> </child>\n\t<!---->\n\t</node>"), STR("<node>\n\t<child>   </child>\n\t<child> <deep>  </deep> </child>\n\t\n\t</node>"), 13},          {4, STR("<node>\n\t<child>   </child>\n\t<child> <deep>  </deep> </child>\n\t<!---->\n\t</node>"), STR("<node><child>   </child><child><deep>  </deep></child></node>"), 7},          // current implementation of parse_ws_pcdata_single has an unfortunate bug; reproduce it here          {4, STR("<node>\t\t<!---->\n\n</node>"), STR("<node>\n\n</node>"), 3},          // error case: terminate PCDATA in the middle          {7, STR("<node>abcdef"), STR("<node>abcdef</node>"), -3}, -        {5, STR("<node>      "), STR("<node />"), -2}, +        {5, STR("<node>      "), STR("<node/>"), -2},          {2, STR("<node>      "), STR("<node>      </node>"), -3},          // error case: terminate PCDATA as early as possible -        {7, STR("<node>"), STR("<node />"), -2}, +        {7, STR("<node>"), STR("<node/>"), -2},          {7, STR("<node>a"), STR("<node>a</node>"), -3}, -        {5, STR("<node> "), STR("<node />"), -2}, +        {5, STR("<node> "), STR("<node/>"), -2},          {2, STR("<node> "), STR("<node> </node>"), -3},      }; @@ -360,18 +360,18 @@ TEST(parse_ws_pcdata_fragment_permutations)          {7, STR("ext1"), STR("ext1"), 2},          {5, STR("    "), STR(""), 1},          {2, STR("    "), STR("    "), 2}, -        {7, STR("ext1<node/>"), STR("ext1<node />"), 3}, -        {7, STR("<node/>ext2"), STR("<node />ext2"), 3}, -        {7, STR("ext1<node/>ext2"), STR("ext1<node />ext2"), 4}, -        {7, STR("ext1<node1/>ext2<node2/>ext3"), STR("ext1<node1 />ext2<node2 />ext3"), 6}, -        {5, STR(" <node/>"), STR("<node />"), 2}, -        {2, STR(" <node/>"), STR(" <node />"), 3}, -        {5, STR("<node/> "), STR("<node />"), 2}, -        {2, STR("<node/> "), STR("<node /> "), 3}, -        {5, STR(" <node/> "), STR("<node />"), 2}, -        {2, STR(" <node/> "), STR(" <node /> "), 4}, -        {5, STR(" <node1/> <node2/> "), STR("<node1 /><node2 />"), 3}, -        {2, STR(" <node1/> <node2/> "), STR(" <node1 /> <node2 /> "), 6}, +        {7, STR("ext1<node/>"), STR("ext1<node/>"), 3}, +        {7, STR("<node/>ext2"), STR("<node/>ext2"), 3}, +        {7, STR("ext1<node/>ext2"), STR("ext1<node/>ext2"), 4}, +        {7, STR("ext1<node1/>ext2<node2/>ext3"), STR("ext1<node1/>ext2<node2/>ext3"), 6}, +        {5, STR(" <node/>"), STR("<node/>"), 2}, +        {2, STR(" <node/>"), STR(" <node/>"), 3}, +        {5, STR("<node/> "), STR("<node/>"), 2}, +        {2, STR("<node/> "), STR("<node/> "), 3}, +        {5, STR(" <node/> "), STR("<node/>"), 2}, +        {2, STR(" <node/> "), STR(" <node/> "), 4}, +        {5, STR(" <node1/> <node2/> "), STR("<node1/><node2/>"), 3}, +        {2, STR(" <node1/> <node2/> "), STR(" <node1/> <node2/> "), 6},      };      for (size_t i = 0; i < sizeof(test_data) / sizeof(test_data[0]); ++i) @@ -750,14 +750,14 @@ TEST(parse_tag_single)  {  	xml_document doc;  	CHECK(doc.load_string(STR("<node/><node /><node\n/>"), parse_minimal)); -	CHECK_NODE(doc, STR("<node /><node /><node />")); +	CHECK_NODE(doc, STR("<node/><node/><node/>"));  }  TEST(parse_tag_hierarchy)  {  	xml_document doc;  	CHECK(doc.load_string(STR("<node><n1><n2/></n1><n3><n4><n5></n5></n4></n3 \r\n></node>"), parse_minimal)); -	CHECK_NODE(doc, STR("<node><n1><n2 /></n1><n3><n4><n5 /></n4></n3></node>")); +	CHECK_NODE(doc, STR("<node><n1><n2/></n1><n3><n4><n5/></n4></n3></node>"));  }  TEST(parse_tag_error) @@ -894,7 +894,7 @@ TEST(parse_out_of_memory_halfway_node)  	xml_document doc;  	CHECK_ALLOC_FAIL(CHECK(doc.load_buffer_inplace(text, count * 4).status == status_out_of_memory)); -	CHECK_NODE(doc.first_child(), STR("<n />")); +	CHECK_NODE(doc.first_child(), STR("<n/>"));  }  TEST(parse_out_of_memory_halfway_attr) @@ -952,7 +952,7 @@ TEST(parse_out_of_memory_allocator_state_sync)  	xml_document doc;  	CHECK_ALLOC_FAIL(CHECK(doc.load_buffer_inplace(text, count * 4).status == status_out_of_memory)); -	CHECK_NODE(doc.first_child(), STR("<n />")); +	CHECK_NODE(doc.first_child(), STR("<n/>"));  	test_runner::_memory_fail_threshold = 0; @@ -1177,7 +1177,7 @@ TEST(parse_embed_pcdata)  		CHECK_XPATH_NUMBER(doc, STR("count(node/child/*[starts-with(., 'value')])"), 2);  	#endif -		CHECK_NODE(doc, STR("<node><key>value</key><child><inner1>value1</inner1><inner2>value2</inner2>outer</child><two>text<data /></two></node>")); +		CHECK_NODE(doc, STR("<node><key>value</key><child><inner1>value1</inner1><inner2>value2</inner2>outer</child><two>text<data/></two></node>"));  		CHECK_NODE_EX(doc, STR("<node>\n<key>value</key>\n<child>\n<inner1>value1</inner1>\n<inner2>value2</inner2>outer</child>\n<two>text<data />\n</two>\n</node>\n"), STR("\t"), 0);  		CHECK_NODE_EX(doc, STR("<node>\n\t<key>value</key>\n\t<child>\n\t\t<inner1>value1</inner1>\n\t\t<inner2>value2</inner2>outer</child>\n\t<two>text<data />\n\t</two>\n</node>\n"), STR("\t"), format_indent);  	} diff --git a/tests/test_parse_doctype.cpp b/tests/test_parse_doctype.cpp index 901890c..e32af8e 100644 --- a/tests/test_parse_doctype.cpp +++ b/tests/test_parse_doctype.cpp @@ -36,9 +36,9 @@ static bool test_doctype_wf(const char_t* decl)  	if (!load_concat(doc, STR("a"), decl, STR("b")) || !test_node(doc, STR("ab"), STR(""), format_raw)) return false;  	// node pre/postfix -	if (!load_concat(doc, STR("<nodea/>"), decl) || !test_node(doc, STR("<nodea />"), STR(""), format_raw)) return false; -	if (!load_concat(doc, decl, STR("<nodeb/>")) || !test_node(doc, STR("<nodeb />"), STR(""), format_raw)) return false; -	if (!load_concat(doc, STR("<nodea/>"), decl, STR("<nodeb/>")) || !test_node(doc, STR("<nodea /><nodeb />"), STR(""), format_raw)) return false; +	if (!load_concat(doc, STR("<nodea/>"), decl) || !test_node(doc, STR("<nodea/>"), STR(""), format_raw)) return false; +	if (!load_concat(doc, decl, STR("<nodeb/>")) || !test_node(doc, STR("<nodeb/>"), STR(""), format_raw)) return false; +	if (!load_concat(doc, STR("<nodea/>"), decl, STR("<nodeb/>")) || !test_node(doc, STR("<nodea/><nodeb/>"), STR(""), format_raw)) return false;      // check load-store contents preservation      CHECK(doc.load_string(decl, parse_doctype | parse_fragment)); diff --git a/tests/test_write.cpp b/tests/test_write.cpp index df7b0b1..341a4f0 100644 --- a/tests/test_write.cpp +++ b/tests/test_write.cpp @@ -192,12 +192,12 @@ TEST_XML(write_escape_unicode, "<node attr='㰀'/>")  {  #ifdef PUGIXML_WCHAR_MODE  	#ifdef U_LITERALS -		CHECK_NODE(doc, STR("<node attr=\"\u3c00\" />")); +		CHECK_NODE(doc, STR("<node attr=\"\u3c00\"/>"));  	#else -		CHECK_NODE(doc, STR("<node attr=\"\x3c00\" />")); +		CHECK_NODE(doc, STR("<node attr=\"\x3c00\"/>"));  	#endif  #else -	CHECK_NODE(doc, STR("<node attr=\"\xe3\xb0\x80\" />")); +	CHECK_NODE(doc, STR("<node attr=\"\xe3\xb0\x80\"/>"));  #endif  } @@ -473,7 +473,7 @@ TEST(write_no_name_element)  	root.append_child();  	root.append_child().append_child(node_pcdata).set_value(STR("text")); -	CHECK_NODE(doc, STR("<:anonymous><:anonymous /><:anonymous>text</:anonymous></:anonymous>")); +	CHECK_NODE(doc, STR("<:anonymous><:anonymous/><:anonymous>text</:anonymous></:anonymous>"));  	CHECK_NODE_EX(doc, STR("<:anonymous>\n\t<:anonymous />\n\t<:anonymous>text</:anonymous>\n</:anonymous>\n"), STR("\t"), format_default);  } @@ -491,7 +491,7 @@ TEST(write_no_name_attribute)  	doc.append_child().set_name(STR("root"));  	doc.child(STR("root")).append_attribute(STR("")); -	CHECK_NODE(doc, STR("<root :anonymous=\"\" />")); +	CHECK_NODE(doc, STR("<root :anonymous=\"\"/>"));  }  TEST(write_print_empty) @@ -596,7 +596,7 @@ TEST(write_pcdata_whitespace_fixedpoint)  TEST_XML_FLAGS(write_mixed, "<node><child1/><child2>pre<![CDATA[data]]>mid<!--comment--><test/>post<?pi value?>fin</child2><child3/></node>", parse_full)  { -	CHECK_NODE(doc, STR("<node><child1 /><child2>pre<![CDATA[data]]>mid<!--comment--><test />post<?pi value?>fin</child2><child3 /></node>")); +	CHECK_NODE(doc, STR("<node><child1/><child2>pre<![CDATA[data]]>mid<!--comment--><test/>post<?pi value?>fin</child2><child3/></node>"));  	CHECK_NODE_EX(doc, STR("<node>\n<child1 />\n<child2>pre<![CDATA[data]]>mid<!--comment-->\n<test />post<?pi value?>fin</child2>\n<child3 />\n</node>\n"), STR("\t"), 0);  	CHECK_NODE_EX(doc, STR("<node>\n\t<child1 />\n\t<child2>pre<![CDATA[data]]>mid<!--comment-->\n\t\t<test />post<?pi value?>fin</child2>\n\t<child3 />\n</node>\n"), STR("\t"), format_indent);  } | 
