summaryrefslogtreecommitdiff
path: root/index.html
blob: 4553f8c34cf3b45996c71eedccf5c67cc97420da (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8" />
    <title>cmocka - unit testing framework for C</title>
    <!-- Mobile Specific Metas -->
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" />
    <link rel="stylesheet" href="assets/css/tuktuk.css">
    <link rel="stylesheet" href="assets/css/tuktuk.theme.default.css">
    <link rel="stylesheet" href="assets/css/tuktuk.theme.cmocka.css">
    <!-- TUKTUK.WIDGETS -->
    <link rel="stylesheet" href="assets/css/tuktuk.icons.css">
    <link rel="shortcut icon" href="favicon.png">
</head>
<body>
    <!-- ========================== HEADER ========================== -->
    <header class="bck margin-top margin-bottom">
        <div class="row text">
            <div class="column_6">
                <h2 class="text bold">cmocka</h2>
            </div>
            <nav class="column_6 text right">
                <a href="#news"><span class="icon globe"> </span>News</a>
                <a href="#features"><span class="icon cog"> </span>Features</a>
                <a href="#discussion"><span class="icon envelope-alt"> </span>Mailinglist</a>
                <a href="#git"><span class="icon random"> </span>Report bugs</a>
                <a href="#git"><span class="icon random"> </span>Development</a>
            </nav>
        </div>
    </header>

    <section class="bck theme landing">
        <div class="row text">
            <div class="column_6 text">
                <h3><strong>cmocka is ...</strong></h3>
                <h4>an elegant unit testing framework for C with support for
                    mock objects. It only requires the standard C library,
                    works on a range of computing platforms (including embedded) and with
                    different compilers.</h4>

                <br />

                <a href="/files" class="button"><span class="icon download"></span>Download here</a>&nbsp;&nbsp;
                <a href="/talks/cmocka_unit_testing_and_mocking.pdf" target="_blank" class="button bck theme"><span class="icon sign"></span>Learn more</a>&nbsp;&nbsp;
                <a href="https://api.cmocka.org" class="button alert"><span class="icon magic"></span>API</a>
            </div>
            <div class="column_6">
                <a href="https://api.cmocka.org/#main-test"><img src="assets/images/cmocka.png" width="500" /></a>
            </div>
        </div>
    </section>

    <section class="bck dark padding text center">
        <div class="row padding-bottom">
            <div class="column_10 offset_1">
                <h1 class="text book color theme">Mission Statement</h1>
                <h4>
                    The goal of this project is to provide a powerful testing
                    framework for C, on different platforms and operating
                    systems, which only requires the standard C library.
                </h4>
            </div>
        </div>

        <div id="features" class="row padding-top">
            <div class="column_3">
                <h2 class="icon group"></h2>
                <h5 class="text normal">Support for Mock Objects</h5>

                <small>Mock objects are simulation objects to mimic the real
                       implementation of an actual object.  Useful to simulate
                       dependencies of an interface to help test the interface
                       in isolation.  Some project use the mock functionality to
                       simulate components communicating over a network</small>

            </div>
            <div class="column_3">
                <h2 class="icon check"></h2>
                <h5 class="text normal">Only requires a C library</h5>

                <small>This makes it possible that cmocka works on many of
                       embedded platforms.</small>

            </div>
            <div class="column_3">
                <h2 class="icon move"></h2>
                <h5 class="text normal">Several supported output formats</h5>

                <small>cmocka supports several different message output formats
                       like Test Anything Protocol, Subunit, xUnit XML or the original
                       <a href="https://github.com/google/cmockery/" target="_blank">cmockery</a>
                       output format</small>
            </div>
            <div class="column_3">
                <h2 class="icon play"></h2>
                <h5 class="text normal">Fully documented API</h5>
                <small><a href="https://api.cmocka.org">The API</a> is very well
                       documented and cmocka provides several examples for the
                       different features it provides</small>
            </div>
        </div>

        <div class="row padding-top">
            <div class="column_3">
                <h2 class="icon info-sign"></h2>
                <h5 class="text normal">Test Fixtures</h5>

                <small>Test fixtures are setup and teardown functions that can
                       be shared across multiple test cases to provide common
                       functions that prepare the test environment and destroy
                       it afterwards.</small>

            </div>
            <div class="column_3">
                <h2 class="icon ok-circle"></h2>
                <h5 class="text normal">Exception handling for signals (SIGSEGV, SIGILL, ...)</h5>

                <small>cmocka is able to recover the test state if there are
                       exceptions like a segfault.</small>

            </div>
            <div class="column_3">
                <h2 class="icon cog"></h2>
                <h5 class="text normal">No fork()</h5>

                <small>cmocka doesn't use fork() for exception handling in test cases.</small>
            </div>
            <div class="column_3">
                <h2 class="icon gift"></h2>
                <h5 class="text normal">Very well tested</h5>

                <small>cmocka has nightly builds to test on several platforms
                       and with different compilers to ensure it works
                       correctly. If you want to get it working on your
                       platform you can add a nightly build and we will make
                       sure not to break your platform or compiler.</small>
            </div>
        </div>
        <div class="row padding-top">
            <div class="column_3">
                <h2 class="icon medkit"></h2>
                <h5 class="text normal">Testing of memory leaks, buffer overflows and underflows.</h5>

                <small>We offer functions during test which are able to detect
                       some sort of memory allocation issues without running
                       tools like valgrind.</small>

            </div>

            <div class="column_3">
                <h2 class="icon wrench"></h2>
                <h5 class="text normal">cmockery legacy support</h5>

                <small>cmocka is a fork and the successor for
                       <a href="https://github.com/google/cmockery/" target="_blank">cmockery</a>.
                       We offer the installation of a cmockery header so that
                       your tests written for cmockery are still working till
                       you migrate to cmocka.</small>
            </div>

            <div class="column_3">
                <h2 class="icon truck"></h2>
                <h5 class="text normal">Platforms and compilers</h5>

                <small>cmocka works well on Linux, BSD, Solaris, Windows and
                       embedded platforms. It is known to be working with GCC,
                       LLVM, MSVC, MinGW and many more.</small>
            </div>

            <div class="column_3">
                <h2 class="icon legal"></h2>
                <h5 class="text normal">License: Apache License 2.0</h5>

            </div>

            <!--
            <div class="column_3">
                <h2 class="icon gift"></h2>
                <h5 class="text normal">Very well tested</h5>

                <small>cmocka has nightly builds to test on several platforms
                       and with different compilers to ensure it works
                       correctly. If you want to get it working on your
                       platform you can add a nightly build and we will make
                       sure not to break your platform or compiler.</small>
            </div>
            -->
        </div>
    </section>

    <section class="bck light padding">
        <div id="git" class="row text thin center">
            <div class="column_10 offset_1">
                <h1 class="text book color theme">Development</h1>
                <br />
                <h4>
                    <tt>git clone https://git.cryptomilk.org/projects/cmocka.git</tt>
                </h4>
                <br />
                <br />
                <a href="https://gitlab.com/cmocka/cmocka" class="button"><span class="icon share"></span>Gitlab</a>&nbsp;&nbsp;
                <a href="https://git.cryptomilk.org/projects/cmocka.git/" class="button bck theme"><span class="icon share"></span>Browse GIT</a>&nbsp;&nbsp;
                <a href="https://gitlab.com/cmocka/cmocka/issues" class="button alert"><span class="icon share"></span>Report Bugs</a>
            </div>
        </div>
    </section>

    <section class="landing">
        <div class="row text center">
            <div class="column_10 offset_1">
                <h3 class="text bold color theme">
                    cmocka is an open source project, feel free to use it,
                    share with love, if you want to collaborate just
                    contact us.
                </h3>
            </div>
        </div>
    </section>

    <section class="bck light padding text">
        <div id="news" class="row padding-top">
            <div class="column_4">
                <h3 class="text normal"><span class="icon globe"> </span>News</h3>

                    <br />

                    <strong>cmocka 1.1.6</strong><br />
                    <small><span style="font-size: small;">2023-02-17</span><br />
                        Version 1.1.6 has been released to fix several issues and
                        a few small new features.
                    </small>

                    <br />
                    <br />

                    <strong>cmocka 1.1.5</strong><br />
                    <small><span style="font-size: small;">2019-03-28</span><br />
                        Version 1.1.5 has been released with a set of new assert functions
                        and a function to skip tests.
                    </small>

            </div>

            <div class="column_4">
                <h3 class="text normal"><span class="icon beaker"> </span>Projects using cmocka</h3>

                <br />

                <p><a href="https://cwrap.org" target="_blank">cwrap</a> - Full server/client testing made easy</p>
                <p><a href="https://samba.org" target="_blank">Samba</a> - Samba is the standard Windows interoperability suite of programs for Linux and Unix.</p>
                <p><a href="https://libssh.org" target="_blank">libssh</a> - The SSH library</p>
                <p><a href="https://www.coreboot.org/" target="_blank">coreboot</a> - Fast, secure and flexible OpenSource firmware</p>
                <p><a href="https://www.isc.org/downloads/bind/" target="_blank">BIND DNS</a> - Versatile, Classic, Complete Name Server Software</p>
                <p><a href="https://openvpn.net/" target="_blank">OpenVPN</a> - software for private tunnels (VPN)</p>
                <p><a href="https://www.knot-dns.cz/" target="_blank">Knot DNS</a> - High-performance DNS server</p>
                <p><a href="https://fedorahosted.org/sssd" target="_blank">SSSD</a> - Security System Service Daemon</p>
                <p><a href="http://elastocloud.org/" target="_blank">Elasto Cloud</a> - a cloud storage client</p>
                <p><a href="http://www.profanity.im/" target="_blank">Profanity</a> - a console based XMPP chat client</p>
                <p><a href="https://github.com/gkdr/libomemo" target="_blank">libomemo</a> - a C library impelementing <a href="https://conversations.im/omemo/">OMEMO</a></p>
                <p><a href="https://www.netdata.cloud/" target="_blank">Netdata</a> - realtime monitoring for servers</p>
                <p><a href="https://automerge.org/" target="_blank">Automerge</a> - a library for building collaborative applications</p>
            </div>

            <div id="discussion" class="column_4">
                <h3 class="text normal"><span class="icon envelope"> </span>Discussion</h3>

                <br />

                <small>
                    <ul>
                        <li>To subscribe to the cmocka mailing list, send an email to: <a href="mailto:cmocka-devel-join@cmocka.org">cmocka-devel-join@cmocka.org</a></li>
                        <li>You can find the mailinglist archive <a href="https://archive.mudgum.io/hyperkitty/list/cmocka-devel@cmocka.org/" target="_blank">here</a>.</li>
                        <li>Matrix: <a href="https://matrix.to/#/!PrlgFyvfrVwZrwfRKy:matrix.org?via=matrix.org">#cmocka:matrix.org</a></li>
                    </ul>
                </small>
            </div>

            <!--
            <div class="column_3">
                <h2 class="icon gift"></h2>
                <h5 class="text normal">Very well tested</h5>

                <small>cmocka has nightly builds to test on several platforms
                       and with different compilers to ensure it works
                       correctly. If you want to get it working on your
                       platform you can add a nightly build and we will make
                       sure not to break your platform or compiler.</small>
            </div>
            -->
        </div>
    </section>

    <footer class="padding align center text small bck light">
        <div class="row">
            <div class="offset_3 column_6">
                <smalL>(c) Copyright 2020 - <a href="https://cryptomilk.org/">Andreas Schneider</a></smalL>
            </div>
        </div>
    </footer>
</body>
</html>