about summary refs log tree commit diff
path: root/localedata/tests-mbwc/tst_wcstod.c
diff options
context:
space:
mode:
authorAndreas Jaeger <aj@suse.de>2000-06-29 10:36:12 +0000
committerAndreas Jaeger <aj@suse.de>2000-06-29 10:36:12 +0000
commit5ca8accdcd234f3479a9b686b3519768be9af69b (patch)
tree94acd3d8caae432164e69392d278a1a0539f8633 /localedata/tests-mbwc/tst_wcstod.c
parentee6c9d77a3407e265106181a0e543f59b635f757 (diff)
downloadglibc-5ca8accdcd234f3479a9b686b3519768be9af69b.tar.gz
glibc-5ca8accdcd234f3479a9b686b3519768be9af69b.tar.xz
glibc-5ca8accdcd234f3479a9b686b3519768be9af69b.zip
Update.
	(tst_mbrtowc-ENV): New.
	(tst_mbsrtowcs-ENV): New.
	(tst_mbstowcs-ENV): New.
	(tst_strfmon-ENV): New.
	(tst_wcrtomb-ENV): New.
	(tst_wcsrtombs-ENV): New.
	(tst_wcstod-ENV): New.
	(tst_wcstok-ENV): New.
	(tst_wcstombs-ENV): New.
	* tests-mbwc/dat_wcstok.c: Likewise.
	* tests-mbwc/tst_wcstok.c: Likewise.
	* tests-mbwc/dat_wcstod.c: Likewise.
	* tests-mbwc/tst_wcstod.c: Likewise.
	* tests-mbwc/dat_mbrtowc.c: Likewise.
	* tests-mbwc/tst_mbrtowc.c: Likewise.
	* tests-mbwc/dat_wcsrtombs.c: Likewise.
	* tests-mbwc/tst_wcsrtombs.c: Likewise.
	* tests-mbwc/dat_wcstombs.c: Likewise.
	* tests-mbwc/tst_wcstombs.c: Likewise.
	* tests-mbwc/dat_mbsrtowcs.c: Likewise.
	* tests-mbwc/tst_mbsrtowcs.c: Likewise.
	* tests-mbwc/dat_wcrtomb.c: Likewise.
	* tests-mbwc/tst_wcrtomb.c: Likewise.
	* tests-mbwc/dat_mbstowcs.c: Likewise.
	* tests-mbwc/tst_mbstowcs.c: Likewise.
	* tests-mbwc/dat_strfmon.c: Likewise.
	* tests-mbwc/tst_strfmon.c: Likewise.
Diffstat (limited to 'localedata/tests-mbwc/tst_wcstod.c')
-rw-r--r--localedata/tests-mbwc/tst_wcstod.c68
1 files changed, 68 insertions, 0 deletions
diff --git a/localedata/tests-mbwc/tst_wcstod.c b/localedata/tests-mbwc/tst_wcstod.c
new file mode 100644
index 0000000000..5ee151bd54
--- /dev/null
+++ b/localedata/tests-mbwc/tst_wcstod.c
@@ -0,0 +1,68 @@
+/*
+  WCSTOD: double wcstod (wchar_t *np, const wchar_t **endp);
+*/
+
+#define TST_FUNCTION wcstod
+
+#include "tsp_common.c"
+#include "dat_wcstod.c"
+
+int
+tst_wcstod (FILE * fp, int debug_flg)
+{
+  TST_DECL_VARS (double);
+  wchar_t *np, *endp, fwc;
+  double val;
+
+  TST_DO_TEST (wcstod)
+  {
+    TST_HEAD_LOCALE (wcstod, S_WCSTOD);
+    TST_DO_REC (wcstod)
+    {
+      TST_GET_ERRET (wcstod);
+      np = TST_INPUT (wcstod).np;
+
+      TST_CLEAR_ERRNO;
+      ret = wcstod (np, &endp);
+      TST_SAVE_ERRNO;
+
+      if (debug_flg)
+	{
+	  fprintf (stdout, "wcstod() [ %s : %d ] ret  = %f\n", locale,
+		   rec + 1, ret);
+	  fprintf (stdout, "			  *endp = 0x%lx\n", *endp);
+	}
+
+      TST_IF_RETURN (S_WCSTOD)
+      {
+	if (ret != 0)
+	  {
+	    val = ret - TST_EXPECT (wcstod).val;
+	    if (TST_ABS (val) < TST_DBL_EPS)
+	      {
+		Result (C_SUCCESS, S_WCSTOD, CASE_3, MS_PASSED);
+	      }
+	    else
+	      {
+		err_count++;
+		Result (C_FAILURE, S_WCSTOD, CASE_3, "return value is wrong");
+	      }
+	  }
+      }
+
+      fwc = TST_EXPECT (wcstod).fwc;
+
+      if (fwc == *endp)
+	{
+	  Result (C_SUCCESS, S_WCSTOD, CASE_4, MS_PASSED);
+	}
+      else
+	{
+	  err_count++;
+	  Result (C_FAILURE, S_WCSTOD, CASE_4, "a final wc is wrong.");
+	}
+    }
+  }
+
+  return err_count;
+}