Go to file
Corey Farrell 73c22de516 Improve test coverage.
* Test equality of different length strings.
* Add tab to json_pack whitespace test.
* Test json_sprintf with empty result and invalid UTF.
* Test json_get_alloc_funcs with NULL arguments.
* Test invalid arguments.
* Add test_chaos to test allocation failure code paths.
* Remove redundant json_is_string checks from json_string_equal and
  json_string_copy.  Both functions are static and can only be called
  with a json string.

Fixes to issues found by test_chaos:
* Fix crash on OOM in pack_unpack.c:read_string().
* Unconditionally free string in string_create upon allocation failure.
  Update load.c:parse_value() to reflect this.  This resolves a leak on
  allocation failure for pack_unpack.c:pack_string() and
  value.c:json_sprintf().

Although not visible from CodeCoverage these changes significantly
increase branch coverage.  Especially in src/value.c where we previously
covered 67.4% of branches and now cover 96.3% of branches.
2018-02-15 10:12:31 -05:00
android Update copyrights for 2016 2016-09-18 14:17:03 +03:00
cmake Update copyrights for 2016 2016-09-18 14:17:03 +03:00
doc jansson 2.11 2018-02-09 12:31:18 -05:00
examples jansson 2.8 2016-08-30 21:09:28 +03:00
src Improve test coverage. 2018-02-15 10:12:31 -05:00
test Improve test coverage. 2018-02-15 10:12:31 -05:00
.gitignore SmartOS build fix 2014-04-06 04:28:52 +00:00
.travis.yml Add support for coverage/coveralls.io in cmake project. 2014-12-12 23:57:01 +01:00
Android.mk Android.mk: Add -DHAVE_STDINT_H to LOCAL_CFLAGS 2014-07-31 07:50:31 +03:00
appveyor.yml appveyor.yml: Build on all Visual Studio versions 2016-06-03 12:08:36 +03:00
CHANGES jansson 2.11 2018-02-09 12:31:18 -05:00
CleanSpec.mk Create Android.mk, preconfigured jansson_config.h and CleanSpec.mk for Android-like build systems. 2013-03-27 17:31:05 -07:00
CMakeLists.txt Improve test coverage. 2018-02-15 10:12:31 -05:00
configure.ac jansson 2.11 2018-02-09 12:31:18 -05:00
jansson.pc.in build: Use Autoconf macro @includedir@ for jansson.pc. 2017-04-12 22:36:58 +02:00
LICENSE Update copyrights for 2016 2016-09-18 14:17:03 +03:00
Makefile.am jansson 2.8 2016-08-30 21:09:28 +03:00
README.rst Change readthedocs domain 2016-04-28 07:04:00 +03:00
release.sh Compress bz2 doc tarballs with bzip2 instead of gzip 2013-01-06 14:18:28 +02:00

Jansson README
==============

.. image:: https://travis-ci.org/akheron/jansson.png
  :target: https://travis-ci.org/akheron/jansson
  
.. image:: https://ci.appveyor.com/api/projects/status/lmhkkc4q8cwc65ko
  :target: https://ci.appveyor.com/project/akheron/jansson

.. image:: https://coveralls.io/repos/akheron/jansson/badge.png?branch=master
  :target: https://coveralls.io/r/akheron/jansson?branch=master

Jansson_ is a C library for encoding, decoding and manipulating JSON
data. Its main features and design principles are:

- Simple and intuitive API and data model

- `Comprehensive documentation`_

- No dependencies on other libraries

- Full Unicode support (UTF-8)

- Extensive test suite

Jansson is licensed under the `MIT license`_; see LICENSE in the
source distribution for details.


Compilation and Installation
----------------------------

If you obtained a source tarball, just use the standard autotools
commands::

   $ ./configure
   $ make
   $ make install

To run the test suite, invoke::

   $ make check

If the source has been checked out from a Git repository, the
./configure script has to be generated first. The easiest way is to
use autoreconf::

   $ autoreconf -i


Documentation
-------------

Documentation is available at http://jansson.readthedocs.io/en/latest/.

The documentation source is in the ``doc/`` subdirectory. To generate
HTML documentation, invoke::

   $ make html

Then, point your browser to ``doc/_build/html/index.html``. Sphinx_
1.0 or newer is required to generate the documentation.


.. _Jansson: http://www.digip.org/jansson/
.. _`Comprehensive documentation`: http://jansson.readthedocs.io/en/latest/
.. _`MIT license`: http://www.opensource.org/licenses/mit-license.php
.. _Sphinx: http://sphinx.pocoo.org/