summaryrefslogtreecommitdiff
path: root/tests/test_parse.cpp
AgeCommit message (Collapse)Author
2014-02-23Fix gap collapsing during PCDATA parsing for fragment mode.Arseny Kapoulkine
git-svn-id: https://pugixml.googlecode.com/svn/trunk@985 99668b35-9821-0410-8761-19e4c4f06640
2014-02-11Implement document fragment parsing.Arseny Kapoulkine
Introduce a notable behavior change in default parsing mode: documents without a document element node are now considered invalid. This is technically a breaking change, however the amount of documents it affects is very small, all parsed data still persists, and lack of this check results in very confusing behavior in a number of cases. In order to be able to parse documents without an element node, a fragment parsing flag is introduced. Parsing a buffer in fragment mode treats the buffer as a fragment of a valid XML. As a consequence, top-level PCDATA is added to the tree; additionally, there are no restrictions on the number of nodes -- so documents without a document element are considered valid. Due to the way parsing works internally, load_buffer_inplace occasionally can not preserve the document contents if it's parsed in a fragment mode. While unfortunate, this problem is fundamental; since the use case is relatively obscure, hopefully documenting this shortcoming will be enough. git-svn-id: https://pugixml.googlecode.com/svn/trunk@980 99668b35-9821-0410-8761-19e4c4f06640
2014-02-10Use a null-terminated buffer for parsing as often as possible.Arseny Kapoulkine
Parsing used to work on a non null-terminated buffer, inserting a fake null terminator to increase performance. This makes it impossible to implement fragment parsing that preserves PCDATA contents (as witnessed by some tests for boundary conditions that actually depended on this behavior). Since almost all uses result in us allocating an internal buffer anyway, the new policy is to make sure all buffers that are allocated by pugixml are null-terminated - the only exception now is external calls to load_buffer_inplace that don't trigger encoding conversion. git-svn-id: https://pugixml.googlecode.com/svn/trunk@977 99668b35-9821-0410-8761-19e4c4f06640
2012-03-06tests: Fixed compilation errors for BadaSDKarseny.kapoulkine@gmail.com
git-svn-id: http://pugixml.googlecode.com/svn/trunk@839 99668b35-9821-0410-8761-19e4c4f06640
2011-12-09Introduced parse_ws_pcdata_single flag: only parses whitespace-only PCDATA ↵arseny.kapoulkine
if it's the only child of the parent node (middle ground between default flags and parse_ws_pcdata) git-svn-id: http://pugixml.googlecode.com/svn/trunk@825 99668b35-9821-0410-8761-19e4c4f06640
2010-09-20tests: Improved tests for parsing result default constructionarseny.kapoulkine
git-svn-id: http://pugixml.googlecode.com/svn/trunk@739 99668b35-9821-0410-8761-19e4c4f06640
2010-09-20tests: Added default ctor testarseny.kapoulkine
git-svn-id: http://pugixml.googlecode.com/svn/trunk@737 99668b35-9821-0410-8761-19e4c4f06640
2010-08-04tests: Added even more tests for better code coveragearseny.kapoulkine
git-svn-id: http://pugixml.googlecode.com/svn/trunk@627 99668b35-9821-0410-8761-19e4c4f06640
2010-08-04tests: Added more tests for better code coveragearseny.kapoulkine
git-svn-id: http://pugixml.googlecode.com/svn/trunk@626 99668b35-9821-0410-8761-19e4c4f06640
2010-08-03tests: Preparations for custom new/delete (leak detection)arseny.kapoulkine
git-svn-id: http://pugixml.googlecode.com/svn/trunk@620 99668b35-9821-0410-8761-19e4c4f06640
2010-07-19Set svn:eol-style to native for all text filesarseny.kapoulkine
git-svn-id: http://pugixml.googlecode.com/svn/trunk@607 99668b35-9821-0410-8761-19e4c4f06640
2010-07-01parse_wnorm_attribute is no longer deprecated (it's part of W3C ↵arseny.kapoulkine
recommendations, after all) git-svn-id: http://pugixml.googlecode.com/svn/trunk@557 99668b35-9821-0410-8761-19e4c4f06640
2010-06-13tests: Added tests for parsing offset valuesarseny.kapoulkine
git-svn-id: http://pugixml.googlecode.com/svn/trunk@521 99668b35-9821-0410-8761-19e4c4f06640
2010-06-13Internal XML parsing error handling is done via setjmp/longjmp, all ↵arseny.kapoulkine
allocation errors are now handled correctly (parser returns status_out_of_memory, modification functions return errors); added tests for some out of memory situations git-svn-id: http://pugixml.googlecode.com/svn/trunk@520 99668b35-9821-0410-8761-19e4c4f06640
2010-06-12tests: Added non top-level declaration testarseny.kapoulkine
git-svn-id: http://pugixml.googlecode.com/svn/trunk@516 99668b35-9821-0410-8761-19e4c4f06640
2010-06-11tests: Fixed PI testarseny.kapoulkine
git-svn-id: http://pugixml.googlecode.com/svn/trunk@514 99668b35-9821-0410-8761-19e4c4f06640
2010-06-11tests: Added more (failing) declaration/PI testsarseny.kapoulkine
git-svn-id: http://pugixml.googlecode.com/svn/trunk@513 99668b35-9821-0410-8761-19e4c4f06640
2010-06-11Rewritten numeric character reference parsing (fixed &#; and &#x; parsing), ↵arseny.kapoulkine
added more character reference tests git-svn-id: http://pugixml.googlecode.com/svn/trunk@512 99668b35-9821-0410-8761-19e4c4f06640
2010-06-04Optimized attribute parsing; behavior of parse_wconv changed, it now assumes ↵arseny.kapoulkine
that parse_eol is set git-svn-id: http://pugixml.googlecode.com/svn/trunk@503 99668b35-9821-0410-8761-19e4c4f06640
2010-05-22tests: Minor addition to PI parsing testsarseny.kapoulkine
git-svn-id: http://pugixml.googlecode.com/svn/trunk@442 99668b35-9821-0410-8761-19e4c4f06640
2010-05-10Implemented better DOCTYPE parsing, added more DOCTYPE testsarseny.kapoulkine
git-svn-id: http://pugixml.googlecode.com/svn/trunk@409 99668b35-9821-0410-8761-19e4c4f06640
2010-05-08Deprecated all wildcard functions and parse_wnorm_attributearseny.kapoulkine
git-svn-id: http://pugixml.googlecode.com/svn/trunk@389 99668b35-9821-0410-8761-19e4c4f06640
2010-05-06Integrated changes from unicode branch to trunkarseny.kapoulkine
git-svn-id: http://pugixml.googlecode.com/svn/trunk@383 99668b35-9821-0410-8761-19e4c4f06640
2009-10-21tests: Added more escape error testsarseny.kapoulkine
git-svn-id: http://pugixml.googlecode.com/svn/trunk@169 99668b35-9821-0410-8761-19e4c4f06640
2009-10-20tests: Added wildcard and doctype testsarseny.kapoulkine
git-svn-id: http://pugixml.googlecode.com/svn/trunk@163 99668b35-9821-0410-8761-19e4c4f06640
2009-10-20tests: Added more testsarseny.kapoulkine
git-svn-id: http://pugixml.googlecode.com/svn/trunk@162 99668b35-9821-0410-8761-19e4c4f06640
2009-10-20tests: More coveragearseny.kapoulkine
git-svn-id: http://pugixml.googlecode.com/svn/trunk@158 99668b35-9821-0410-8761-19e4c4f06640
2009-10-20tests: Added declaration and document load/load_file error testsarseny.kapoulkine
git-svn-id: http://pugixml.googlecode.com/svn/trunk@157 99668b35-9821-0410-8761-19e4c4f06640
2009-10-20tests: Added parsing testsarseny.kapoulkine
git-svn-id: http://pugixml.googlecode.com/svn/trunk@156 99668b35-9821-0410-8761-19e4c4f06640