about summary refs log tree commit diff
path: root/localedata/tests-mbwc/tst_types.h
diff options
context:
space:
mode:
authorAndreas Jaeger <aj@suse.de>2000-06-27 12:14:09 +0000
committerAndreas Jaeger <aj@suse.de>2000-06-27 12:14:09 +0000
commit5b905722f66719de502ecd6129ef9a1bda4f9f47 (patch)
treee74e131343a6427f807f151abcabcce2c62f94ee /localedata/tests-mbwc/tst_types.h
parent756bb30555774e22121790fd6eb3dcf2ca4ed29e (diff)
downloadglibc-5b905722f66719de502ecd6129ef9a1bda4f9f47.tar.gz
glibc-5b905722f66719de502ecd6129ef9a1bda4f9f47.tar.xz
glibc-5b905722f66719de502ecd6129ef9a1bda4f9f47.zip
* Makefile (tests): Add tests from tests-mbwc subdirectory,
comment them out for now. 
(subdir-dirs): New for tests-mbwc, add also vpaths.
	* Makefile (tests): Add tests from tests-mbwc subdirectory,
	comment them out for now.
	(subdir-dirs): New for tests-mbwc, add also vpaths.
Diffstat (limited to 'localedata/tests-mbwc/tst_types.h')
-rw-r--r--localedata/tests-mbwc/tst_types.h730
1 files changed, 730 insertions, 0 deletions
diff --git a/localedata/tests-mbwc/tst_types.h b/localedata/tests-mbwc/tst_types.h
new file mode 100644
index 0000000000..e0a8e7fcc3
--- /dev/null
+++ b/localedata/tests-mbwc/tst_types.h
@@ -0,0 +1,730 @@
+/*
+ *  TEST SUITE FOR MB/WC FUNCTIONS IN C LIBRARY
+ *
+ *	 FILE:	tst_types.h
+ *
+ *	 Definitions of data types for each test function
+ */
+
+
+#ifndef TST_TYPES_H
+#define TST_TYPES_H
+
+#include <stdio.h>
+#include <wchar.h>
+#include <wctype.h>
+#include "tst_funcs.h"
+#include "tgn_funcdef.h"
+
+#define NAMESIZE	   64
+#define MBSSIZE		   24
+#define WCSSIZE		   12
+#define MONFMTSIZE	   16
+#define MONSIZE		   32
+#define USE_MBCURMAX	   99	/* well, but ... */
+#define TST_DBL_EPS	   2.22153e-16
+#define WCSTOK_SEQNUM	   3
+#define MBLEN_SEQNUM	   3
+#define MBTOWC_SEQNUM	   3
+#define MBSTOWCS_SEQNUM	   3
+#define WCTOMB_SEQNUM	   3
+#define WCSTOMBS_SEQNUM	   3
+#define MBRLEN_SEQNUM	   3
+#define MBRTOWC_SEQNUM	   3
+#define MBSRTOWCS_SEQNUM   3
+#define WCRTOMB_SEQNUM	   3
+#define WCSRTOMBS_SEQNUM   3
+
+/* Maximum numbers of test in one of the _loc arrays.  */
+#define MAX_LOC_TEST		300
+
+
+/*----------------------------------------------------------------------*/
+/*  FUNCTION								*/
+/*----------------------------------------------------------------------*/
+
+typedef struct
+{
+  char *func_str;
+  int func_id;
+}
+TST_FID;
+
+typedef struct
+{
+  int func_id;
+  const char locale[NAMESIZE];
+}
+TST_HEAD;
+
+typedef struct
+{
+  TST_HEAD *head;
+}
+TST_FUNCS;
+
+
+/*----------------------------------------------------------------------*/
+/*  ISW*: int isw* (wchar_t wc)						*/
+/*----------------------------------------------------------------------*/
+
+TST_ISW_STRUCT (ALNUM, alnum);
+TST_ISW_STRUCT (ALPHA, alpha);
+TST_ISW_STRUCT (CNTRL, cntrl);
+TST_ISW_STRUCT (DIGIT, digit);
+TST_ISW_STRUCT (GRAPH, graph);
+TST_ISW_STRUCT (LOWER, lower);
+TST_ISW_STRUCT (PRINT, print);
+TST_ISW_STRUCT (PUNCT, punct);
+TST_ISW_STRUCT (SPACE, space);
+TST_ISW_STRUCT (UPPER, upper);
+TST_ISW_STRUCT (XDIGIT, xdigit);
+
+typedef struct
+{
+  wint_t wc;
+  const char *ts;
+}
+TIN_ISWCTYPE_REC;
+
+typedef
+TEX_ERRET_REC (int)
+  TEX_ISWCTYPE_REC;
+TMD_RECHEAD (ISWCTYPE);
+
+
+/*----------------------------------------------------------------------*/
+/*  MBLEN: int mblen (const char *s, size_t n)				*/
+/*----------------------------------------------------------------------*/
+
+typedef struct
+{
+  char s_flg;
+  char s[MBSSIZE];
+  size_t n;
+}
+TIN_MBLEN_REC;
+
+typedef TEX_ERRET_REC (int) TEX_MBLEN_REC;
+TMD_RECHEAD (MBLEN);
+
+
+/*----------------------------------------------------------------------*/
+/*  MBRLEN: size_t mbrlen (const char *s, size_t n, mbstate_t *ps)	*/
+/*----------------------------------------------------------------------*/
+
+typedef struct
+{
+  struct
+  {
+    char s_flg;
+    char s[MBSSIZE];
+    size_t n;
+    char t_flg;
+    char t_init;
+  }
+  seq[WCSTOK_SEQNUM];
+}
+TIN_MBRLEN_REC;
+
+typedef TEX_ERRET_REC_SEQ (size_t, MBRLEN_SEQNUM) TEX_MBRLEN_REC;
+TMD_RECHEAD (MBRLEN);
+
+
+/*----------------------------------------------------------------------*/
+/*  MBRTOWC: size_t mbrtowc (wchar_t *pwc, const char *s, size_t n,	*/
+/*			     mbstate_t *ps)				*/
+/*----------------------------------------------------------------------*/
+
+typedef struct
+{
+  struct
+  {
+    char w_flg;
+    char s_flg;
+    char s[MBSSIZE];
+    size_t n;
+    char t_flg;
+    char t_init;
+  }
+  seq[MBRTOWC_SEQNUM];
+}
+TIN_MBRTOWC_REC;
+
+typedef struct
+{
+  struct
+  {
+    TMD_ERRET (size_t);
+    wchar_t wc;
+  }
+  seq[MBRTOWC_SEQNUM];
+}
+TEX_MBRTOWC_REC;
+
+TMD_RECHEAD (MBRTOWC);
+
+
+/*----------------------------------------------------------------------*/
+/*  MBSRTOWCS: size_t mbsrtowcs (wchar_t *ws, const char **s, size_t n, */
+/*				 mbstate_t *ps )			*/
+/*----------------------------------------------------------------------*/
+
+typedef struct
+{
+  struct
+  {
+    char w_flg;
+    char s[MBSSIZE];
+    size_t n;
+    char t_flg;
+    char t_init;
+  }
+  seq[MBSRTOWCS_SEQNUM];
+}
+TIN_MBSRTOWCS_REC;
+
+typedef struct
+{
+  struct
+  {
+    TMD_ERRET (size_t);
+    wchar_t ws[WCSSIZE];
+  }
+  seq[MBSRTOWCS_SEQNUM];
+}
+TEX_MBSRTOWCS_REC;
+
+TMD_RECHEAD (MBSRTOWCS);
+
+
+/*----------------------------------------------------------------------*/
+/*  MBSTOWCS: size_t mbstowcs (wchar_t *ws, const char *s, size_t n)	*/
+/*----------------------------------------------------------------------*/
+
+typedef struct
+{
+  struct
+  {
+    char w_flg;
+    char s_flg;
+    char s[MBSSIZE];
+    size_t n;
+  }
+  seq[MBSTOWCS_SEQNUM];
+}
+TIN_MBSTOWCS_REC;
+
+typedef TEX_MBSRTOWCS_REC TEX_MBSTOWCS_REC;
+/* MBSRTOWCS_SEQNUM == MBSTOWCS_SEQNUM */
+TMD_RECHEAD (MBSTOWCS);
+
+
+/*----------------------------------------------------------------------*/
+/*  MBTOWC: int mbtowc (wchar_t *wc, const char *s, size_t n)		*/
+/*----------------------------------------------------------------------*/
+
+typedef TIN_MBSTOWCS_REC TIN_MBTOWC_REC;
+/* MBTOWC_SEQNUM == MBSTOWCS_SEQNUM */
+
+typedef struct
+{
+  struct
+  {
+    TMD_ERRET (int);
+    wchar_t wc;
+  }
+  seq[MBTOWC_SEQNUM];
+}
+TEX_MBTOWC_REC;
+
+TMD_RECHEAD (MBTOWC);
+
+
+/*----------------------------------------------------------------------*/
+/*  STRCOLL: int strcoll (const char *s1, const char *s2)		*/
+/*----------------------------------------------------------------------*/
+
+typedef struct
+{
+  char s1[MBSSIZE];
+  char s2[MBSSIZE];
+}
+TIN_STRCOLL_REC;
+
+typedef TEX_ERRET_REC (int) TEX_STRCOLL_REC;
+TMD_RECHEAD (STRCOLL);
+
+
+/*----------------------------------------------------------------------*/
+/*  STRFMON: size_t strfmon (char *buf, size_t nbytes,			*/
+/*			     const char *fmt, ... )			*/
+/*----------------------------------------------------------------------*/
+
+typedef struct
+{
+  int nbytes;
+  char fmt[MONFMTSIZE];
+  double val;
+}
+TIN_STRFMON_REC;
+
+typedef struct
+{
+  TMD_ERRET (size_t);
+  char mon[MONSIZE];
+}
+TEX_STRFMON_REC;
+
+TMD_RECHEAD (STRFMON);
+
+
+/*----------------------------------------------------------------------*/
+/*  STRXFRM: size_t strxfrm (char *s1, const char *s2, size_t n)	*/
+/*----------------------------------------------------------------------*/
+
+typedef struct
+{
+  char org1[MBSSIZE];
+  char org2[MBSSIZE];
+  size_t n1, n2;
+}
+TIN_STRXFRM_REC;
+
+typedef TEX_ERRET_REC (size_t) TEX_STRXFRM_REC;	/* only for org2[] */
+TMD_RECHEAD (STRXFRM);
+
+
+/*----------------------------------------------------------------------*/
+/*  SWSCANF: int swscanf (const wchar_t *ws, const wchar_t *fmt, ...)	*/
+/*----------------------------------------------------------------------*/
+
+typedef struct
+{
+  wchar_t ws[WCSSIZE * 3];
+  wchar_t fmt[WCSSIZE * 3];
+  char wch;
+}
+TIN_SWSCANF_REC;
+
+typedef struct
+{
+  TMD_ERRET (int);
+  int val_int;		/* %d */
+  unsigned val_uns;	/* %u */
+  float val_flt;		/* %f */
+  char val_c;		/* %c */
+  char val_s[MBSSIZE * 2];	/* %s */
+  wchar_t val_S[WCSSIZE * 2];	/* %lc, %ls, %C, %S */
+}
+TEX_SWSCANF_REC;
+
+TMD_RECHEAD (SWSCANF);
+
+
+/*----------------------------------------------------------------------*/
+/*  TOWCTRANS: wint_t towctrans (wint_t wc, wctrans_t desc)		*/
+/*----------------------------------------------------------------------*/
+
+typedef TIN_ISWCTYPE_REC TIN_TOWCTRANS_REC;
+typedef TEX_ERRET_REC (wint_t) TEX_TOWCTRANS_REC;
+TMD_RECHEAD (TOWCTRANS);
+
+
+/*----------------------------------------------------------------------*/
+/*  TOW*ER: wint_t tow*er (wint_t wc)					*/
+/*----------------------------------------------------------------------*/
+
+TST_TOW_STRUCT (LOWER, lower);
+TST_TOW_STRUCT (UPPER, upper);
+
+
+/*----------------------------------------------------------------------*/
+/*  WCRTOMB: wchar_t wcrtomb (char *s, wchar_t wc, mbstate_t *ps)	*/
+/*----------------------------------------------------------------------*/
+
+typedef struct
+{
+  char s_flg;
+  wchar_t wc;
+  char t_flg;
+  char t_init;
+}
+TIN_WCRTOMB_REC;
+
+typedef struct
+{
+  TMD_ERRET (wchar_t);
+  char s[MBSSIZE];
+}
+TEX_WCRTOMB_REC;
+
+TMD_RECHEAD (WCRTOMB);
+
+
+/*----------------------------------------------------------------------*/
+/*  WCSCAT: wchar_t *wcscat (wchar_t *ws1, wchar_t *ws2)		*/
+/*----------------------------------------------------------------------*/
+
+typedef struct
+{
+  wchar_t ws1[WCSSIZE];
+  wchar_t ws2[WCSSIZE];
+}
+TIN_WCSCAT_REC;
+
+typedef struct
+{
+  TMD_ERRET (wchar_t *);
+  wchar_t ws[WCSSIZE];
+}
+TEX_WCSCAT_REC;
+
+TMD_RECHEAD (WCSCAT);
+
+
+/*----------------------------------------------------------------------*/
+/*  WCSCHR: wchar_t *wcschr (wchar_t *ws, wchar_t wc);			*/
+/*----------------------------------------------------------------------*/
+
+typedef struct
+{
+  wchar_t ws[WCSSIZE];
+  wchar_t wc;
+}
+TIN_WCSCHR_REC;
+
+typedef TEX_ERRET_REC (wchar_t *) TEX_WCSCHR_REC;
+TMD_RECHEAD (WCSCHR);
+
+
+/*----------------------------------------------------------------------*/
+/*  WCSCMP: int wcscmp (const wchar_t *ws1, const wchar_t *ws2)		*/
+/*----------------------------------------------------------------------*/
+
+typedef TIN_WCSCAT_REC TIN_WCSCMP_REC;
+typedef TEX_ERRET_REC (int) TEX_WCSCMP_REC;
+TMD_RECHEAD (WCSCMP);
+
+
+/*----------------------------------------------------------------------*/
+/*  WCSCOLL: int wcscoll (const wchar_t *ws1, const wchar_t *ws2)	*/
+/*----------------------------------------------------------------------*/
+
+typedef TIN_WCSCMP_REC TIN_WCSCOLL_REC;
+typedef struct
+{
+  TMD_ERRET (int);
+  char cmp_flg;
+}
+TEX_WCSCOLL_REC;
+TMD_RECHEAD (WCSCOLL);
+
+
+/*----------------------------------------------------------------------*/
+/*  WCSCPY: wchar_t *wcscpy (wchar_t *ws1, const wchar_t *ws2)		*/
+/*----------------------------------------------------------------------*/
+
+typedef struct
+{
+  wchar_t ws[WCSSIZE];	/* ws2: original string */
+}
+TIN_WCSCPY_REC;
+
+typedef TEX_WCSCAT_REC TEX_WCSCPY_REC;
+TMD_RECHEAD (WCSCPY);
+
+
+/*----------------------------------------------------------------------*/
+/*  WCSCSPN: size_t wcscspn (const wchar_t *ws1, const wchar_t *ws2)	*/
+/*----------------------------------------------------------------------*/
+
+typedef TIN_WCSCAT_REC TIN_WCSCSPN_REC;
+typedef TEX_ERRET_REC (size_t) TEX_WCSCSPN_REC;
+TMD_RECHEAD (WCSCSPN);
+
+
+/*----------------------------------------------------------------------*/
+/*  WCSLEN: size_t wcslen (const wchar_t *ws)				*/
+/*----------------------------------------------------------------------*/
+
+typedef TIN_WCSCPY_REC TIN_WCSLEN_REC;
+typedef TEX_ERRET_REC (size_t) TEX_WCSLEN_REC;
+TMD_RECHEAD (WCSLEN);
+
+
+/*----------------------------------------------------------------------*/
+/*  WCSNCAT: wchar_t *wcsncat (wchar_t *ws1, const wchar_t *ws2,	*/
+/*			       size_t n)				*/
+/*----------------------------------------------------------------------*/
+
+typedef struct
+{
+  wchar_t ws1[WCSSIZE];
+  wchar_t ws2[WCSSIZE];
+  size_t n;
+}
+TIN_WCSNCAT_REC;
+
+typedef TEX_WCSCAT_REC TEX_WCSNCAT_REC;
+TMD_RECHEAD (WCSNCAT);
+
+
+/*----------------------------------------------------------------------*/
+/*  WCSNCMP: int *wcsncmp (const wchar_t *ws1, const wchar_t *ws2,	*/
+/*			   size_t n)					*/
+/*----------------------------------------------------------------------*/
+
+typedef TIN_WCSNCAT_REC TIN_WCSNCMP_REC;
+typedef TEX_ERRET_REC (int) TEX_WCSNCMP_REC;
+TMD_RECHEAD (WCSNCMP);
+
+
+/*----------------------------------------------------------------------*/
+/*  WCSNCPY: wchar_t *wcsncpy (wchar_t *ws1, const wchar_t *ws2,	*/
+/*			       size_t n)				*/
+/*----------------------------------------------------------------------*/
+
+typedef struct
+{
+  wchar_t ws[WCSSIZE];	/* ws2: original string */
+  size_t n;
+}
+TIN_WCSNCPY_REC;
+
+typedef TEX_WCSCPY_REC TEX_WCSNCPY_REC;
+TMD_RECHEAD (WCSNCPY);
+
+
+/*----------------------------------------------------------------------*/
+/*  WCSPBRK: wchar_t *wcspbrk (const wchar_t *ws1, const wchar_t *ws2)	*/
+/*----------------------------------------------------------------------*/
+
+typedef TIN_WCSCSPN_REC TIN_WCSPBRK_REC;
+
+typedef struct
+{
+  TMD_ERRET (wchar_t *);
+  wchar_t wc;
+}
+TEX_WCSPBRK_REC;
+
+TMD_RECHEAD (WCSPBRK);
+
+
+/*----------------------------------------------------------------------*/
+/*  WCSRTOMBS: size_t wcsrtombs (char *s, const wchar_t **ws, size_t n, */
+/*				 mbstate_t *ps)				*/
+/*----------------------------------------------------------------------*/
+
+typedef struct
+{
+  char s_flg;
+  char w_flg;		/* don't need this */
+  wchar_t ws[WCSSIZE];
+  size_t n;
+  char t_flg;
+  char t_init;
+}
+TIN_WCSRTOMBS_REC;
+
+typedef struct
+{
+  TMD_ERRET (size_t);
+  char s[MBSSIZE];
+}
+TEX_WCSRTOMBS_REC;
+
+TMD_RECHEAD (WCSRTOMBS);
+
+
+/*----------------------------------------------------------------------*/
+/*  WCSSPN: size_t wcsspn (const wchar_t *ws1, const wchar_t *ws2)	*/
+/*----------------------------------------------------------------------*/
+
+typedef TIN_WCSCSPN_REC TIN_WCSSPN_REC;
+typedef TEX_WCSCSPN_REC TEX_WCSSPN_REC;
+TMD_RECHEAD (WCSSPN);
+
+
+/*----------------------------------------------------------------------*/
+/*  WCSSTR: wchar_t *wcsstr (const wchar_t *ws1, const wchar_t *ws2)	*/
+/*----------------------------------------------------------------------*/
+
+typedef TIN_WCSCSPN_REC TIN_WCSSTR_REC;
+typedef TEX_ERRET_REC (wchar_t *) TEX_WCSSTR_REC;
+TMD_RECHEAD (WCSSTR);
+
+
+/*----------------------------------------------------------------------*/
+/*  WCSTOD: double wcstod (const wchar_t *np, wchar_t **endp)		*/
+/*----------------------------------------------------------------------*/
+
+typedef struct
+{
+  wchar_t np[WCSSIZE];
+}
+TIN_WCSTOD_REC;
+
+typedef struct
+{
+  TMD_ERRET (double);
+  double val;
+  wchar_t fwc;
+}
+TEX_WCSTOD_REC;
+
+TMD_RECHEAD (WCSTOD);
+
+
+/*----------------------------------------------------------------------*/
+/*  WCSTOK: wchar_t *wcstok (wchar_t *ws, const wchar_t *dlm,		*/
+/*			     wchar_t **pt)				*/
+/*----------------------------------------------------------------------*/
+
+typedef struct
+{
+  struct
+  {
+    char w_flg;
+    wchar_t ws[WCSSIZE];
+    wchar_t dt[WCSSIZE];	/* delimiter */
+  }
+  seq[WCSTOK_SEQNUM];
+}
+TIN_WCSTOK_REC;
+
+typedef struct
+{
+  struct
+  {
+    TMD_ERRET (wchar_t *);
+    wchar_t ws[WCSSIZE];
+  }
+  seq[WCSTOK_SEQNUM];
+}
+TEX_WCSTOK_REC;
+
+TMD_RECHEAD (WCSTOK);
+
+
+/*----------------------------------------------------------------------*/
+/*  WCSTOMBS: size_t wcstombs (char s, const wchar_t *ws, size_t n)	*/
+/*----------------------------------------------------------------------*/
+
+typedef struct
+{
+  char s_flg;
+  char w_flg;		/* currently we don't need it. */
+  wchar_t ws[WCSSIZE];
+  size_t n;
+}
+TIN_WCSTOMBS_REC;
+
+typedef struct
+{
+  TMD_ERRET (size_t);
+  char s[MBSSIZE];
+}
+TEX_WCSTOMBS_REC;
+
+TMD_RECHEAD (WCSTOMBS);
+
+
+/*----------------------------------------------------------------------*/
+/*  WCSWIDTH: int wcswidth (const wchar_t *ws, size_t n)		*/
+/*----------------------------------------------------------------------*/
+
+typedef TIN_WCSNCPY_REC TIN_WCSWIDTH_REC;
+typedef TEX_ERRET_REC (int) TEX_WCSWIDTH_REC;
+TMD_RECHEAD (WCSWIDTH);
+
+
+/*----------------------------------------------------------------------*/
+/*  WCSXFRM: size_t wcsxfrm (wchar_t *ws1, const wchar_t *ws2, size_t n)*/
+/*----------------------------------------------------------------------*/
+
+typedef struct
+{
+  wchar_t org1[WCSSIZE];
+  wchar_t org2[WCSSIZE];
+  int n1, n2;
+}
+TIN_WCSXFRM_REC;
+
+typedef TEX_ERRET_REC (size_t) TEX_WCSXFRM_REC;	/* only for org2[] */
+TMD_RECHEAD (WCSXFRM);
+
+
+/*----------------------------------------------------------------------*/
+/*  WCTOB: int wctob (wint_t wc)					*/
+/*----------------------------------------------------------------------*/
+
+typedef struct
+{
+  wint_t wc;
+}
+TIN_WCTOB_REC;
+
+typedef TEX_ERRET_REC (int) TEX_WCTOB_REC;
+TMD_RECHEAD (WCTOB);
+
+
+/*----------------------------------------------------------------------*/
+/*  WCTOMB: int wctomb (char *s, wchar_t wc)				*/
+/*----------------------------------------------------------------------*/
+
+typedef struct
+{
+  char s_flg;
+  wchar_t wc;
+}
+TIN_WCTOMB_REC;
+
+typedef struct
+{
+  TMD_ERRET (int);
+  char s[MBSSIZE];
+}
+TEX_WCTOMB_REC;
+
+TMD_RECHEAD (WCTOMB);
+
+
+/*----------------------------------------------------------------------*/
+/*  WCTRANS: wctrans_t wctrans (const char *charclass)			*/
+/*----------------------------------------------------------------------*/
+
+typedef struct
+{
+  char class[MBSSIZE];
+}
+TIN_WCTRANS_REC;
+
+typedef TEX_ERRET_REC (wctrans_t) TEX_WCTRANS_REC;
+TMD_RECHEAD (WCTRANS);
+
+
+/*----------------------------------------------------------------------*/
+/*  WCTYPE: wctype_t wctype (const char *class)				*/
+/*----------------------------------------------------------------------*/
+
+typedef TIN_WCTRANS_REC TIN_WCTYPE_REC;
+typedef TEX_ERRET_REC (wctype_t) TEX_WCTYPE_REC;
+TMD_RECHEAD (WCTYPE);
+
+
+/*----------------------------------------------------------------------*/
+/*  WCWIDTH: int wcwidth (wchar_t wc)					*/
+/*----------------------------------------------------------------------*/
+
+typedef struct
+{
+  wchar_t wc;
+}
+TIN_WCWIDTH_REC;
+
+typedef TEX_ERRET_REC (int) TEX_WCWIDTH_REC;
+TMD_RECHEAD (WCWIDTH);
+
+#endif /* TST_TYPES_H */