1251876Speter/* Licensed to the Apache Software Foundation (ASF) under one or more
2251876Speter * contributor license agreements.  See the NOTICE file distributed with
3251876Speter * this work for additional information regarding copyright ownership.
4251876Speter * The ASF licenses this file to You under the Apache License, Version 2.0
5251876Speter * (the "License"); you may not use this file except in compliance with
6251876Speter * the License.  You may obtain a copy of the License at
7251876Speter *
8251876Speter *     http://www.apache.org/licenses/LICENSE-2.0
9251876Speter *
10251876Speter * Unless required by applicable law or agreed to in writing, software
11251876Speter * distributed under the License is distributed on an "AS IS" BASIS,
12251876Speter * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13251876Speter * See the License for the specific language governing permissions and
14251876Speter * limitations under the License.
15251876Speter */
16251876Speter
17251876Speter/* Some simple functions to make the test apps easier to write and
18251876Speter * a bit more consistent...
19251876Speter * this is a >copy< of apr_test.h
20251876Speter */
21251876Speter
22251876Speter/* Things to bear in mind when using these...
23251876Speter *
24251876Speter * If you include '\t' within the string passed in it won't be included
25251876Speter * in the spacing, so use spaces instead :)
26251876Speter *
27251876Speter */
28251876Speter
29251876Speter#ifndef APU_TEST_INCLUDES
30251876Speter#define APU_TEST_INCLUDES
31251876Speter
32251876Speter#include "apr_strings.h"
33251876Speter#include "apr_time.h"
34251876Speter
35251876Speter#define TEST_EQ(str, func, value, good, bad) \
36251876Speter    printf("%-60s", str); \
37251876Speter    { \
38251876Speter    apr_status_t rv; \
39251876Speter    if ((rv = func) == value){ \
40251876Speter        char errmsg[200]; \
41251876Speter        printf("%s\n", bad); \
42251876Speter        fprintf(stderr, "Error was %d : %s\n", rv, \
43251876Speter                apr_strerror(rv, (char*)&errmsg, 200)); \
44251876Speter        exit(-1); \
45251876Speter    } \
46251876Speter    printf("%s\n", good); \
47251876Speter    }
48251876Speter
49251876Speter#define TEST_NEQ(str, func, value, good, bad) \
50251876Speter    printf("%-60s", str); \
51251876Speter    { \
52251876Speter    apr_status_t rv; \
53251876Speter    if ((rv = func) != value){ \
54251876Speter        char errmsg[200]; \
55251876Speter        printf("%s\n", bad); \
56251876Speter        fprintf(stderr, "Error was %d : %s\n", rv, \
57251876Speter                apr_strerror(rv, (char*)&errmsg, 200)); \
58251876Speter        exit(-1); \
59251876Speter    } \
60251876Speter    printf("%s\n", good); \
61251876Speter    }
62251876Speter
63251876Speter#define TEST_STATUS(str, func, testmacro, good, bad) \
64251876Speter    printf("%-60s", str); \
65251876Speter    { \
66251876Speter        apr_status_t rv = func; \
67251876Speter        if (!testmacro(rv)) { \
68251876Speter            char errmsg[200]; \
69251876Speter            printf("%s\n", bad); \
70251876Speter            fprintf(stderr, "Error was %d : %s\n", rv, \
71251876Speter                    apr_strerror(rv, (char*)&errmsg, 200)); \
72251876Speter            exit(-1); \
73251876Speter        } \
74251876Speter        printf("%s\n", good); \
75251876Speter    }
76251876Speter
77251876Speter#define STD_TEST_NEQ(str, func) \
78251876Speter	TEST_NEQ(str, func, APR_SUCCESS, "OK", "Failed");
79251876Speter
80251876Speter#define PRINT_ERROR(rv) \
81251876Speter    { \
82251876Speter        char errmsg[200]; \
83251876Speter        fprintf(stderr, "Error was %d : %s\n", rv, \
84251876Speter                apr_strerror(rv, (char*)&errmsg, 200)); \
85251876Speter        exit(-1); \
86251876Speter    }
87251876Speter
88251876Speter#define MSG_AND_EXIT(msg) \
89251876Speter    printf("%s\n", msg); \
90251876Speter    exit (-1);
91251876Speter
92251876Speter#define TIME_FUNCTION(time, function) \
93251876Speter    { \
94251876Speter        apr_time_t tt = apr_time_now(); \
95251876Speter        function; \
96251876Speter        time = apr_time_now() - tt; \
97251876Speter    }
98251876Speter
99251876Speter
100251876Speter#endif /* APU_TEST_INCLUDES */
101