Annotation of embedaddon/strongswan/src/libcharon/tests/utils/job_asserts.h, revision 1.1.1.1
1.1 misho 1: /*
2: * Copyright (C) 2016 Tobias Brunner
3: * HSR Hochschule fuer Technik Rapperswil
4: *
5: * This program is free software; you can redistribute it and/or modify it
6: * under the terms of the GNU General Public License as published by the
7: * Free Software Foundation; either version 2 of the License, or (at your
8: * option) any later version. See <http://www.fsf.org/copyleft/gpl.txt>.
9: *
10: * This program is distributed in the hope that it will be useful, but
11: * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
12: * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
13: * for more details.
14: */
15:
16: /**
17: * Special assertions against job handling.
18: *
19: * @defgroup job_asserts job_asserts
20: * @{ @ingroup test_utils_c
21: */
22:
23: #ifndef JOB_ASSERTS_H_
24: #define JOB_ASSERTS_H_
25:
26: /**
27: * Initialize an assertion that enforces that no jobs were scheduled.
28: * Must be matched by a call to assert_scheduler().
29: */
30: #define assert_no_jobs_scheduled() _assert_jobs_scheduled(0)
31:
32: /**
33: * Initialize an assertion that enforces that a specific number of jobs was
34: * scheduled.
35: * Must be matched by a call to assert_scheduler().
36: *
37: * @param count expected number of jobs getting scheduled
38: */
39: #define assert_jobs_scheduled(count) _assert_jobs_scheduled(count)
40:
41: /**
42: * Initialize assertions against job scheduling.
43: * Must be matched by a call to assert_scheduler().
44: */
45: #define _assert_jobs_scheduled(count) \
46: do { \
47: u_int _initial = lib->scheduler->get_job_load(lib->scheduler); \
48: u_int _expected = count
49:
50: /**
51: * Enforce scheduler asserts.
52: */
53: #define assert_scheduler() \
54: u_int _actual = lib->scheduler->get_job_load(lib->scheduler) - _initial; \
55: test_assert_msg(_expected == _actual, "unexpected number of jobs " \
56: "scheduled (%u != %u)", _expected, _actual); \
57: } while(FALSE)
58:
59: #endif /** JOB_ASSERTS_H_ @}*/
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>