<feed xmlns='http://www.w3.org/2005/Atom'>
<title>libplist/test, branch master</title>
<subtitle>Library to handle Apple Property List format files in binary or XML</subtitle>
<link rel='alternate' type='text/html' href='https://cgit.libimobiledevice.org/libplist.git/'/>
<entry>
<title>xplist: Enforce single root value inside &lt;plist&gt;</title>
<updated>2026-02-25T01:27:00+00:00</updated>
<author>
<name>Sami Kortelainen</name>
</author>
<published>2026-02-25T01:27:00+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.libimobiledevice.org/libplist.git/commit/?id=6e03a1df6d1aa87c8f9e2b35f1a2ca60feca1c0e'/>
<id>6e03a1df6d1aa87c8f9e2b35f1a2ca60feca1c0e</id>
<content type='text'>
Ensure that XML property lists contain exactly one root value inside the &lt;plist&gt; element and reject any additional value nodes before &lt;/plist&gt;.

Add tests covering root value handling and nested CF$UID conversion behavior.

Co-authored-by: Sami Kortelainen &lt;sami.kortelainen@piceasoft.com&gt;
Co-authored-by: Nikias Bassen &lt;nikias@gmx.li&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Ensure that XML property lists contain exactly one root value inside the &lt;plist&gt; element and reject any additional value nodes before &lt;/plist&gt;.

Add tests covering root value handling and nested CF$UID conversion behavior.

Co-authored-by: Sami Kortelainen &lt;sami.kortelainen@piceasoft.com&gt;
Co-authored-by: Nikias Bassen &lt;nikias@gmx.li&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>xplist: Improve robustness of XML text parsing and value conversion</title>
<updated>2026-01-29T16:45:01+00:00</updated>
<author>
<name>Nikias Bassen</name>
</author>
<published>2026-01-29T16:45:01+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.libimobiledevice.org/libplist.git/commit/?id=b7f09ccdddc75d82ccaed867eb60e6997a7cad40'/>
<id>b7f09ccdddc75d82ccaed867eb60e6997a7cad40</id>
<content type='text'>
This change adds stricter validation for numeric and date nodes,
including full-input consumption, overflow/range checks, and rejection
of invalid floating-point values. Whitespace handling is clarified by
explicitly trimming trailing XML whitespace for value nodes.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This change adds stricter validation for numeric and date nodes,
including full-input consumption, overflow/range checks, and rejection
of invalid floating-point values. Whitespace handling is clarified by
explicitly trimming trailing XML whitespace for value nodes.
</pre>
</div>
</content>
</entry>
<entry>
<title>test: Fix ostep-invalid-types test case</title>
<updated>2025-12-05T20:33:24+00:00</updated>
<author>
<name>Nikias Bassen</name>
</author>
<published>2025-12-05T20:33:24+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.libimobiledevice.org/libplist.git/commit/?id=b32b370d8d44fa7cc9d3478b9e19f3abaa43d3c2'/>
<id>b32b370d8d44fa7cc9d3478b9e19f3abaa43d3c2</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>test: fix operator error</title>
<updated>2025-11-20T03:01:58+00:00</updated>
<author>
<name>Ankur Tyagi</name>
</author>
<published>2025-11-20T03:01:58+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.libimobiledevice.org/libplist.git/commit/?id=18e5b22a71f85091127cc063db79c8df687c582c'/>
<id>18e5b22a71f85091127cc063db79c8df687c582c</id>
<content type='text'>
Otherwise test fail with error [: -neq: binary operator expected

Signed-off-by: Ankur Tyagi &lt;ankur.tyagi85@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Otherwise test fail with error [: -neq: binary operator expected

Signed-off-by: Ankur Tyagi &lt;ankur.tyagi85@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>test: use unique output file names across tests</title>
<updated>2023-10-03T09:41:32+00:00</updated>
<author>
<name>Sergei Trofimovich</name>
</author>
<published>2023-10-03T09:41:32+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.libimobiledevice.org/libplist.git/commit/?id=2cd858c679d25633077ca78b67182a9b77653816'/>
<id>2cd858c679d25633077ca78b67182a9b77653816</id>
<content type='text'>
Without the change tests ran in parallel occasionally clobber outputs of
one another and fail as:

    $ make check -j16 VERBOSE=y
    ...
    FAIL: huge
    ==========
    Converting
    File ../test/data/5.plist is open
    PList XML parsing succeeded
    PList BIN writing succeeded
    PList BIN parsing succeeded
    PList XML writing succeeded
    Size of input and output is different
    Input size : 4292380
    Output size : 4305301
    Comparing
    PList parsing failed
    FAIL huge.test (exit status: 3)

Closes: https://github.com/libimobiledevice/libplist/issues/234#issuecomment-1743820556
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Without the change tests ran in parallel occasionally clobber outputs of
one another and fail as:

    $ make check -j16 VERBOSE=y
    ...
    FAIL: huge
    ==========
    Converting
    File ../test/data/5.plist is open
    PList XML parsing succeeded
    PList BIN writing succeeded
    PList BIN parsing succeeded
    PList XML writing succeeded
    Size of input and output is different
    Input size : 4292380
    Output size : 4305301
    Comparing
    PList parsing failed
    FAIL huge.test (exit status: 3)

Closes: https://github.com/libimobiledevice/libplist/issues/234#issuecomment-1743820556
</pre>
</div>
</content>
</entry>
<entry>
<title>test: Fix tests for distcheck</title>
<updated>2023-04-21T14:04:40+00:00</updated>
<author>
<name>Nikias Bassen</name>
</author>
<published>2023-04-21T14:04:40+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.libimobiledevice.org/libplist.git/commit/?id=bddb061bd64692b3d1287064f8991c8c276528b6'/>
<id>bddb061bd64692b3d1287064f8991c8c276528b6</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix build</title>
<updated>2023-04-21T10:51:28+00:00</updated>
<author>
<name>Nikias Bassen</name>
</author>
<published>2023-04-21T10:51:28+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.libimobiledevice.org/libplist.git/commit/?id=6e65e1bfb487a893a4d8dbd2a812686677ad784d'/>
<id>6e65e1bfb487a893a4d8dbd2a812686677ad784d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add C++ interface test</title>
<updated>2023-04-21T10:40:18+00:00</updated>
<author>
<name>Sébastien Gonzalve</name>
</author>
<published>2023-04-21T10:40:18+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.libimobiledevice.org/libplist.git/commit/?id=25ace1e8cb7f9a464c29dd2ce80cd68104d54f84'/>
<id>25ace1e8cb7f9a464c29dd2ce80cd68104d54f84</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add plist_read_from_file() to interface, update plist_from_memory()</title>
<updated>2023-04-19T15:49:07+00:00</updated>
<author>
<name>Nikias Bassen</name>
</author>
<published>2023-04-19T15:49:07+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.libimobiledevice.org/libplist.git/commit/?id=ce9ce43efd707a85cc792ff2cc417603a53d4d1d'/>
<id>ce9ce43efd707a85cc792ff2cc417603a53d4d1d</id>
<content type='text'>
plist_read_from_file() is a convenience function that will open a
given file, checks its size, allocates a buffer large enough to
hold the full contents, and reads from file to fill the buffer.
Then, it calls plist_from_memory() to convert the data to plist
format.
A (breaking) change had to be made so that plist_from_memory() will
also return the parsed format in its 4th argument (if non-NULL).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
plist_read_from_file() is a convenience function that will open a
given file, checks its size, allocates a buffer large enough to
hold the full contents, and reads from file to fill the buffer.
Then, it calls plist_from_memory() to convert the data to plist
format.
A (breaking) change had to be made so that plist_from_memory() will
also return the parsed format in its 4th argument (if non-NULL).
</pre>
</div>
</content>
</entry>
<entry>
<title>libcnary: Updated typedefs of node_t and node_list_t to contain pointer</title>
<updated>2023-02-06T17:28:28+00:00</updated>
<author>
<name>Nikias Bassen</name>
</author>
<published>2023-02-06T17:28:28+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.libimobiledevice.org/libplist.git/commit/?id=d3908006349f38bcfc0151daebd98b6873a2dbfc'/>
<id>d3908006349f38bcfc0151daebd98b6873a2dbfc</id>
<content type='text'>
This makes the code more readable. Obviously all the code that uses it
is also updated.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This makes the code more readable. Obviously all the code that uses it
is also updated.
</pre>
</div>
</content>
</entry>
</feed>
