···1+{ fetchurl, stdenv, cmake }:
2+3+stdenv.mkDerivation rec {
4+ name = "cmocka-${version}";
5+ version = "1.0.1";
6+7+ src = fetchurl {
8+ url = "https://cmocka.org/files/1.0/cmocka-${version}.tar.xz";
9+ sha256 = "0fvm6rdalqcxckbddch8ycdw6n2ckldblv117n09chi2l7bm0q5k";
10+ };
11+12+ buildInputs = [ cmake ];
13+14+ meta = with stdenv.lib; {
15+ description = "Lightweight library to simplify and generalize unit tests for C";
16+17+ longDescription =
18+ ''There are a variety of C unit testing frameworks available however
19+ many of them are fairly complex and require the latest compiler
20+ technology. Some development requires the use of old compilers which
21+ makes it difficult to use some unit testing frameworks. In addition
22+ many unit testing frameworks assume the code being tested is an
23+ application or module that is targeted to the same platform that will
24+ ultimately execute the test. Because of this assumption many
25+ frameworks require the inclusion of standard C library headers in the
26+ code module being tested which may collide with the custom or
27+ incomplete implementation of the C library utilized by the code under
28+ test.
29+30+ Cmocka only requires a test application is linked with the standard C
31+ library which minimizes conflicts with standard C library headers.
32+ Also, CMocka tries to avoid the use of some of the newer features of
33+ C compilers.
34+35+ This results in CMocka being a relatively small library that can be
36+ used to test a variety of exotic code. If a developer wishes to
37+ simply test an application with the latest compiler then other unit
38+ testing frameworks may be preferable.
39+40+ This is the successor of Google's Cmockery.'';
41+42+ homepage = https://cmocka.org/;
43+44+ license = licenses.asl20;
45+ platforms = platforms.all;
46+ maintainers = with maintainers; [ kragniz ];
47+ };
48+}