| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 | /*  WCSCOLL: int wcscoll (const wchar_t *ws1, const wchar_t *ws2);*/#define TST_FUNCTION wcscoll#include "tsp_common.c"#include "dat_wcscoll.c"inttst_wcscoll (FILE * fp, int debug_flg){  TST_DECL_VARS (int);  wchar_t *ws1, *ws2;  int cmp;  TST_DO_TEST (wcscoll)  {    TST_HEAD_LOCALE (wcscoll, S_WCSCOLL);    TST_DO_REC (wcscoll)    {      TST_GET_ERRET (wcscoll);      ws1 = TST_INPUT (wcscoll).ws1;	/* external value: size WCSSIZE */      ws2 = TST_INPUT (wcscoll).ws2;      TST_CLEAR_ERRNO;      ret = wcscoll (ws1, ws2);      TST_SAVE_ERRNO;      if (debug_flg)	{	  fprintf (stderr, "tst_wcscoll: ret = %d\n", ret);	}      cmp = TST_EXPECT (wcscoll).cmp_flg;      TST_IF_RETURN (S_WCSCOLL)      {	if (cmp != 0)	  {	    if ((cmp == 1 && ret > 0) || (cmp == -1 && ret < 0))	      {		Result (C_SUCCESS, S_WCSCOLL, CASE_3, MS_PASSED);	      }	    else	      {		err_count++;		if (cmp == 1)		  {		    if (ret == 0)		      Result (C_FAILURE, S_WCSCOLL, CASE_3,			      "the return value should be positive"			      " but it's zero.");		    else		      Result (C_FAILURE, S_WCSCOLL, CASE_3,			      "the return value should be positive"			      " but it's negative.");		  }		else		  {		    if (ret == 0)		      Result (C_FAILURE, S_WCSCOLL, CASE_3,			      "the return value should be negative"			      " but it's zero.");		    else		      Result (C_FAILURE, S_WCSCOLL, CASE_3,			      "the return value should be negative"			      " but it's positive.");		  }	      }	  }      }    }  }  return err_count;}
 |