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 */
101