Back to home page

Enduro/X

 
 

    


0001 /**
0002  * @brief UBF and standard library unit tests..
0003  *
0004  * @file ubfunit1.h
0005  */
0006 /* -----------------------------------------------------------------------------
0007  * Enduro/X Middleware Platform for Distributed Transaction Processing
0008  * Copyright (C) 2009-2016, ATR Baltic, Ltd. All Rights Reserved.
0009  * Copyright (C) 2017-2023, Mavimax, Ltd. All Rights Reserved.
0010  * This software is released under one of the following licenses:
0011  * AGPL (with Java and Go exceptions) or Mavimax's license for commercial use.
0012  * See LICENSE file for full text.
0013  * -----------------------------------------------------------------------------
0014  * AGPL license:
0015  *
0016  * This program is free software; you can redistribute it and/or modify it under
0017  * the terms of the GNU Affero General Public License, version 3 as published
0018  * by the Free Software Foundation;
0019  *
0020  * This program is distributed in the hope that it will be useful, but WITHOUT ANY
0021  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
0022  * PARTICULAR PURPOSE. See the GNU Affero General Public License, version 3
0023  * for more details.
0024  *
0025  * You should have received a copy of the GNU Affero General Public License along 
0026  * with this program; if not, write to the Free Software Foundation, Inc.,
0027  * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
0028  *
0029  * -----------------------------------------------------------------------------
0030  * A commercial use license is available from Mavimax, Ltd
0031  * contact@mavimax.com
0032  * -----------------------------------------------------------------------------
0033  */
0034 
0035 #ifndef UBFUNIT1_H
0036 #define UBFUNIT1_H
0037 
0038 #ifdef  __cplusplus
0039 extern "C" {
0040 #endif
0041 
0042 #include <cgreen/cgreen.h>
0043 #include <ubf.h>
0044 #include <extest.h>
0045 
0046 
0047 #define BIG_TEST_STRING \
0048 "as0dfuoij34n5roi32u98ujh;oaot3i2h4;523juh4l8y7af8sdufjk34i5ry7834h532kj4h5rt89"\
0049 "iaudoifua09s8df0a870s882390480923u4uj23hnkjabndf98yhpugb345234234234*/-*//*/-9"\
0050 "adslkflkasdkfjhkjhk3482u3940u23hj4;lhn2l3h4283u49;2j3kln;kjbn.kvnb.fbzxkchvzxc"\
0051 "asdjf;alkjdfkajkdfjklru902034jtp²45kjl34nltn3klmnbkkjlkvnbmxvb.xvsdlfsdfsfdsfs"\
0052 "-809u89wy679856674r5e6dytfvkgjhknjlk;i0-=87p96yotghlj;io876tgyuhj90a7usdyhczcv"\
0053 "sajdfoyuas9ohfbn;23ru7gbv98yzgbpiuzhbncvl/w8e4hr3p289ubhr;.kljfgn;zucbuvlbsdas"\
0054 "ajsdof8w3y80r9h23oij4ne2ljnjjksdghifopasyd8f09u[2o34h;kjrh23;ijrfpdysahpugvasz"\
0055 "adslkflkasdkfjhkjhk3482u3940u23hj4;lhn2l3h4283u49;2j3kln;kjbn.kvnb.fbzxkchvzxc"
0056 
0057 /* globals */
0058 extern char M_test_temp_filename[];
0059 extern FILE *M_test_temp_file;
0060 
0061 /* Common functions */
0062 extern void load_field_table(void);
0063 extern void set_up_dummy_data(UBFH *p_ub);
0064 extern void do_dummy_data_test(UBFH *p_ub);
0065 extern void randomize_test_data(char *ptr, int size);
0066 extern void load_recursive_data(UBFH *p_ub);
0067 extern void std_basic_setup(void);
0068 
0069 extern void gen_test_ubf_dbg(char *file, int line, UBFH *p_ub, BFLDOCC occ, int offset, BFLDID32 fldoff);
0070 extern void gen_test_view_dbg(char *file, int line, UBFH *p_ub, BFLDOCC occ, int offset, BFLDID32 fldoff);
0071 extern void gen_test_ptr_dbg(char *file, int line, UBFH *p_ub, BFLDOCC occ, int offset, BFLDID32 fldoff);
0072 
0073 
0074 extern void gen_test_ubf_val_dbg(char *file, int line, UBFH *p_ub,  int offset, BFLDLEN *len);
0075 extern void gen_test_ptr_val_dbg(char *file, int line, ndrx_longptr_t ptr,  int offset, BFLDLEN *len);
0076 extern void gen_test_view_val_dbg(char *file, int line, BVIEWFLD *vf, int offset, BFLDLEN *len);
0077 
0078 
0079 extern void gen_load_ubf_dbg(char *file, int line, UBFH *p_ub, BFLDOCC occ, int offset, BFLDID32 fldoff);
0080 extern void gen_load_view_dbg(char *file, int line, UBFH *p_ub, BFLDOCC occ, int offset, BFLDID32 fldoff);
0081 extern void gen_load_ptr_dbg(char *file, int line, UBFH *p_ub, BFLDOCC occ, int offset, BFLDID32 fldoff);
0082 
0083 extern void gen_set_ubf_dbg(char *file, int line, UBFH *p_ub_tmp, int offset);
0084 extern void gen_set_view_dbg(char *file, int line, BVIEWFLD *vf, int offset);
0085 
0086 #define gen_test_ubf(P_UB, OCC, OFFSET, FLDOFF) gen_test_ubf_dbg(__FILE__, __LINE__, P_UB, OCC, OFFSET, FLDOFF)
0087 #define gen_test_view(P_UB, OCC, OFFSET, FLDOFF) gen_test_view_dbg(__FILE__, __LINE__, P_UB, OCC, OFFSET, FLDOFF)
0088 #define gen_test_ptr(P_UB, OCC, OFFSET, FLDOFF) gen_test_ptr_dbg(__FILE__, __LINE__, P_UB, OCC, OFFSET, FLDOFF)
0089 
0090 #define gen_load_ubf(P_UB, OCC, OFFSET, FLDOFF) gen_load_ubf_dbg(__FILE__, __LINE__, P_UB, OCC, OFFSET, FLDOFF)
0091 #define gen_load_view(P_UB, OCC, OFFSET, FLDOFF) gen_load_view_dbg(__FILE__, __LINE__, P_UB, OCC, OFFSET, FLDOFF)
0092 #define gen_load_ptr(P_UB, OCC, OFFSET, FLDOFF) gen_load_ptr_dbg(__FILE__, __LINE__, P_UB, OCC, OFFSET, FLDOFF)
0093 
0094 extern void open_test_temp(char *mode);
0095 extern void open_test_temp_for_read(char *mode);
0096 extern void write_to_temp(char **data);
0097 extern void close_test_temp(void);
0098 extern void remove_test_temp(void);
0099 
0100 /* Test suites */
0101 extern TestSuite *ubf_Badd_tests(void);
0102 extern TestSuite *ubf_genbuf_tests(void);
0103 extern TestSuite *ubf_cfchg_tests(void);
0104 extern TestSuite *ubf_cfget_tests(void);
0105 extern TestSuite *ubf_expr_tests(void);
0106 extern TestSuite *ubf_fdel_tests(void);
0107 extern TestSuite *ubf_bnext_tests(void);
0108 extern TestSuite *ubf_fproj_tests(void);
0109 extern TestSuite *ubf_mem_tests(void);
0110 extern TestSuite *ubf_fupdate_tests(void);
0111 extern TestSuite *ubf_fconcat_tests(void);
0112 extern TestSuite *ubf_find_tests(void);
0113 extern TestSuite *ubf_get_tests(void);
0114 extern TestSuite *ubf_print_tests(void);
0115 extern TestSuite *ubf_printv_tests(void);
0116 extern TestSuite *ubf_macro_tests(void);
0117 extern TestSuite *ubf_readwrite_tests(void);
0118 extern TestSuite *ubf_mkfldhdr_tests(void);
0119 extern TestSuite *ubf_bcmp_tests(void);
0120 extern TestSuite *ubf_bnum_tests(void);
0121 extern TestSuite *ubf_bjoin_tests(void);
0122 extern TestSuite *ubf_bojoin_tests(void);
0123 extern TestSuite *ubf_embubf_tests(void);
0124 
0125 /* Standard library suites */
0126 extern TestSuite *ubf_nstd_crypto(void);
0127 extern TestSuite *ubf_nstd_base64(void);
0128 extern TestSuite *ubf_nstd_growlist(void);
0129 
0130 extern TestSuite *ubf_nstd_mtest(void);
0131 extern TestSuite *ubf_nstd_mtest2(void);
0132 extern TestSuite *ubf_nstd_mtest3(void);
0133 extern TestSuite *ubf_nstd_mtest4(void);
0134 extern TestSuite *ubf_nstd_mtest5(void);
0135 extern TestSuite *ubf_nstd_mtest6_dupcursor(void);
0136 extern TestSuite *ubf_nstd_mtest6(void);
0137 extern TestSuite *ubf_nstd_mtest7(void);
0138 extern TestSuite *test_nstd_macros(void);
0139 extern TestSuite *ubf_nstd_fpa(void);
0140 extern TestSuite * ubf_nstd_debug(void);
0141 extern TestSuite * ubf_nstd_standard(void);
0142 extern TestSuite *ubf_nstd_util(void);
0143 extern TestSuite *ubf_nstd_lh(void);
0144 extern TestSuite *ubf_nstd_sm(void);
0145 extern TestSuite *ubf_nstd_atomicadd(void);
0146 extern TestSuite *ubf_nstd_fsync(void);
0147 extern TestSuite *ubf_nstd_cid(void);
0148 extern TestSuite *test_rbt_tree(void);
0149 
0150 #ifdef  __cplusplus
0151 }
0152 #endif
0153 
0154 #endif  /* UBFUNIT1_H */
0155 
0156 /* vim: set ts=4 sw=4 et smartindent: */