about summary refs log tree commit diff
path: root/localedata/tests-mbwc/tst_wcspbrk.c
diff options
context:
space:
mode:
Diffstat (limited to 'localedata/tests-mbwc/tst_wcspbrk.c')
-rw-r--r--localedata/tests-mbwc/tst_wcspbrk.c80
1 files changed, 80 insertions, 0 deletions
diff --git a/localedata/tests-mbwc/tst_wcspbrk.c b/localedata/tests-mbwc/tst_wcspbrk.c
new file mode 100644
index 0000000000..1bb0f6dc44
--- /dev/null
+++ b/localedata/tests-mbwc/tst_wcspbrk.c
@@ -0,0 +1,80 @@
+/*
+  WCSPBRK: wchar_t *wcspbrk (const wchar_t *ws1, const wchar_t *ws2);
+*/
+
+#define TST_FUNCTION wcspbrk
+
+#include "tsp_common.c"
+#include "dat_wcspbrk.c"
+
+int
+tst_wcspbrk (FILE * fp, int debug_flg)
+{
+  TST_DECL_VARS (wchar_t *);
+  wchar_t *ws1, *ws2;
+  int err;
+  wchar_t wc_ex;
+
+  TST_DO_TEST (wcspbrk)
+  {
+    TST_HEAD_LOCALE (wcspbrk, S_WCSPBRK);
+    TST_DO_REC (wcspbrk)
+    {
+      TST_GET_ERRET (wcspbrk);
+      ws1 = TST_INPUT (wcspbrk).ws1;
+      ws2 = TST_INPUT (wcspbrk).ws2;
+
+      ret = wcspbrk (ws1, ws2);
+
+      if (debug_flg)
+	{
+	  fprintf (stdout, "wcspbrk() [ %s : %d ] ret = %s\n", locale,
+		   rec + 1, (ret == NULL) ? "null" : "not null");
+	  if (ret)
+	    fprintf (stderr,
+		     "			      ret[0] = 0x%x : 0x%x = ws2[0]\n",
+		     ret[0], ws2[0]);
+	}
+
+      TST_IF_RETURN (S_WCSPBRK)
+      {
+	if (ws2[0] == 0)
+	  {
+	    if (ret == ws1)
+	      {
+		Result (C_SUCCESS, S_WCSPBRK, CASE_3, MS_PASSED);
+	      }
+	    else
+	      {
+		err_count++;
+		Result (C_FAILURE, S_WCSPBRK, CASE_3,
+			"return address is not same address as ws1");
+	      }
+
+	    continue;
+	  }
+
+	wc_ex = TST_EXPECT (wcspbrk).wc;
+
+	if (debug_flg)
+	  fprintf (stdout,
+		   "			    *ret = 0x%x <-> 0x%x = wc_ex\n",
+		   *ret, wc_ex);
+
+	if (*ret != wc_ex)
+	  {
+	    err++;
+	    err_count++;
+	    Result (C_FAILURE, S_WCSPBRK, CASE_4, "the pointed wc is "
+		    "different from an expected wc");
+	  }
+	else
+	  {
+	    Result (C_SUCCESS, S_WCSPBRK, CASE_4, MS_PASSED);
+	  }
+      }
+    }
+  }
+
+  return err_count;
+}