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