• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2016 Linux Test Project
3  *
4  * This program is free software; you can redistribute it and/or modify it
5  * under the terms of version 2 of the GNU General Public License as
6  * published by the Free Software Foundation.
7  *
8  * This program is distributed in the hope that it would be useful, but
9  * WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
11  *
12  * You should have received a copy of the GNU General Public License
13  * alone with this program.
14  */
15 
16 #ifndef __SAFE_HELPERS_H__
17 #define __SAFE_HELPERS_H__
18 
19 #include <stdio.h>
20 #include <string.h>
21 
22 #define SAFE_PFUNC(op) \
23 do {\
24 	int ret = (op); \
25 	if (ret != 0) { \
26 		printf("Test %s unresolved: got %i (%s) on line %i\n  %s\n", \
27 			__FILE__, ret, strerror(ret), __LINE__, #op); \
28 		fflush(stdout); \
29 		exit(PTS_UNRESOLVED); \
30 	} \
31 } while (0)
32 
33 #define SAFE_FUNC(op) \
34 ({ \
35 	int ret = (op); \
36 	if (ret == -1) { \
37 		printf("Test %s unresolved: got %i (%s) on line %i\n  %s\n", \
38 			__FILE__, ret, strerror(errno), __LINE__, #op); \
39 		fflush(stdout); \
40 		exit(PTS_UNRESOLVED); \
41 	} \
42 	ret; \
43 })
44 
45 #endif
46