blob: 699576ebfe158462b27b4cc53b304a19f037e3e5 [file] [log] [blame]
/**************************************************************
*
* 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 wich 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_ */