summaryrefslogtreecommitdiff
path: root/sal/inc/rtl/tres.h
blob: 7a118ba04e32ed1a34e8c7319858492aa656b42e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
/**************************************************************
 *
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 *
 *************************************************************/
#ifndef _RTL_TRES_H_
#define _RTL_TRES_H_

#include <osl/diagnose.h>
#include <rtl/string.h>

#ifdef __cplusplus
extern "C" {
#endif

 /* comandline flags */
#define rtl_tres_Flag_BOOM      0x00000001
#define rtl_tres_Flag_VERBOSE   0x00000002
#define rtl_tres_Flag_SKIP      0x00000004
#define rtl_tres_Flag_LOG       0x00000010
#define rtl_tres_Flag_HIS       0x00000100
#define rtl_tres_Flag_TIME      0x00000200
#define rtl_tres_Flag_MSG       0x00000400
#define rtl_tres_Flag_QUIET     0x00000800

 /* state flags */
#define rtl_tres_Flag_SUB       0x01000000
#define rtl_tres_Flag_PASSED    0x10000000
#define rtl_tres_Flag_OK        0x20000000



 /* forward declaration and type definition */
struct _rtl_TestResult;
typedef struct _rtl_TestResult rtl_TestResult;


typedef void* rtl_funcstate;
typedef void* rtl_cmpstate;

 /* type definitions of function pointers which can be overloaded */
typedef sal_Bool (SAL_CALL *rtl_tres_state_ptr)(
                                                rtl_TestResult*,
                                                sal_Bool,
                                                const sal_Char*,
                                                const sal_Char*,
                                                sal_Bool
                                                );

typedef void (SAL_CALL *rtl_tres_end_ptr)( rtl_TestResult*, const sal_Char* );
typedef sal_Bool (SAL_CALL *rtl_tres_ispassed_ptr)( rtl_TestResult* );
typedef sal_Bool (SAL_CALL *rtl_tres_isok_ptr)( rtl_TestResult* );
typedef rtl_funcstate (SAL_CALL *rtl_tres_funcstate_ptr)( rtl_TestResult* );
typedef sal_Bool (SAL_CALL *rtl_tres_isbit_ptr)( rtl_TestResult*,
                                                                sal_uInt32 );

typedef rtl_funcstate (SAL_CALL *rtl_tres_getnextfuncstate_ptr)
                                                            ( rtl_funcstate );
typedef rtl_funcstate (SAL_CALL *rtl_tres_getprevfuncstate_ptr)
                                                            ( rtl_funcstate );
typedef sal_uInt32 (SAL_CALL *rtl_tres_getflags_ptr)( rtl_funcstate );
typedef rtl_String* (SAL_CALL *rtl_tres_getname_ptr)( rtl_funcstate );
typedef sal_uInt32 (SAL_CALL *rtl_tres_getstart_ptr)( rtl_funcstate );
typedef sal_uInt32 (SAL_CALL *rtl_tres_getstop_ptr)( rtl_funcstate );
typedef rtl_cmpstate (SAL_CALL *rtl_tres_getcmpstate_ptr)( rtl_funcstate );

typedef sal_Bool (SAL_CALL *rtl_tres_getstat_ptr)( rtl_cmpstate );
typedef rtl_String* (SAL_CALL *rtl_tres_getmsg_ptr)( rtl_cmpstate );
typedef rtl_cmpstate (SAL_CALL *rtl_tres_getnextcmpstate_ptr)( rtl_cmpstate );

 /* type definition of vtable structure for testresult */
typedef struct _rtl_TestResult_vtable
{
    sal_uInt32                      vtablesize;
    rtl_tres_state_ptr              state_;
    rtl_tres_end_ptr                end_;
    rtl_tres_ispassed_ptr           ispassed;
    rtl_tres_isok_ptr               isok;
    rtl_tres_funcstate_ptr          funcstate;
    rtl_tres_isbit_ptr              isbit;
    rtl_tres_getnextfuncstate_ptr   nextfuncstate;
    rtl_tres_getprevfuncstate_ptr   prevfuncstate;
    rtl_tres_getflags_ptr           flags;
    rtl_tres_getname_ptr            name;
    rtl_tres_getstart_ptr           start;
    rtl_tres_getstop_ptr            stop;
    rtl_tres_getcmpstate_ptr        cmpstate;
    rtl_tres_getstat_ptr            stat;
    rtl_tres_getmsg_ptr             msg;
    rtl_tres_getnextcmpstate_ptr    nextcmpstate;

} rtl_TestResult_vtable;

 /* type definition of testresult structure */
struct _rtl_TestResult
{
    rtl_TestResult_vtable * pFuncs;
    void *                  pExternalData;

};


 /* exports */
rtl_TestResult* SAL_CALL rtl_tres_create( const sal_Char* meth, sal_uInt32 flags );
void SAL_CALL rtl_tres_destroy( rtl_TestResult* res );

#ifdef __cplusplus
}
#endif

#endif  /* _RTL_TRES_H_ */