1/* 2 * Copyright (c) 2009-2014 Petri Lehtinen <petri@digip.org> 3 * 4 * Jansson is free software; you can redistribute it and/or modify 5 * it under the terms of the MIT license. See LICENSE for details. 6 */ 7 8#ifndef UTIL_H 9#define UTIL_H 10 11#ifdef HAVE_CONFIG_H 12#include <jansson_private_config.h> 13#endif 14 15#include <stdio.h> 16#include <stdlib.h> 17#if HAVE_LOCALE_H 18#include <locale.h> 19#endif 20 21#include <jansson.h> 22 23#define failhdr fprintf(stderr, "%s:%s:%d: ", __FILE__, __FUNCTION__, __LINE__) 24 25#define fail(msg) \ 26 do { \ 27 failhdr; \ 28 fprintf(stderr, "%s\n", msg); \ 29 exit(1); \ 30 } while(0) 31 32/* Assumes json_error_t error */ 33#define check_error(text_, source_, line_, column_, position_) \ 34 do { \ 35 if(strcmp(error.text, text_) != 0) { \ 36 failhdr; \ 37 fprintf(stderr, "text: \"%s\" != \"%s\"\n", error.text, text_); \ 38 exit(1); \ 39 } \ 40 if(strcmp(error.source, source_) != 0) { \ 41 failhdr; \ 42 \ 43 fprintf(stderr, "source: \"%s\" != \"%s\"\n", error.source, source_); \ 44 exit(1); \ 45 } \ 46 if(error.line != line_) { \ 47 failhdr; \ 48 fprintf(stderr, "line: %d != %d\n", error.line, line_); \ 49 exit(1); \ 50 } \ 51 if(error.column != column_) { \ 52 failhdr; \ 53 fprintf(stderr, "column: %d != %d\n", error.column, column_); \ 54 exit(1); \ 55 } \ 56 if(error.position != position_) { \ 57 failhdr; \ 58 fprintf(stderr, "position: %d != %d\n", error.position, position_); \ 59 exit(1); \ 60 } \ 61 } while(0) 62 63 64static void run_tests(); 65 66int main() { 67#ifdef HAVE_SETLOCALE 68 setlocale(LC_ALL, ""); 69#endif 70 run_tests(); 71 return 0; 72} 73 74#endif 75