No description
  • C 98.1%
  • Makefile 1%
  • Meson 0.9%
Find a file
Evan Nemerson fbbdf1467e Rename MUNIT__*_DISABLE_MSVC_C4127 to MUNIT_POP_DISABLE_MSVC_C4127_
The double-underscores in the old version trigger trigger a
-Wreserved-id-macro diagnostic in clang in C++ mode.  The diagnostic is
off by default and not even part of -Wextra, but it is in a public
header which I'd like to be able to compile cleanly with -Weverything.

C reserves everything starting with a double underscore (or a single
underscore and an uppercase letter).  I'm not sure if C++ really does
reserve everything with a double underscore anywhere, but it doesn't
really matter; the fact that clang generates a warning is reason
enough for the change.  This is a private symbol (hence the double
underscore in the first place), so there is no down-side to moving it.
2020-05-11 20:14:50 -07:00
.appveyor.yml Add support for Visual Studio 2008 (9.0) and up. 2017-03-09 15:58:20 -08:00
.dir-locals.el Get rid of tabs, add a .dir-locals.el to avoid them in the future. 2016-02-02 00:55:19 -08:00
.gitignore Ignore object files 2017-03-24 16:17:45 +10:00
.travis.yml travis: create meson configuration 2018-03-10 20:03:57 -08:00
COPYING Add COPYING file. 2016-01-22 13:18:12 -08:00
example.c Add support for Visual Studio 2008 (9.0) and up. 2017-03-09 15:58:20 -08:00
Makefile Add OpenMP support for PRNG. 2017-02-16 22:43:55 -08:00
meson.build Add meson.build 2018-03-10 19:26:45 -08:00
munit.c Don't use <stdbool.h>. 2020-04-02 21:40:13 -07:00
munit.h Rename MUNIT__*_DISABLE_MSVC_C4127 to MUNIT_POP_DISABLE_MSVC_C4127_ 2020-05-11 20:14:50 -07:00
README.md README: change size of header 2018-03-11 12:46:46 -07:00

µnit

µnit is a small but full-featured unit testing framework for C. It has no dependencies (beyond libc), is permissively licensed (MIT), and is easy to include into any project.

For more information, see the µnit web site.

Build status Windows build status

Features

Features µnit currently includes include:

  • Handy assertion macros which make for nice error messages.
  • Reproducible cross-platform random number generation, including support for supplying a seed via CLI.
  • Timing of both wall-clock and CPU time.
  • Parameterized tests.
  • Nested test suites.
  • Flexible CLI.
  • Forking (except on Windows).
  • Hiding output of successful tests.

Features µnit does not currently include, but some day may include (a.k.a., if you file a PR…), include:

Include into your project with meson

In your subprojects folder put a munit.wrap file containing:

[wrap-git]
directory=munit
url=https://github.com/nemequ/munit/
revision=head

Then you can use a subproject fallback when you include munit as a dependency to your project: dependency('munit', fallback: ['munit', 'munit_dep'])

Documentation

See the µnit web site.

Additionally, there is a heavily-commented example.c in the repository.