]> git.llucax.com Git - software/mutest.git/blob - sample/exception_test.cpp
Render PDF documentation with rst2pdf
[software/mutest.git] / sample / exception_test.cpp
1 /*
2  * This file is part of mutest, a simple micro unit testing framework for C.
3  *
4  * mutest was written by Leandro Lucarella <llucax@gmail.com> and is released
5  * under the BOLA license, please see the LICENSE file or visit:
6  * http://blitiri.com.ar/p/bola/
7  *
8  * This is a C++ module test suite. It shows how to use checks involving
9  * exceptions.
10  *
11  * Please, read the README file for more details.
12  */
13
14 #include <stdexcept> // std::out_of_range
15 #include <vector> // std::vector
16
17 #include "../mutest.h"
18
19 extern "C" {
20
21 void mu_test_exceptions() {
22         std::vector<int> v(1);
23         // ok
24         mu_check(v.at(0) == 0);
25         // throws! This fails
26         mu_check(v.at(1) == 0);
27         // ok, we expect the exception to be thrown, and it does
28         mu_echeck(std::out_of_range, v.at(1));
29         // fails! We expect this to throw, but it doesn't
30         mu_echeck(std::out_of_range, v.at(0));
31         // fails again, but this time the show is over (note the "ensure")
32         mu_eensure(std::out_of_range, v.at(0));
33         // this will never be executed (it should fail if it is)
34         mu_check(v.empty());
35 }
36
37 } // extern "C"
38