- Apr 14, 2015
-
-
Arseny Kapoulkine authored
-
Arseny Kapoulkine authored
End of an era. Make can be used for regular development (Linux/OSX), documentation building and release packaging. CMake can be used for regular development (Windows); it's also used by some Linux distributions. Continuous integration is now performed by Travis CI and AppVeyor.
-
Arseny Kapoulkine authored
-
- Apr 13, 2015
-
-
Arseny Kapoulkine authored
Also fix test in wchar_t mode.
-
Arseny Kapoulkine authored
Ensure that all the necessary cleanup is performed in case the allocation fails with an exception - files are closed, buffers are reclaimed, etc. Any test that triggers a simulated out-of-memory condition is ran once again with a throwing allocation function. Unobserved std::bad_alloc count as test failures and require CHECK_ALLOC_FAIL macro. Fixes #17.
-
Arseny Kapoulkine authored
Also add tests that verify save_file for absence of FILE leaks.
-
- Apr 12, 2015
-
-
Arseny Kapoulkine authored
-
Arseny Kapoulkine authored
Previously attributes that were copied with their node used string sharing, but standalone attributes that were copied using xml_node::*_copy(xml_attribute) were not.
-
Arseny Kapoulkine authored
If an out of memory error happens in load_file there's a danger of leaking the FILE object. Since there is a limited supply of the objects we can easily test that the leak does not happen.
-
Arseny Kapoulkine authored
-
Arseny Kapoulkine authored
-
Arseny Kapoulkine authored
Previously there was no guarantee that the tests that check for out of memory handling behavior are actually correct - e.g. that they correctly simulate out of memory conditions. Now every simulated out of memory condition has to be "guarded" using CHECK_ALLOC_FAIL. It makes sure that every piece of code that is supposed to cause out-of-memory does so, and that no other code runs out of memory unnoticed.
-
Arseny Kapoulkine authored
We currently don't allocate/modify any state so there are no issues with this.
-
Arseny Kapoulkine authored
When parsing XPath variables, we need to perform a heap allocation; if it fails, an xpath_exception instead of bad_alloc used to be thrown. Now we throw the exception of a correct type so that xpath_exception means 'parsing error'.
-
- Apr 11, 2015
-
-
Arseny Kapoulkine authored
-
Arseny Kapoulkine authored
This provides more coverage for #17.
-
Arseny Kapoulkine authored
Base directory is now using target basename.
-
- Mar 22, 2015
-
-
Arseny Kapoulkine authored
-
- Mar 21, 2015
-
-
Arseny Kapoulkine authored
Disable/change some tests for some compilers; use binary float comparison for early MSVC versions.
-
Arseny Kapoulkine authored
Rename PAGE_SIZE to page_size to avoid define conflict with Android SDK. Minor fixes in several tests.
-
- Mar 19, 2015
-
-
Arseny Kapoulkine authored
-
Arseny Kapoulkine authored
-
- Mar 18, 2015
-
-
Arseny Kapoulkine authored
Previously we omitted extra whitespace for single PCDATA/CDATA children, but in mixed content there was extra indentation before/after text nodes. One of the problems with that is that the text that you saved is not exactly the same as the parsing result using default flags (parse_trim_pcdata helps). Another problem is that parse-format cycles do not have a fixed point for mixed content - the result expands indefinitely. Some XML libraries, like Python minidom, have the same issue, but this is definitely a problem. Pretty-printing mixed content is hard. It seems that the only other sensible choice is to switch mixed content nodes to raw formatting. In a way the code in this change is a weaker version of that - it removes indentation around text nodes but still keeps it around element siblings/children. Thus we can switch to mixed-raw formatting at some point later, which will be a superset of the current behavior. To do this we have to either switch at the first text node (.NET XmlDocument does that), or scan the children of each element for a possible text node and switch before we output the first child. The former behavior seems non-intuitive (and a bit broken); unfortunately, the latter behavior can cost up to 20% of the output time for trees *without* mixed content. Fixes #13.
-
- Mar 14, 2015
-
-
Arseny Kapoulkine authored
data/truncation.xml was corrupted at some point and was not actually valid. Fix the file and make the test fail if we can't parse truncation.xml at all.
-
- Mar 13, 2015
-
-
Arseny Kapoulkine authored
With the current setup it successfully finds the (fixed) DOCTYPE buffer overrun in ~50 minutes (on a single core).
-
Arseny Kapoulkine authored
-
- Mar 10, 2015
-
-
Arseny Kapoulkine authored
This prevents malformed PI value from breaking the document structure.
-
- Mar 05, 2015
-
-
Arseny Kapoulkine authored
Remove size=0 test since a better test is already there.
-
Arseny Kapoulkine authored
Also change the error code to status_io_error
-
- Mar 04, 2015
-
-
Arseny Kapoulkine authored
Also add new tests for translate. These are technically redundant since other tests would catch the bug with the fixed comparison, but more tests is better.
-
- Mar 02, 2015
-
-
Arseny Kapoulkine authored
Align allocations to right end of page boundary to catch buffer overruns, instead of unmapping on deallocations mark the page as no-access to guarantee a page fault on use-after-free.
-
- Feb 12, 2015
-
-
Arseny Kapoulkine authored
-
Arseny Kapoulkine authored
This prevents malformed input XML with very deeply recursive DOCTYPE sections from crashing the parser. Fixes #29.
-
- Jan 24, 2015
-
-
Arseny Kapoulkine authored
The current code is not optimal; since users actually read samples/tests change them to use faster (and shorter!) code.
-
- Jan 18, 2015
-
-
Arseny Kapoulkine authored
Also include math.h to fix issues on some compilers.
-
Arseny Kapoulkine authored
-
- Jan 17, 2015
-
-
Arseny Kapoulkine authored
We test min/max and several different mantissas for the entire exponent range for both float and double. It's not clear whether all supported compilers provide an implementation of sprintf/strtod that supports roundtripping so we may need to disable some of these tests in the future.
-
Arseny Kapoulkine authored
These only do basic testing to make sure the paths are covered and trivial values work.
-
Steve Doiel authored
-
- Jan 10, 2015
-
-
Arseny Kapoulkine authored
It's sufficient to define PUGIXML_HEADER_ONLY anywhere now, source is included automatically. This is a second attempt; this time it includes a workaround for QMake bug that caused it to generate incorrect Makefile.
-