Apache Portable Runtime Utility Library
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
test
abts.h
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
#ifdef __cplusplus
18
extern
"C"
{
19
#endif
20
21
#include <stdarg.h>
22
#include <stdio.h>
23
#include <stdlib.h>
24
#include <string.h>
25
26
#ifdef WIN32
27
#include <io.h>
28
#else
29
#include <unistd.h>
30
#endif
31
32
#ifndef ABTS_H
33
#define ABTS_H
34
35
#ifndef FALSE
36
#define FALSE 0
37
#endif
38
#ifndef TRUE
39
#define TRUE 1
40
#endif
41
42
struct
sub_suite
{
43
const
char
*name;
44
int
num_test;
45
int
failed;
46
int
not_run;
47
int
not_impl;
48
struct
sub_suite
*next;
49
};
50
typedef
struct
sub_suite
sub_suite
;
51
52
struct
abts_suite
{
53
sub_suite
*head;
54
sub_suite
*tail;
55
};
56
typedef
struct
abts_suite
abts_suite
;
57
58
struct
abts_case
{
59
int
failed;
60
sub_suite
*suite;
61
};
62
typedef
struct
abts_case
abts_case
;
63
64
typedef
void (*test_func)(
abts_case
*tc,
void
*data);
65
66
#define ADD_SUITE(suite) abts_add_suite(suite, __FILE__);
67
68
abts_suite
*abts_add_suite(
abts_suite
*suite,
const
char
*suite_name);
69
void
abts_run_test(
abts_suite
*ts, test_func f,
void
*value);
70
void
abts_log_message(
const
char
*fmt, ...);
71
72
void
abts_int_equal(
abts_case
*tc,
const
int
expected,
const
int
actual,
int
lineno);
73
void
abts_int_nequal(
abts_case
*tc,
const
int
expected,
const
int
actual,
int
lineno);
74
void
abts_str_equal(
abts_case
*tc,
const
char
*expected,
const
char
*actual,
int
lineno);
75
void
abts_str_nequal(
abts_case
*tc,
const
char
*expected,
const
char
*actual,
76
size_t
n,
int
lineno);
77
void
abts_ptr_notnull(
abts_case
*tc,
const
void
*ptr,
int
lineno);
78
void
abts_ptr_equal(
abts_case
*tc,
const
void
*expected,
const
void
*actual,
int
lineno);
79
void
abts_true(
abts_case
*tc,
int
condition,
int
lineno);
80
void
abts_fail(
abts_case
*tc,
const
char
*message,
int
lineno);
81
void
abts_not_impl(
abts_case
*tc,
const
char
*message,
int
lineno);
82
void
abts_assert(
abts_case
*tc,
const
char
*message,
int
condition,
int
lineno);
83
84
/* Convenience macros. Ryan hates these! */
85
#define ABTS_INT_EQUAL(a, b, c) abts_int_equal(a, b, c, __LINE__)
86
#define ABTS_INT_NEQUAL(a, b, c) abts_int_nequal(a, b, c, __LINE__)
87
#define ABTS_STR_EQUAL(a, b, c) abts_str_equal(a, b, c, __LINE__)
88
#define ABTS_STR_NEQUAL(a, b, c, d) abts_str_nequal(a, b, c, d, __LINE__)
89
#define ABTS_PTR_NOTNULL(a, b) abts_ptr_notnull(a, b, __LINE__)
90
#define ABTS_PTR_EQUAL(a, b, c) abts_ptr_equal(a, b, c, __LINE__)
91
#define ABTS_TRUE(a, b) abts_true(a, b, __LINE__);
92
#define ABTS_FAIL(a, b) abts_fail(a, b, __LINE__);
93
#define ABTS_NOT_IMPL(a, b) abts_not_impl(a, b, __LINE__);
94
#define ABTS_ASSERT(a, b, c) abts_assert(a, b, c, __LINE__);
95
96
#endif
97
98
#ifdef __cplusplus
99
}
100
#endif
101
Generated on Sun May 5 2013 15:36:55 for Apache Portable Runtime Utility Library by
1.8.1.2