Branch data Line data Source code
1 : : /**
2 : : * \file
3 : : * mock/class.c: a mock to test my oop stuff
4 : : * Copyright (C) 2011 Georg Hopp
5 : : *
6 : : * This program is free software: you can redistribute it and/or modify
7 : : * it under the terms of the GNU General Public License as published by
8 : : * the Free Software Foundation, either version 3 of the License, or
9 : : * (at your option) any later version.
10 : : *
11 : : * This program is distributed in the hope that it will be useful,
12 : : * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 : : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 : : * GNU General Public License for more details.
15 : : *
16 : : * You should have received a copy of the GNU General Public License
17 : : * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 : : */
19 : :
20 : : #include <assert.h>
21 : : #include <stdarg.h>
22 : :
23 : : #include "tr/class.h"
24 : : #include "mock_class.h"
25 : :
26 : : char _called;
27 : :
28 : : void
29 : 5 : _reset()
30 : : {
31 : 5 : _called = 0;
32 : 5 : }
33 : :
34 : : static
35 : : inline
36 : : int
37 : 4 : mockCtor(void * _this, va_list * params)
38 : : {
39 : 4 : MockClass this = _this;
40 : :
41 : 4 : _called = 1;
42 : 4 : this->value = va_arg(* params, int);
43 : :
44 : 4 : if (321 == this->value)
45 : 1 : return -1;
46 : :
47 : 3 : return 0;
48 : : }
49 : :
50 : : static
51 : : inline
52 : : void
53 : 5 : mockDtor(void * _this)
54 : : {
55 : 5 : _called = 1;
56 : 5 : }
57 : :
58 : : static
59 : : inline
60 : : void
61 : 1 : mockClone(void * _this, void * _base)
62 : : {
63 : 1 : MockClass this = _this;
64 : 1 : MockClass base = _base;
65 : :
66 : 1 : this->value = base->value;
67 : 1 : }
68 : :
69 : : TR_INIT_IFACE(TR_Class, mockCtor, mockDtor, mockClone);
70 : 1 : TR_CREATE_CLASS(MockClass, NULL, NULL, TR_IF(TR_Class));
71 : :
72 : : // vim: set et ts=4 sw=4:
|