about summary refs log tree commit diff
path: root/localedata/tests-mbwc/tst_wcscat.c
diff options
context:
space:
mode:
authorAndreas Jaeger <aj@suse.de>2000-06-27 15:53:49 +0000
committerAndreas Jaeger <aj@suse.de>2000-06-27 15:53:49 +0000
commit22827fb10b7963e873025416a601c185ee6dade5 (patch)
tree430d62380f6b38d289d402fb91e6617cc0717875 /localedata/tests-mbwc/tst_wcscat.c
parentcb6815da362a320f2bc9a2d0e0bd95ca354ff380 (diff)
downloadglibc-22827fb10b7963e873025416a601c185ee6dade5.tar.gz
glibc-22827fb10b7963e873025416a601c185ee6dade5.tar.xz
glibc-22827fb10b7963e873025416a601c185ee6dade5.zip
Add new files to tests and add environment for them.
Diffstat (limited to 'localedata/tests-mbwc/tst_wcscat.c')
-rw-r--r--localedata/tests-mbwc/tst_wcscat.c78
1 files changed, 78 insertions, 0 deletions
diff --git a/localedata/tests-mbwc/tst_wcscat.c b/localedata/tests-mbwc/tst_wcscat.c
new file mode 100644
index 0000000000..a2c4c5708b
--- /dev/null
+++ b/localedata/tests-mbwc/tst_wcscat.c
@@ -0,0 +1,78 @@
+/*
+  WCSCAT: wchar_t *wcscat (wchar_t *ws1, const wchar_t *ws2);
+*/
+
+#define TST_FUNCTION wcscat
+
+#include "tsp_common.c"
+#include "dat_wcscat.c"
+
+int
+tst_wcscat (FILE * fp, int debug_flg)
+{
+  TST_DECL_VARS (wchar_t *);
+  wchar_t *ws1, *ws2, *ws_ex;
+  int i, err;
+
+  TST_DO_TEST (wcscat)
+  {
+    TST_HEAD_LOCALE (wcscat, S_WCSCAT);
+    TST_DO_REC (wcscat)
+    {
+      TST_GET_ERRET (wcscat);
+      ws1 = TST_INPUT (wcscat).ws1;	/* external value: size WCSSIZE */
+      ws2 = TST_INPUT (wcscat).ws2;
+
+      TST_CLEAR_ERRNO;
+      ret = wcscat (ws1, ws2);
+      TST_SAVE_ERRNO;
+
+      TST_IF_RETURN (S_WCSCAT)
+      {
+	if (ret == ws1)
+	  {
+	    Result (C_SUCCESS, S_WCSCAT, CASE_3, MS_PASSED);
+	  }
+	else
+	  {
+	    err_count++;
+	    Result (C_FAILURE, S_WCSCAT, CASE_3,
+		    "the return address may not be correct");
+	  }
+      }
+
+      /* function specific test cases here */
+
+      if (ret == ws1)
+	{
+	  ws_ex = TST_EXPECT (wcscat).ws;
+	  for (err = 0, i = 0;
+	       (ws1[i] != 0L || ws_ex[i] != 0L) && i < WCSSIZE; i++)
+	    {
+	      if (debug_flg)
+		{
+		  fprintf (stdout, "tst_wcscat() : ws1[%d] = 0x%x\n", i,
+			   ws1[i]);
+		}
+
+	      if (ws1[i] != ws_ex[i])
+		{
+		  err++;
+		  err_count++;
+		  Result (C_FAILURE, S_WCSCAT, CASE_4,
+			  "concatinated string is different from an "
+			  "expected string");
+		  break;
+		}
+	    }
+
+	  if (!err)
+	    {
+	      Result (C_SUCCESS, S_WCSCAT, CASE_4, MS_PASSED);
+	    }
+	}
+    }
+  }
+
+  return err_count;
+}