Apache Portable Runtime Utility Library
test_apu.h
1 /* Licensed to the Apache Software Foundation (ASF) under one or more
2  * contributor license agreements. See the NOTICE file distributed with
3  * this work for additional information regarding copyright ownership.
4  * The ASF licenses this file to You under the Apache License, Version 2.0
5  * (the "License"); you may not use this file except in compliance with
6  * the License. You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 /* Some simple functions to make the test apps easier to write and
18  * a bit more consistent...
19  * this is a >copy< of apr_test.h
20  */
21 
22 /* Things to bear in mind when using these...
23  *
24  * If you include '\t' within the string passed in it won't be included
25  * in the spacing, so use spaces instead :)
26  *
27  */
28 
29 #ifndef APU_TEST_INCLUDES
30 #define APU_TEST_INCLUDES
31 
32 #include "apr_strings.h"
33 #include "apr_time.h"
34 
35 #define TEST_EQ(str, func, value, good, bad) \
36  printf("%-60s", str); \
37  { \
38  apr_status_t rv; \
39  if ((rv = func) == value){ \
40  char errmsg[200]; \
41  printf("%s\n", bad); \
42  fprintf(stderr, "Error was %d : %s\n", rv, \
43  apr_strerror(rv, (char*)&errmsg, 200)); \
44  exit(-1); \
45  } \
46  printf("%s\n", good); \
47  }
48 
49 #define TEST_NEQ(str, func, value, good, bad) \
50  printf("%-60s", str); \
51  { \
52  apr_status_t rv; \
53  if ((rv = func) != value){ \
54  char errmsg[200]; \
55  printf("%s\n", bad); \
56  fprintf(stderr, "Error was %d : %s\n", rv, \
57  apr_strerror(rv, (char*)&errmsg, 200)); \
58  exit(-1); \
59  } \
60  printf("%s\n", good); \
61  }
62 
63 #define TEST_STATUS(str, func, testmacro, good, bad) \
64  printf("%-60s", str); \
65  { \
66  apr_status_t rv = func; \
67  if (!testmacro(rv)) { \
68  char errmsg[200]; \
69  printf("%s\n", bad); \
70  fprintf(stderr, "Error was %d : %s\n", rv, \
71  apr_strerror(rv, (char*)&errmsg, 200)); \
72  exit(-1); \
73  } \
74  printf("%s\n", good); \
75  }
76 
77 #define STD_TEST_NEQ(str, func) \
78  TEST_NEQ(str, func, APR_SUCCESS, "OK", "Failed");
79 
80 #define PRINT_ERROR(rv) \
81  { \
82  char errmsg[200]; \
83  fprintf(stderr, "Error was %d : %s\n", rv, \
84  apr_strerror(rv, (char*)&errmsg, 200)); \
85  exit(-1); \
86  }
87 
88 #define MSG_AND_EXIT(msg) \
89  printf("%s\n", msg); \
90  exit (-1);
91 
92 #define TIME_FUNCTION(time, function) \
93  { \
94  apr_time_t tt = apr_time_now(); \
95  function; \
96  time = apr_time_now() - tt; \
97  }
98 
99 
100 #endif /* APU_TEST_INCLUDES */