about summary refs log tree commit diff
path: root/localedata/tests-mbwc/tst_wctrans.c
diff options
context:
space:
mode:
Diffstat (limited to 'localedata/tests-mbwc/tst_wctrans.c')
-rw-r--r--localedata/tests-mbwc/tst_wctrans.c51
1 files changed, 51 insertions, 0 deletions
diff --git a/localedata/tests-mbwc/tst_wctrans.c b/localedata/tests-mbwc/tst_wctrans.c
new file mode 100644
index 0000000000..129b797fb3
--- /dev/null
+++ b/localedata/tests-mbwc/tst_wctrans.c
@@ -0,0 +1,51 @@
+/*
+  WCTRANS: wctrans_t wctrans (const char *charclass);
+*/
+
+#define TST_FUNCTION wctrans
+
+#include "tsp_common.c"
+#include "dat_wctrans.c"
+
+int
+tst_wctrans (FILE * fp, int debug_flg)
+{
+  TST_DECL_VARS (wctrans_t);
+  char *class;
+
+  TST_DO_TEST (wctrans)
+  {
+    TST_HEAD_LOCALE (wctrans, S_WCTRANS);
+    TST_DO_REC (wctrans)
+    {
+      TST_GET_ERRET (wctrans);
+      class = TST_INPUT (wctrans).class;
+
+      TST_CLEAR_ERRNO;
+      ret = wctrans (class);
+      TST_SAVE_ERRNO;
+
+      if (debug_flg)
+	{
+	  fprintf (stderr, "tst_wctrans : [ %d ] ret = %d\n", rec + 1, ret);
+	  fprintf (stderr, "		       errno = %d\n", errno_save);
+	}
+
+      TST_IF_RETURN (S_WCTRANS)
+      {
+	if (ret != 0)
+	  {
+	    Result (C_SUCCESS, S_WCTYPE, CASE_3, MS_PASSED);
+	  }
+	else
+	  {
+	    err_count++;
+	    Result (C_FAILURE, S_WCTYPE, CASE_3,
+		    "should return non-0, but returned 0");
+	  }
+      }
+    }
+  }
+
+  return err_count;
+}