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