aboutsummaryrefslogtreecommitdiffstats
path: root/test/test_reader_writer.c
AgeCommit message (Collapse)AuthorFilesLines
2023-12-02Use SerdNodes to simplify some testsDavid Robillard1-33/+27
2023-12-02Make blank node prefixing automaticDavid Robillard1-14/+0
Though potentially useful, I don't think the complexity cost of the old interface (both to the implementation and to the user) is worth it. A special tool to transform blank node labels (for example with regular expressions) would be a better approach to this if it's ever needed in the future.
2023-12-02[WIP] Generalize node construction APIDavid Robillard1-11/+12
2023-12-02Add support for custom allocatorsDavid Robillard1-32/+34
This makes it explicit in the API where memory is allocated, and allows the user to provide a custom allocator to avoid the use of the default system allocator for whatever reason.
2023-12-02[WIP] Expand URIs in readerDavid Robillard1-1/+1
This expands relative and prefixed URIs in the reader on the stack, rather than passing them to the caller to be dealt with. This pushes these context-full forms to the edge of the system as much as possible to minimise the headaches they can cause. Towards having stricter guarantees about nodes and eliminating the CURIE node type altogether.
2023-12-02[WIP] Move SerdEnv mutation from writer to readerDavid Robillard1-3/+8
Writing having side-effects seems questionable in general, and this prepares things for expanding URIs in the reader.
2023-12-02[WIP] Preserve long or short quoting from input documentsDavid Robillard1-2/+5
2023-12-02Simplify output stream APIDavid Robillard1-15/+19
2023-12-02Simplify input stream APIDavid Robillard1-9/+11
2023-12-02Make SerdBuffer an output streamDavid Robillard1-2/+3
2023-12-02Use portable zix filesystem API in testsDavid Robillard1-24/+14
2023-12-02Replace serd_reader_set_strict() with SerdReaderFlagsDavid Robillard1-5/+5
2023-12-02Split out simple reader unit testsDavid Robillard1-317/+3
2023-12-02Reduce complexity of statement writing functionsDavid Robillard1-1/+1
2023-12-02Add a set of limits to the worldDavid Robillard1-8/+14
The idea here is to remove the burden of passing things around like stack sizes (where most users don't care and will be happy with a reasonably large default) and keeping the call sites to things like serd_reader_new() clean. The cost is a bit more state, so it's both more powerful and more potentially flaky, since changing the limits has action at a distance that isn't clear from the call site. I think it's worth it for the cleaner API in the common case, and the much better forward compatibility.
2023-12-02Replace SERD_WRITE_STRICT flag with SERD_WRITE_LAXDavid Robillard1-6/+5
The unset value for flags should represent the best default, which in this case is strict parsing. Lax parsing is the riskier opt-in option.
2023-12-02Replace multiple stream callbacks with SerdEventDavid Robillard1-129/+87
This makes plumbing easier since everything goes through the same "stream" and only one callback is required to handling everything. It's also more easily extensible in case more event types need to be added in the future.
2023-12-02Simplify writer style options and write UTF-8 by defaultDavid Robillard1-2/+1
2023-12-02Add SerdStatementDavid Robillard1-10/+4
2023-12-02Add SerdCaretDavid Robillard1-2/+3
2023-12-02Remove serd_reader_set_default_graph()David Robillard1-14/+7
2023-12-02Add SerdWorld for shared library stateDavid Robillard1-27/+31
2023-12-02Clean up nodes in reader/writer testsDavid Robillard1-12/+20
2023-12-02Use a fixed-size reader stackDavid Robillard1-8/+12
2023-12-02Simplify reader interfaceDavid Robillard1-32/+38
2023-12-02Add SerdSink interface and hide implementationsDavid Robillard1-56/+53
2023-12-02Bring read/write interface closer to the C standardDavid Robillard1-7/+14
2023-12-02Simplify literal construction APIDavid Robillard1-3/+2
2023-12-02Simplify node construction APIDavid Robillard1-23/+32
2023-12-02Merge datatype/language into nodeDavid Robillard1-43/+15
This moves closer to the sord API, and is more convenient in most cases.
2023-12-02Make nodes opaqueDavid Robillard1-59/+48
2023-12-02Use more human-readable status codesDavid Robillard1-1/+1
2023-12-02Split up public API headerDavid Robillard1-1/+12
2023-12-02Remove "get" from accessor namesDavid Robillard1-5/+5
2023-12-02Rename function types for consistencyDavid Robillard1-4/+4
2023-12-02Rename SerdStyle to SerdWriterFlagsDavid Robillard1-7/+8
2023-12-02Add SerdBuffer type for mutable buffersDavid Robillard1-11/+11
This avoids const violations from abusing SerdChunk as a mutable buffer for string sinks.
2023-12-02Use char* for strings in public APIDavid Robillard1-31/+29
The constant casting just makes user code a mess, for no benefit.
2023-05-03Make serd_reader_read_chunk() work with NQuadsDavid Robillard1-7/+101
2023-04-16Gracefully handle errors when writing textDavid Robillard1-0/+97
2023-04-02Improve TriG pretty-printing and remove trailing newlinesDavid Robillard1-2/+2
2022-11-25Avoid use of tmpfile()David Robillard1-28/+35
Somewhat temporary solution, since we'll soon be able to use zix here which has nice portable functions to create temporary files.
2022-11-25Avoid creating test files in the current directoryDavid Robillard1-1/+21
2022-11-25Merge similar testsDavid Robillard1-33/+119
2022-11-24Check serd_writer_write_statement() return valueDavid Robillard1-2/+2
2022-10-23Fix crash when trying to read chunks without startingDavid Robillard1-0/+2
2022-08-31Adopt REUSE machine-readable licensing standardDavid Robillard1-15/+2
2021-07-10Fix out of bounds read in testDavid Robillard1-0/+4
2021-07-10Clean up socket-like stream reading testDavid Robillard1-5/+17
2021-04-09Write statements with invalid URI characters in lax modeDavid Robillard1-0/+1