Exemple #1
0
void test_pipeutils(IUnitTest* _ts)
{
	TEST_SUITE(_ts,_T("Pipe"),_T("pipe utils"));

	DWORD data1 = 0;
	get_hex(_T("9d0bDCfe"),data1);
	ok(EQL(data1,0x9d0bdcfe),_T("get_hex() error"));

	WORD data2 = 0;
	get_hex(_T("DCfe"),data2);
	ok(EQL(data2,0xdcfe),_T("get_hex() error"));

	BYTE data3 = 0;
	get_hex(_T("a1"),data3);
	ok(EQL(data3,0xa1),_T("get_hex() error"));

	CString str;
	guid_tostring(CPipeDataAGUID,str);
	GUID guid;
	string_toguid(str,guid);
	ok(is_equal(guid,CPipeDataAGUID),_T("bad guid opeartions"));

	CString guidstr1(_T("{12345678-1234-1234-1212121212121212}"));
	ok(string_toguid(guidstr1,guid),_T("guid verify failed"));

	CString badstr2(_T("12345678-1234-1234-1212121212121212}"));
	ok(!string_toguid(badstr2,guid),_T("guid verify failed"));

	CString badstr3(_T("{1234567-1234-1234-1212121212121212}"));
	ok(!string_toguid(badstr3,guid),_T("guid verify failed"));
}
Exemple #2
0
test_a_long_double (void)
{
  EQL ( 6,  7, "%.0La", 0.0L);      /* 0x0p+0 */
  EQL ( 6,  7, "%.0La", 1.0L);      /* 0x8p-3 */
  EQL ( 6,  7, "%.0La", 2.0L);      /* 0x8p-2 */
  EQL ( 8,  9, "%.1La", 3.0L);      /* 0xc.0p-2 */
  EQL ( 9, 10, "%.2La", 4.0L);      /* 0xa.00p-1 */
}
test_g_long_double (void)
{
  /* Numbers exactly representable in binary floating point.  */
  EQL (  1,   2, "%Lg", 0.0L);
  RNG (  3,   8, 9, "%Lg", 1.0L / 2);
  RNG (  4,   9, 10, "%Lg", 1.0L / 4);
  RNG (  5,  10, 11, "%Lg", 1.0L / 8);
  RNG (  6,  11, 12, "%Lg", 1.0L / 16);
  RNG (  7,  12, 13, "%Lg", 1.0L / 32);
  RNG (  8,  13, 14, "%Lg", 1.0L / 64);
  RNG (  9,  14, 15, "%Lg", 1.0L / 128);
  RNG ( 10,  15, 16, "%Lg", 1.0L / 256);
  RNG ( 10,  15, 16, "%Lg", 1.0L / 512);

  /* Numbers that are not exactly representable.  */

  /* The following test case results in up to 14 bytes on powerpc*-*-*
     but only in 13 bytes on x86_64 (see PR testsuite/79293).  Test just
     for the former for simplicity.  */
  RNG ( 3, 14, 15, "%Lg", 0.1L);

  RNG ( 4, 13, 14, "%Lg", 0.12L);
  RNG ( 5, 13, 14, "%Lg", 0.123L);
  RNG ( 6, 13, 14, "%Lg", 0.1234L);
  RNG ( 7, 13, 14, "%Lg", 0.12345L);
  RNG ( 8, 13, 14, "%Lg", 0.123456L);

  RNG ( 4, 12, 13, "%Lg", 0.123e+1L);
  RNG ( 8, 13, 14, "%Lg", 0.123e+12L);
  RNG ( 9, 17, 18, "%Lg", 0.123e+134L);
}
Exemple #4
0
static void Z48_read_rest(CL_FORM *base, CL_FORM *display[])
{
	LOAD_SYMBOL(SYMBOL(Slisp, 48), ARG(0));	/* T */
	COPY(&display[0][1], ARG(1));
	LOAD_SYMBOL(SYMBOL(Slisp, 48), ARG(2));	/* T */
	LOAD_NIL(ARG(3));
	LOAD_SYMBOL(SYMBOL(Slisp, 48), ARG(4));	/* T */
	peek_char1(ARG(0));
	if(EQL(&display[0][0], ARG(0)))
	{
		COPY(&display[0][1], ARG(0));
		LOAD_SYMBOL(SYMBOL(Slisp, 48), ARG(1));	/* T */
		LOAD_NIL(ARG(2));
		LOAD_NIL(ARG(3));
		read_char1(ARG(0));
		LOAD_NIL(ARG(0));
	}
	else
	{
		COPY(&display[0][1], ARG(0));
		LOAD_SYMBOL(SYMBOL(Slisp, 48), ARG(1));	/* T */
		LOAD_NIL(ARG(2));
		LOAD_SYMBOL(SYMBOL(Slisp, 48), ARG(3));	/* T */
		read1(ARG(0));
		Z48_read_rest(ARG(1), display);
		ALLOC_CONS(ARG(2), ARG(0), ARG(1), ARG(0));
	}
}
test_n (void)
{
  int n;
  EQL (  0,   1, "%n", &n);
  EQL (  1,   2, "1%n", &n);
  EQL (  2,   3, "12%n", &n);
  EQL (  3,   4, "12%n3", &n);
  EQL (  4,   5, "12%n34", &n);
  EQL (  4,   5, "12%n34%n", &n, &n);
  EQL (  5,   6, "12%n34%n5", &n, &n);
  EQL (  6,   7, "12%n34%n56", &n, &n);
  EQL (  6,   7, "%s%n%s%n%s", "12", &n, "34", &n, "56");
}
test_e_long_double (long double d)
{
  RNG (12, 17, 18, "%Le",  1.0e0L);
  RNG (13, 18, 19, "%Le", -1.0e0L);
  RNG (12, 17, 18, "%Le",  1.0e+1L);
  RNG (13, 18, 19, "%Le", -1.0e+1L);
  RNG (12, 18, 19, "%Le",  1.0e+12L);
  RNG (13, 19, 20, "%Le", -1.0e+12L);
  RNG (13, 19, 20, "%Le",  1.0e+123L);
  RNG (14, 20, 21, "%Le", -1.0e+123L);

  RNG (12, 18, 19, "%Le",  9.999e+99L);
  RNG (12, 18, 19, "%Le",  9.9999e+99L);
  RNG (12, 18, 19, "%Le",  9.99999e+99L);

#if __DBL_DIG__ < __LDBL_DIG__
  RNG (12, 17, 18, "%Le",  9.999999e+99L);
#else
  RNG (12, 18, 19, "%Le",  9.999999e+99L);
#endif

  /* The actual output of the following directive depends on the rounding
     mode.  */
  /* RNG (12, "%Le",  9.9999994e+99L); */

  RNG (12, 17, 18, "%Le",  1.0e-1L);
  RNG (12, 17, 18, "%Le",  1.0e-12L);
  RNG (13, 18, 19, "%Le",  1.0e-123L);

  EQL ( 6,  7, "%.0Le",   1.0e-111L);

  RNG ( 8, 13, 14, "%.1Le",   1.0e-111L);
  RNG (19, 25, 25, "%.12Le",  1.0e-112L);
  RNG (20, 26, 27, "%.13Le",  1.0e-113L);

  /* The following correspond to the double results plus 1 for the upper
     bound accounting for the four-digit exponent.  The lower bound is
     for inf/nan.  */
  RNG ( 3, 20, 21, "%Le", d);    /* inf or 0.000000e+00 ...  -1.189732e+4932 */
  RNG ( 3,  8,  9, "%.Le", d);
  RNG ( 3,  9, 10, "%.0Le", d);
  RNG ( 3, 15, 16, "%.1Le", d);  /* inf or 0.0e+00      ...  -1.2e+4932 */
  RNG ( 3, 16, 17, "%.2Le", d);  /* inf or 0.00e+00     ...  -1.19e+4932 */
  RNG ( 3, 17, 18, "%.3Le", d);
  RNG ( 3, 18, 19, "%.4Le", d);
  RNG ( 3, 19, 20, "%.5Le", d);
  RNG ( 3, 20, 21, "%.6Le", d);  /* same as plain "%Le" */
  RNG ( 3, 21, 22, "%.7Le", d);  /* inf or 0.0000000e+00 ... -1.1897315e+4932 */

  RNG ( 3,  9, 10, "%.*Le", 0, d);
  RNG ( 3, 15, 16, "%.*Le", 1, d);
  RNG ( 3, 16, 17, "%.*Le", 2, d);
  RNG ( 3, 17, 18, "%.*Le", 3, d);
  RNG ( 3, 18, 19, "%.*Le", 4, d);
  RNG ( 3, 19, 20, "%.*Le", 5, d);
  RNG ( 3, 20, 21, "%.*Le", 6, d);
  RNG ( 3, 21, 22, "%.*Le", 7, d);
}
Exemple #7
0
static void Z69_lambda(CL_FORM *base)
{
	COPY(INDIRECT(GET_FORM(ARG(0)) + 5), ARG(2));
	COPY(INDIRECT(GET_FORM(ARG(0)) + 4), ARG(3));
	Fle(ARG(2), 2);
	if(CL_TRUEP(ARG(2)))
	{
		LOAD_SMSTR((CL_FORM *)&Kmake_string_input_stream1[0], ARG(2));	/* reached start of stream */
		Ferror(ARG(2), 1);
	}
	COPY(INDIRECT(GET_FORM(ARG(0)) + 5), ARG(2));
	F1minus(ARG(2));
	COPY(ARG(2), INDIRECT(GET_FORM(ARG(0)) + 5));
	COPY(INDIRECT(GET_FORM(ARG(0)) + 3), ARG(3));
	Fstringp(ARG(3));
	if(CL_TRUEP(ARG(3)))
	{
	}
	else
	{
		COPY(SYMVAL(Slisp, 58), ARG(3));	/* WRONG_TYPE */
		COPY(INDIRECT(GET_FORM(ARG(0)) + 3), ARG(4));
		LOAD_SYMBOL(SYMBOL(Slisp, 44), ARG(5));	/* STRING */
		Ferror(ARG(3), 3);
	}
	COPY(INDIRECT(GET_FORM(ARG(0)) + 3), ARG(3));
	COPY(INDIRECT(GET_FORM(ARG(0)) + 5), ARG(4));
	Frow_major_aref(ARG(3));
	if(EQL(ARG(1), ARG(3)))
	{
	}
	else
	{
		LOAD_SMSTR((CL_FORM *)&Kmake_string_input_stream1[2], ARG(2));	/* %s should be eql to %s */
		COPY(ARG(1), ARG(3));
		COPY(INDIRECT(GET_FORM(ARG(0)) + 3), ARG(4));
		Fstringp(ARG(4));
		if(CL_TRUEP(ARG(4)))
		{
		}
		else
		{
			COPY(SYMVAL(Slisp, 58), ARG(4));	/* WRONG_TYPE */
			COPY(INDIRECT(GET_FORM(ARG(0)) + 3), ARG(5));
			LOAD_SYMBOL(SYMBOL(Slisp, 44), ARG(6));	/* STRING */
			Ferror(ARG(4), 3);
		}
		COPY(INDIRECT(GET_FORM(ARG(0)) + 3), ARG(4));
		COPY(INDIRECT(GET_FORM(ARG(0)) + 5), ARG(5));
		Frow_major_aref(ARG(4));
		Ferror(ARG(2), 3);
	}
	LOAD_NIL(ARG(0));
}
test_g_double (double d)
{
  /* Numbers exactly representable in binary floating point.  */
  EQL (  1,   2, "%g", 0.0);

  RNG (  3,   8,  9, "%g", 1.0 / 2);
  RNG (  4,   9, 10, "%g", 1.0 / 4);
  RNG (  5,  10, 11, "%g", 1.0 / 8);
  RNG (  6,  11, 12, "%g", 1.0 / 16);
  RNG (  7,  12, 13, "%g", 1.0 / 32);
  RNG (  8,  13, 14, "%g", 1.0 / 64);
  RNG (  9,  14, 15, "%g", 1.0 / 128);
  RNG ( 10,  15, 16, "%g", 1.0 / 256);
  RNG ( 10,  16, 17, "%g", 1.0 / 512);

  /* Numbers that are not exactly representable.  */
  RNG ( 3, 13, 14, "%g", 0.1);
  RNG ( 4, 13, 14, "%g", 0.12);
  RNG ( 5, 13, 14, "%g", 0.123);
  RNG ( 6, 13, 14, "%g", 0.1234);
  RNG ( 7, 13, 14, "%g", 0.12345);
  RNG ( 8, 13, 14, "%g", 0.123456);

  RNG ( 4, 17, 18, "%g", 0.123e+1);
  RNG ( 8, 18, 19, "%g", 0.123e+12);
  RNG ( 9, 19, 20, "%g", 0.123e+134);

  RNG ( 1, 18, 19, "%g", d);
  RNG ( 1, 12, 13, "%.g", d);
  RNG ( 1, 12, 13, "%.0g", d);
  RNG ( 1, 12, 13, "%.1g", d);
  RNG ( 1, 14, 15, "%.2g", d);
  RNG ( 1, 15, 16, "%.3g", d);
  RNG ( 1, 16, 17, "%.4g", d);
  RNG ( 1, 17, 18, "%.5g", d);
  RNG ( 1, 18, 19, "%.6g", d);
  RNG ( 1, 19, 20, "%.7g", d);
  RNG ( 1, 20, 21, "%.8g", d);

  RNG ( 1, 315, 316, "%.9999g", d);

  RNG ( 1, 12, 13, "%.*g", 0, d);
  RNG ( 1, 12, 13, "%.*g", 1, d);
  RNG ( 1, 14, 15, "%.*g", 2, d);
  RNG ( 1, 15, 16, "%.*g", 3, d);
  RNG ( 1, 16, 17, "%.*g", 4, d);
  RNG ( 1, 17, 18, "%.*g", 5, d);
  RNG ( 1, 18, 19, "%.*g", 6, d);
  RNG ( 1, 19, 20, "%.*g", 7, d);
  RNG ( 1, 20, 21, "%.*g", 8, d);

  RNG ( 1, 315, 316, "%.*g", 9999, d);
}
test_a_double (double d)
{
  EQL ( 6,  7, "%.0a", 0.0);        /* 0x0p+0 */
  EQL ( 6,  7, "%.0a", 1.0);        /* 0x8p-3 */
  EQL ( 6,  7, "%.0a", 2.0);        /* 0x8p-2 */

  /* The decimal point may be up to MB_LEN_MAX long.  */
  RNG ( 8, 13, 14, "%.1a", 3.0);    /* 0xc.0p-2 */
  RNG ( 9, 14, 15, "%.2a", 4.0);    /* 0x8.00p-1 */
  RNG (10, 15, 16, "%.3a", 5.0);    /* 0xa.000p-1 */

  RNG (11, 16, 17, "%.*a", 4, 6.0); /* 0xc.0000p-1 */
  RNG (12, 17, 18, "%.*a", 5, 7.0); /* 0xe.00000p-1 */
	                            /* d is in [ 0, -DBL_MAX ] */
  RNG ( 3, 10, 11, "%.0a", d);      /* inf/nan or 0x0p+0 ... -0x2p+1023 */
  /* %a is poorly specified and allows for implementations divergence:
     some (such as Glibc) trim redundant trailing zeros after decimal
     point and others (e.g., Solaris) don't.  */
  RNG ( 3, 30, 31, "%.1a", d);      /* inf or 0x0.0p+0  ... -0x2.0...0p+1023 */
  RNG ( 3, 30, 31, "%.2a", d);      /* inf or 0x0.00p+0 ... -0x2.00...0p+1023 */
}
Exemple #10
0
// m1, m2: request
// v1, v2: action
static bool _mime_match_seg(const char* m1_ptr, long m1_len, VALUE v1, VALUE v2) {
  const char* m2_ptr = _strnchr(m1_ptr, m1_len, '/');
  long m2_len;
  if (m2_ptr) {
    m2_ptr++;
    m2_len = m1_len - (m2_ptr - m1_ptr);
    m1_len = (m2_ptr - m1_ptr) - 1;
  } else {
    m2_len = 0;
  }

  const char* v1_ptr = RSTRING_PTR(v1);
  const char* v2_ptr = RSTRING_PTR(v2);
  const long  v1_len = RSTRING_LEN(v1);
  const long  v2_len = RSTRING_LEN(v2);

# define EQL_STAR(s, len) (len == 1 && s[0] == '*')
# define EQL(s1, len1, s2, len2) (len1 == len2 && strncmp(s1, s2, len1) == 0)

  if (EQL_STAR(m1_ptr, m1_len)) {
    if (m2_len == 0 || EQL_STAR(m2_ptr, m2_len)) {
      return true;
    } else if (EQL(m2_ptr, m2_len, v2_ptr, v2_len)) {
      return true;
    } else {
      return false;
    }
  }
  if (!EQL(v1_ptr, v1_len, m1_ptr, m1_len)) {
    return false;
  }
  if (m2_len == 0 || EQL_STAR(m2_ptr, m2_len)) {
    return true;
  }
  return EQL(m2_ptr, m2_len, v2_ptr, v2_len);

# undef EQL
# undef EQL_STAR
}
test_percent (void)
{
  /* Provide extra arguments siunce the EQL macro needs at least one.  */
  EQL (  1,   2, "%%", 0);         /* { dg-warning "too many arguments" } */
  EQL (  2,   3, "%%%%", 0);       /* { dg-warning "too many arguments" } */
  EQL (  3,   4, "%%%%%%", 0);     /* { dg-warning "too many arguments" } */
  EQL (  3,   4, "%%%%%%%s", "");
  EQL (  3,   4, "%%%%%s%%", "");
  EQL (  3,   4, "%%%s%%%%", "");
  EQL (  3,   4, "%s%%%%%%", "");
}
Exemple #12
0
void test_CNamedPipeWrap_simple(IUnitTest* _ts)
{
	//TEST_SUITE(_ts,);
	TEST_SUITE(_ts,_T("Pipe"),_T("CNamedPipeWrap class tests"));

	CNamedPipeWrap serverpipe;
	CNamedPipeWrap clientpipe;

	const LPCTSTR szPipeName = _T("test_pipe");

	CEvent stopevnt(FALSE,TRUE);

	ok(serverpipe.create(szPipeName,stopevnt,PIPE_ACCESS_INBOUND,PIPE_READMODE_BYTE|PIPE_TYPE_BYTE,false),_T("server pipe create error"));
	ok(clientpipe.open(_T("."),szPipeName,GENERIC_WRITE,NMPWAIT_USE_DEFAULT_WAIT,PIPE_READMODE_BYTE,false),_T("client pipe open error"));

	bool bstoped = false;
	ok(serverpipe.connect(bstoped) && !bstoped,_T("server pipe connect error"));

	CString data(_T("0123456789"));

	string_converter<TCHAR,WCHAR> converted(data);
	DWORD dwMetaData = PDM_Data;
	ok(clientpipe.write_pipe((LPVOID)(LPCWSTR)converted,converted.get_length()*sizeof(WCHAR),dwMetaData),_T("client pipe write failed"));

	LPVOID pbuf = NULL;
	DWORD sz = 0;
	DWORD dwReadedMetaData = PDM_Null;
	ok(serverpipe.read_pipe(pbuf,sz,dwReadedMetaData,true),_T("server pipe read data failed"));
	ok(sz!=0,_T("server pipe read data failed (size == 0)"));
	ok(EQL(dwReadedMetaData,dwMetaData),_T("server pipe data differnt in meta type"));

	CString readed = string_converter<WCHAR,TCHAR>((WCHAR*)pbuf,sz/sizeof(WCHAR));
	ok(!readed.Compare(data),_T("readed by server pipe data not equal to written by client pipe data"));

	delete[] trace_free(pbuf);

	pbuf = NULL;
	ok(clientpipe.write_pipe(pbuf,0,PDM_Data),_T("client pipe write error"));

	pbuf = NULL;
	sz = 0;
	dwReadedMetaData = PDM_Null;
	ok(serverpipe.read_pipe(pbuf,sz,dwReadedMetaData,true),_T("server pipe read data failed"));

	delete[] trace_free(pbuf);

	ok(serverpipe.disconnect(),_T("service pipe disconnect error"));

	clientpipe.close();
	serverpipe.close();
}
Exemple #13
0
void right_parenthesis_reader(CL_FORM *base)
{
	if(EQL(ARG(1), SYMVAL(Slisp, 446)))	/* *PARENTHESIS-OPEN* */
	{
		LOAD_NIL(SYMVAL(Slisp, 446));	/* *PARENTHESIS-OPEN* */
		COPY(SYMVAL(Slisp, 446), ARG(0));	/* *PARENTHESIS-OPEN* */
	}
	else
	{
		LOAD_SMSTR((CL_FORM *)&Kright_parenthesis_reader[0], ARG(2));	/* Ignoring an unmatched ~a */
		COPY(ARG(1), ARG(3));
		Fwarn(ARG(2), 2);
		mv_count = 1;
		LOAD_NIL(ARG(0));
		mv_count = 0;
	}
}
Exemple #14
0
test_a_double (double d)
{
  EQL ( 6,  7, "%.0a", 0.0);        /* 0x0p+0 */
  EQL ( 6,  7, "%.0a", 1.0);        /* 0x8p-3 */
  EQL ( 6,  7, "%.0a", 2.0);        /* 0x8p-2 */
  EQL ( 8,  9, "%.1a", 3.0);        /* 0xc.0p-2 */
  EQL ( 9, 10, "%.2a", 4.0);        /* 0x8.00p-1 */
  EQL (10, 11, "%.3a", 5.0);        /* 0xa.000p-1 */

	                            /* d is in [ 0, -DBL_MAX ] */
  RNG ( 6, 10, 11, "%.0a", d);      /* 0x0p+0 ... -0x2p+1023 */
  RNG ( 6, 12, 13, "%.1a", d);      /* 0x0p+0 ... -0x2.0p+1023 */
  RNG ( 6, 13, 14, "%.2a", d);      /* 0x0p+0 ... -0x2.00p+1023 */
}
Exemple #15
0
void test_clientserver_simple(IUnitTest* _ts)
{
	TEST_SUITE(_ts,_T("Pipe"),_T("simple client server communication"));

	//TRACE(_T("--------------------------- test clien-server ---------------------------\n"));

	const CString sPipeName(_T("test_pipe"));

	CClientPipeComm client;
	CServer1 server(sPipeName);

	server.start();
	Sleep(500);

	ok(client.open(_T("."),sPipeName),_T("client open error"));
	DWORD dwerr = GetLastError();

	CDataPipeA senddata;

	//send data first time
	senddata.m_strdata = _T("test string");
	senddata.m_ld = 61578;

	ok(client.save(&senddata),_T("client save data error"));

	DWORD res = ::WaitForSingleObject(server.m_recieved,10000);
	ok(EQL(res,WAIT_OBJECT_0),_T("server failed to recieve data"));

	ok(EQL(1,server.m_recievedcnt),_T("bad server recieve counter"));
	ok(EQL(server.m_datagetted,senddata),_T("server recieved bad data"));

	server.m_recieved.ResetEvent();

	//TRACE(_T("---------------------------\n"));
	//send data second time
	senddata.m_strdata = _T("test string2");
	senddata.m_ld = 781506;

	ok(client.save(&senddata),_T("client save data error"));

	res = ::WaitForSingleObject(server.m_recieved,10000);
	ok(EQL(res,WAIT_OBJECT_0),_T("server failed to recieve data"));

	ok(EQL(2,server.m_recievedcnt),_T("bad server recieve counter"));
	ok(EQL(server.m_datagetted,senddata),_T("server recieved bad data"));
}
Exemple #16
0
void string_reader(CL_FORM *base)
{
    LOAD_NIL(ARG(2));
    LOAD_FIXNUM(ARG(3), 0, ARG(3));
    COPY(SYMVAL(Slisp, 448), ARG(4));	/* *TOKEN* */
    Fset_fill_pointer(ARG(3));
M1_1:
    ;
    COPY(ARG(0), ARG(3));
    COPY(ARG(3), ARG(2));
    LOAD_SYMBOL(SYMBOL(Slisp, 48), ARG(3));	/* T */
    LOAD_NIL(ARG(4));
    LOAD_SYMBOL(SYMBOL(Slisp, 48), ARG(5));	/* T */
    read_char1(ARG(2));
    COPY(SYMVAL(Slisp, 454), ARG(3));	/* *READTABLE* */
    readtable_syntax(ARG(3));
    if(CL_CHARP(ARG(2)))
    {
    }
    else
    {
        COPY(SYMVAL(Slisp, 58), ARG(4));	/* WRONG_TYPE */
        COPY(ARG(2), ARG(5));
        LOAD_SYMBOL(SYMBOL(Slisp, 18), ARG(6));	/* CHARACTER */
        Ferror(ARG(4), 3);
    }
    COPY(ARG(2), ARG(4));
    rt_char_code(ARG(4));
    LOAD_BOOL(CL_SMVECP(ARG(3)), ARG(5));
    if(CL_TRUEP(ARG(5)))
    {
        goto THEN1;
    }
    else
    {
        COPY(ARG(3), ARG(6));
        LOAD_SYMBOL(SYMBOL(Slisp, 150), ARG(7));	/* COMPLEX-VECTOR */
        rt_struct_typep(ARG(6));
    }
    if(CL_TRUEP(ARG(6)))
    {
THEN1:
        ;
    }
    else
    {
        COPY(SYMVAL(Slisp, 58), ARG(5));	/* WRONG_TYPE */
        COPY(ARG(3), ARG(6));
        LOAD_SYMBOL(SYMBOL(Slisp, 47), ARG(7));	/* VECTOR */
        Ferror(ARG(5), 3);
    }
    Frow_major_aref(ARG(3));
    if(CL_SYMBOLP(ARG(3)) && GET_SYMBOL(ARG(3)) == SYMBOL(Slisp, 463))	/* SINGLE-ESCAPE */
    {
        COPY(ARG(0), ARG(3));
        COPY(ARG(3), ARG(2));
        LOAD_SYMBOL(SYMBOL(Slisp, 48), ARG(3));	/* T */
        LOAD_NIL(ARG(4));
        LOAD_SYMBOL(SYMBOL(Slisp, 48), ARG(5));	/* T */
        read_char1(ARG(2));
        COPY(ARG(2), ARG(3));
        COPY(SYMVAL(Slisp, 448), ARG(4));	/* *TOKEN* */
        LOAD_NIL(ARG(5));
        vector_push_extend1(ARG(3));
    }
    else
    {
        if(EQL(ARG(1), ARG(2)))
        {
            COPY(SYMVAL(Slisp, 448), ARG(0));	/* *TOKEN* */
            LOAD_FIXNUM(ARG(1), 0, ARG(1));
            LOAD_NIL(ARG(2));
            subseq1(ARG(0));
            goto RETURN1;
        }
        else
        {
            COPY(ARG(2), ARG(3));
            COPY(SYMVAL(Slisp, 448), ARG(4));	/* *TOKEN* */
            LOAD_NIL(ARG(5));
            vector_push_extend1(ARG(3));
        }
    }
    goto M1_1;
RETURN1:
    ;
}
Exemple #17
0
void check_array_internal(CL_FORM *base)
{
	LOAD_BOOL(CL_SYMBOLP(ARG(1)) && GET_SYMBOL(ARG(1)) == SYMBOL(Slisp, 49), ARG(3));	/* * */
	if(CL_TRUEP(ARG(3)))
	{
		goto THEN1;
	}
	else
	{
		COPY(ARG(0), ARG(4));
		array_element_type_internal(ARG(4));
		to_element_type(ARG(4));
		COPY(ARG(1), ARG(5));
		Fupgraded_array_element_type(ARG(5));
	}
	if(EQL(ARG(4), ARG(5)))
	{
		THEN1:;
		LOAD_BOOL(CL_SYMBOLP(ARG(2)) && GET_SYMBOL(ARG(2)) == SYMBOL(Slisp, 49), ARG(3));	/* * */
		if(CL_TRUEP(ARG(3)))
		{
			COPY(ARG(3), ARG(0));
		}
		else
		{
			if(CL_ATOMP(ARG(2)))
			{
				COPY(ARG(0), ARG(4));
				Farray_rank(ARG(4));
				COPY(ARG(2), ARG(5));
				Fnumeql(ARG(4), 2);
				COPY(ARG(4), ARG(0));
			}
			else
			{
				COPY(ARG(0), ARG(4));
				Farray_rank(ARG(4));
				COPY(ARG(2), ARG(5));
				Flength(ARG(5));
				Fnumeql(ARG(4), 2);
				if(CL_TRUEP(ARG(4)))
				{
					LOAD_NIL(ARG(4));
					LOAD_FIXNUM(ARG(5), 0, ARG(5));
					M1_1:;
					COPY(ARG(5), ARG(6));
					COPY(ARG(2), ARG(7));
					Flength(ARG(7));
					Fge(ARG(6), 2);
					if(CL_TRUEP(ARG(6)))
					{
						LOAD_SYMBOL(SYMBOL(Slisp, 48), ARG(0));	/* T */
						goto RETURN1;
					}
					COPY(ARG(2), ARG(6));
					COPY(ARG(6), ARG(7));
					if(CL_CONSP(ARG(7)))
					{
						COPY(GET_CAR(ARG(7)), ARG(6));
					}
					else
					{
						if(CL_TRUEP(ARG(7)))
						{
							LOAD_SMSTR((CL_FORM *)&KClisp[264], ARG(6));	/* ~a is not a list */
							Ferror(ARG(6), 2);
						}
						else
						{
							COPY(ARG(7), ARG(6));
						}
					}
					COPY(ARG(2), ARG(7));
					COPY(ARG(7), ARG(8));
					if(CL_CONSP(ARG(8)))
					{
						COPY(GET_CDR(ARG(8)), ARG(2));
					}
					else
					{
						if(CL_TRUEP(ARG(8)))
						{
							LOAD_SMSTR((CL_FORM *)&KClisp[262], ARG(9));	/* ~a is not a list */
							COPY(ARG(8), ARG(10));
							Ferror(ARG(9), 2);
						}
						else
						{
							COPY(ARG(8), ARG(2));
						}
					}
					COPY(ARG(6), ARG(4));
					LOAD_BOOL(CL_SYMBOLP(ARG(4)) && GET_SYMBOL(ARG(4)) == SYMBOL(Slisp, 49), ARG(6));	/* * */
					if(CL_TRUEP(ARG(6)))
					{
						goto THEN2;
					}
					else
					{
						COPY(ARG(0), ARG(7));
						COPY(ARG(5), ARG(8));
						Farray_dimension(ARG(7));
						COPY(ARG(4), ARG(8));
						Fnumeql(ARG(7), 2);
					}
					if(CL_TRUEP(ARG(7)))
					{
						THEN2:;
					}
					else
					{
						LOAD_NIL(ARG(0));
						goto RETURN1;
					}
					F1plus(ARG(5));
					goto M1_1;
					RETURN1:;
				}
				else
				{
					LOAD_NIL(ARG(0));
				}
			}
		}
	}
	else
	{
		LOAD_NIL(ARG(0));
	}
}
Exemple #18
0
void list_remove(CL_FORM *base)
{
	LOAD_NIL(ARG(8));
	LOAD_NIL(ARG(9));
	ALLOC_CONS(ARG(10), ARG(8), ARG(9), ARG(8));
	LOAD_SMALLFIXNUM(0, ARG(9));
	LOAD_NIL(ARG(10));
	LOAD_NIL(ARG(11));
	ALLOC_CONS(ARG(12), ARG(10), ARG(11), ARG(10));
	LOAD_SMALLFIXNUM(0, ARG(11));
	LOAD_NIL(ARG(12));
	COPY(ARG(1), ARG(13));
	M1_1:;
	if(CL_ATOMP(ARG(13)))
	{
		LOAD_NIL(ARG(12));
		goto RETURN1;
	}
	COPY(ARG(13), ARG(14));
	COPY(GET_CAR(ARG(14)), ARG(12));
	COPY(ARG(11), ARG(14));
	COPY(ARG(5), ARG(15));
	Fge(ARG(14), 2);
	if(CL_TRUEP(ARG(14)))
	{
		goto RETURN1;
	}
	COPY(ARG(11), ARG(14));
	COPY(ARG(4), ARG(15));
	Fge(ARG(14), 2);
	if(CL_TRUEP(ARG(14)))
	{
		COPY(ARG(3), ARG(14));
		COPY(ARG(0), ARG(15));
		if(CL_TRUEP(ARG(7)))
		{
			COPY(ARG(7), ARG(16));
			COPY(ARG(12), ARG(17));
			Ffuncall(ARG(16), 2);
			mv_count = 1;
		}
		else
		{
			COPY(ARG(12), ARG(16));
		}
		Ffuncall(ARG(14), 3);
		mv_count = 1;
	}
	else
	{
		goto ELSE1;
	}
	if(CL_TRUEP(ARG(14)))
	{
		COPY(ARG(11), ARG(14));
		COPY(ARG(8), ARG(15));
		add_q(ARG(14));
		COPY(ARG(9), ARG(14));
		F1plus(ARG(14));
		COPY(ARG(14), ARG(9));
	}
	ELSE1:;
	COPY(ARG(11), ARG(14));
	F1plus(ARG(14));
	COPY(ARG(14), ARG(11));
	COPY(ARG(13), ARG(14));
	COPY(GET_CDR(ARG(14)), ARG(13));
	goto M1_1;
	RETURN1:;
	COPY(ARG(8), ARG(11));
	COPY(ARG(11), ARG(12));
	COPY(GET_CAR(ARG(12)), ARG(8));
	if(CL_TRUEP(ARG(2)))
	{
		LOAD_SMALLFIXNUM(0, ARG(11));
		M2_1:;
		if(CL_TRUEP(ARG(1)))
		{
			if(CL_CONSP(ARG(1)))
			{
				LOAD_NIL(ARG(12));
			}
			else
			{
				LOAD_SMSTR((CL_FORM *)&KClisp[233], ARG(12));	/* ~a is not a list */
				COPY(ARG(1), ARG(13));
				Ferror(ARG(12), 2);
			}
		}
		else
		{
			LOAD_SYMBOL(SYMBOL(Slisp, 48), ARG(12));	/* T */
		}
		if(CL_TRUEP(ARG(12)))
		{
			goto THEN2;
		}
		else
		{
			COPY(ARG(11), ARG(13));
			COPY(ARG(5), ARG(14));
			Fge(ARG(13), 2);
		}
		if(CL_TRUEP(ARG(13)))
		{
			THEN2:;
			goto RETURN2;
		}
		COPY(ARG(9), ARG(12));
		COPY(ARG(6), ARG(13));
		Fle(ARG(12), 2);
		if(CL_TRUEP(ARG(12)))
		{
			if(CL_CONSP(ARG(8)))
			{
				COPY(GET_CAR(ARG(8)), ARG(13));
			}
			else
			{
				if(CL_TRUEP(ARG(8)))
				{
					LOAD_SMSTR((CL_FORM *)&KClisp[239], ARG(13));	/* ~a is not a list */
					COPY(ARG(8), ARG(14));
					Ferror(ARG(13), 2);
				}
				else
				{
					COPY(ARG(8), ARG(13));
				}
			}
		}
		else
		{
			goto ELSE3;
		}
		if(EQL(ARG(11), ARG(13)))
		{
			if(CL_CONSP(ARG(8)))
			{
			}
			else
			{
				if(CL_TRUEP(ARG(8)))
				{
					LOAD_SMSTR((CL_FORM *)&KClisp[239], ARG(12));	/* ~a is not a list */
					COPY(ARG(8), ARG(13));
					Ferror(ARG(12), 2);
				}
				else
				{
				}
			}
			COPY(ARG(8), ARG(12));
			COPY(ARG(12), ARG(13));
			if(CL_CONSP(ARG(13)))
			{
				COPY(GET_CDR(ARG(13)), ARG(8));
			}
			else
			{
				if(CL_TRUEP(ARG(13)))
				{
					LOAD_SMSTR((CL_FORM *)&KClisp[241], ARG(14));	/* ~a is not a list */
					COPY(ARG(13), ARG(15));
					Ferror(ARG(14), 2);
				}
				else
				{
					LOAD_NIL(ARG(8));
				}
			}
			COPY(ARG(9), ARG(12));
			F1minus(ARG(12));
			COPY(ARG(12), ARG(9));
			if(CL_CONSP(ARG(1)))
			{
			}
			else
			{
				if(CL_TRUEP(ARG(1)))
				{
					LOAD_SMSTR((CL_FORM *)&KClisp[239], ARG(12));	/* ~a is not a list */
					COPY(ARG(1), ARG(13));
					Ferror(ARG(12), 2);
				}
				else
				{
				}
			}
			COPY(ARG(1), ARG(12));
			COPY(ARG(12), ARG(13));
			if(CL_CONSP(ARG(13)))
			{
				COPY(GET_CDR(ARG(13)), ARG(1));
			}
			else
			{
				if(CL_TRUEP(ARG(13)))
				{
					LOAD_SMSTR((CL_FORM *)&KClisp[241], ARG(14));	/* ~a is not a list */
					COPY(ARG(13), ARG(15));
					Ferror(ARG(14), 2);
				}
				else
				{
					LOAD_NIL(ARG(1));
				}
			}
		}
		else
		{
			ELSE3:;
			if(CL_CONSP(ARG(1)))
			{
				COPY(GET_CAR(ARG(1)), ARG(12));
			}
			else
			{
				if(CL_TRUEP(ARG(1)))
				{
					LOAD_SMSTR((CL_FORM *)&KClisp[239], ARG(12));	/* ~a is not a list */
					COPY(ARG(1), ARG(13));
					Ferror(ARG(12), 2);
				}
				else
				{
					COPY(ARG(1), ARG(12));
				}
			}
			COPY(ARG(1), ARG(13));
			COPY(ARG(13), ARG(14));
			if(CL_CONSP(ARG(14)))
			{
				COPY(GET_CDR(ARG(14)), ARG(1));
			}
			else
			{
				if(CL_TRUEP(ARG(14)))
				{
					LOAD_SMSTR((CL_FORM *)&KClisp[241], ARG(15));	/* ~a is not a list */
					COPY(ARG(14), ARG(16));
					Ferror(ARG(15), 2);
				}
				else
				{
					LOAD_NIL(ARG(1));
				}
			}
			COPY(ARG(10), ARG(13));
			add_q(ARG(12));
			if(CL_CONSP(ARG(8)))
			{
				COPY(GET_CAR(ARG(8)), ARG(13));
			}
			else
			{
				if(CL_TRUEP(ARG(8)))
				{
					LOAD_SMSTR((CL_FORM *)&KClisp[239], ARG(13));	/* ~a is not a list */
					COPY(ARG(8), ARG(14));
					Ferror(ARG(13), 2);
				}
				else
				{
					COPY(ARG(8), ARG(13));
				}
			}
			if(EQL(ARG(11), ARG(13)))
			{
				if(CL_CONSP(ARG(8)))
				{
				}
				else
				{
					if(CL_TRUEP(ARG(8)))
					{
						LOAD_SMSTR((CL_FORM *)&KClisp[239], ARG(12));	/* ~a is not a list */
						COPY(ARG(8), ARG(13));
						Ferror(ARG(12), 2);
					}
					else
					{
					}
				}
				COPY(ARG(8), ARG(12));
				COPY(ARG(12), ARG(13));
				if(CL_CONSP(ARG(13)))
				{
					COPY(GET_CDR(ARG(13)), ARG(8));
				}
				else
				{
					if(CL_TRUEP(ARG(13)))
					{
						LOAD_SMSTR((CL_FORM *)&KClisp[241], ARG(14));	/* ~a is not a list */
						COPY(ARG(13), ARG(15));
						Ferror(ARG(14), 2);
					}
					else
					{
						LOAD_NIL(ARG(8));
					}
				}
				COPY(ARG(9), ARG(12));
				F1minus(ARG(12));
				COPY(ARG(12), ARG(9));
			}
		}
		F1plus(ARG(11));
		goto M2_1;
		RETURN2:;
	}
	else
	{
		LOAD_SMALLFIXNUM(0, ARG(11));
		M3_1:;
		if(CL_TRUEP(ARG(1)))
		{
			if(CL_CONSP(ARG(1)))
			{
				LOAD_NIL(ARG(12));
			}
			else
			{
				LOAD_SMSTR((CL_FORM *)&KClisp[233], ARG(12));	/* ~a is not a list */
				COPY(ARG(1), ARG(13));
				Ferror(ARG(12), 2);
			}
		}
		else
		{
			LOAD_SYMBOL(SYMBOL(Slisp, 48), ARG(12));	/* T */
		}
		if(CL_TRUEP(ARG(12)))
		{
			goto THEN4;
		}
		else
		{
			COPY(ARG(11), ARG(13));
			COPY(ARG(5), ARG(14));
			Fge(ARG(13), 2);
		}
		if(CL_TRUEP(ARG(13)))
		{
			THEN4:;
			goto RETURN3;
		}
		COPY(ARG(6), ARG(12));
		Fplusp(ARG(12));
		if(CL_TRUEP(ARG(12)))
		{
			if(CL_CONSP(ARG(8)))
			{
				COPY(GET_CAR(ARG(8)), ARG(13));
			}
			else
			{
				if(CL_TRUEP(ARG(8)))
				{
					LOAD_SMSTR((CL_FORM *)&KClisp[239], ARG(13));	/* ~a is not a list */
					COPY(ARG(8), ARG(14));
					Ferror(ARG(13), 2);
				}
				else
				{
					COPY(ARG(8), ARG(13));
				}
			}
		}
		else
		{
			goto ELSE5;
		}
		if(EQL(ARG(11), ARG(13)))
		{
			if(CL_CONSP(ARG(8)))
			{
			}
			else
			{
				if(CL_TRUEP(ARG(8)))
				{
					LOAD_SMSTR((CL_FORM *)&KClisp[239], ARG(12));	/* ~a is not a list */
					COPY(ARG(8), ARG(13));
					Ferror(ARG(12), 2);
				}
				else
				{
				}
			}
			COPY(ARG(8), ARG(12));
			COPY(ARG(12), ARG(13));
			if(CL_CONSP(ARG(13)))
			{
				COPY(GET_CDR(ARG(13)), ARG(8));
			}
			else
			{
				if(CL_TRUEP(ARG(13)))
				{
					LOAD_SMSTR((CL_FORM *)&KClisp[241], ARG(14));	/* ~a is not a list */
					COPY(ARG(13), ARG(15));
					Ferror(ARG(14), 2);
				}
				else
				{
					LOAD_NIL(ARG(8));
				}
			}
			COPY(ARG(6), ARG(12));
			F1minus(ARG(12));
			COPY(ARG(12), ARG(6));
			if(CL_CONSP(ARG(1)))
			{
			}
			else
			{
				if(CL_TRUEP(ARG(1)))
				{
					LOAD_SMSTR((CL_FORM *)&KClisp[239], ARG(12));	/* ~a is not a list */
					COPY(ARG(1), ARG(13));
					Ferror(ARG(12), 2);
				}
				else
				{
				}
			}
			COPY(ARG(1), ARG(12));
			COPY(ARG(12), ARG(13));
			if(CL_CONSP(ARG(13)))
			{
				COPY(GET_CDR(ARG(13)), ARG(1));
			}
			else
			{
				if(CL_TRUEP(ARG(13)))
				{
					LOAD_SMSTR((CL_FORM *)&KClisp[241], ARG(14));	/* ~a is not a list */
					COPY(ARG(13), ARG(15));
					Ferror(ARG(14), 2);
				}
				else
				{
					LOAD_NIL(ARG(1));
				}
			}
		}
		else
		{
			ELSE5:;
			if(CL_CONSP(ARG(1)))
			{
				COPY(GET_CAR(ARG(1)), ARG(12));
			}
			else
			{
				if(CL_TRUEP(ARG(1)))
				{
					LOAD_SMSTR((CL_FORM *)&KClisp[239], ARG(12));	/* ~a is not a list */
					COPY(ARG(1), ARG(13));
					Ferror(ARG(12), 2);
				}
				else
				{
					COPY(ARG(1), ARG(12));
				}
			}
			COPY(ARG(1), ARG(13));
			COPY(ARG(13), ARG(14));
			if(CL_CONSP(ARG(14)))
			{
				COPY(GET_CDR(ARG(14)), ARG(1));
			}
			else
			{
				if(CL_TRUEP(ARG(14)))
				{
					LOAD_SMSTR((CL_FORM *)&KClisp[241], ARG(15));	/* ~a is not a list */
					COPY(ARG(14), ARG(16));
					Ferror(ARG(15), 2);
				}
				else
				{
					LOAD_NIL(ARG(1));
				}
			}
			COPY(ARG(10), ARG(13));
			add_q(ARG(12));
		}
		F1plus(ARG(11));
		goto M3_1;
		RETURN3:;
	}
	COPY(GET_CAR(ARG(10)), ARG(0));
}
Exemple #19
0
void list_delete(CL_FORM *base)
{
	GEN_HEAPVAR(ARG(4), ARG(9));
	if(CL_TRUEP(ARG(2)))
	{
		goto THEN1;
	}
	else
	{
		if(CL_TRUEP(ARG(3)))
		{
			goto THEN1;
		}
		else
		{
			if(CL_TRUEP(INDIRECT(ARG(4))))
			{
				goto THEN1;
			}
			else
			{
				if(CL_TRUEP(ARG(5)))
				{
					goto THEN1;
				}
				else
				{
					if(CL_TRUEP(ARG(6)))
					{
						goto THEN1;
					}
					else
					{
					}
				}
			}
		}
	}
	if(CL_TRUEP(ARG(8)))
	{
		THEN1:;
		if(CL_TRUEP(ARG(3)))
		{
		}
		else
		{
			if(CL_TRUEP(INDIRECT(ARG(4))))
			{
				GEN_CLOSURE(array, ARG(9), 4, Z156_lambda, -1);
				COPY(ARG(4), &array[3]);
				LOAD_CLOSURE(array, ARG(9));
				COPY(ARG(9), ARG(3));
			}
			else
			{
				GEN_STATIC_GLOBAL_FUNARG(extern_closure, Feql, 2);
				LOAD_GLOBFUN(&extern_closure, ARG(3));
			}
		}
		COPY(ARG(5), ARG(4));
		COPY(ARG(6), ARG(5));
		COPY(ARG(7), ARG(6));
		COPY(ARG(8), ARG(7));
		list_remove(ARG(0));
	}
	else
	{
		M1_1:;
		if(CL_TRUEP(ARG(1)))
		{
			LOAD_NIL(ARG(9));
		}
		else
		{
			LOAD_SYMBOL(SYMBOL(Slisp, 48), ARG(9));	/* T */
		}
		if(CL_TRUEP(ARG(9)))
		{
			goto THEN2;
		}
		else
		{
			COPY(ARG(7), ARG(10));
			Fzerop(ARG(10));
		}
		if(CL_TRUEP(ARG(10)))
		{
			THEN2:;
			COPY(ARG(1), ARG(0));
			goto RETURN1;
		}
		if(CL_CONSP(ARG(1)))
		{
			COPY(GET_CAR(ARG(1)), ARG(10));
		}
		else
		{
			if(CL_TRUEP(ARG(1)))
			{
				LOAD_SMSTR((CL_FORM *)&KClisp[239], ARG(10));	/* ~a is not a list */
				COPY(ARG(1), ARG(11));
				Ferror(ARG(10), 2);
			}
			else
			{
				COPY(ARG(1), ARG(10));
			}
		}
		if(EQL(ARG(0), ARG(10)))
		{
			if(CL_CONSP(ARG(1)))
			{
				COPY(GET_CDR(ARG(1)), ARG(9));
			}
			else
			{
				if(CL_TRUEP(ARG(1)))
				{
					LOAD_SMSTR((CL_FORM *)&KClisp[241], ARG(9));	/* ~a is not a list */
					COPY(ARG(1), ARG(10));
					Ferror(ARG(9), 2);
				}
				else
				{
					COPY(ARG(1), ARG(9));
				}
			}
			COPY(ARG(9), ARG(1));
			COPY(ARG(7), ARG(9));
			F1minus(ARG(9));
			COPY(ARG(9), ARG(7));
		}
		else
		{
			goto RETURN2;
		}
		goto M1_1;
		RETURN2:;
		COPY(ARG(1), ARG(9));
		if(CL_CONSP(ARG(1)))
		{
			COPY(GET_CDR(ARG(1)), ARG(10));
		}
		else
		{
			if(CL_TRUEP(ARG(1)))
			{
				LOAD_SMSTR((CL_FORM *)&KClisp[241], ARG(10));	/* ~a is not a list */
				COPY(ARG(1), ARG(11));
				Ferror(ARG(10), 2);
			}
			else
			{
				COPY(ARG(1), ARG(10));
			}
		}
		M2_1:;
		if(CL_TRUEP(ARG(10)))
		{
			LOAD_NIL(ARG(11));
		}
		else
		{
			LOAD_SYMBOL(SYMBOL(Slisp, 48), ARG(11));	/* T */
		}
		if(CL_TRUEP(ARG(11)))
		{
			goto THEN3;
		}
		else
		{
			COPY(ARG(7), ARG(12));
			Fzerop(ARG(12));
		}
		if(CL_TRUEP(ARG(12)))
		{
			THEN3:;
			COPY(ARG(1), ARG(0));
			goto RETURN1;
		}
		if(CL_CONSP(ARG(10)))
		{
			COPY(GET_CAR(ARG(10)), ARG(12));
		}
		else
		{
			if(CL_TRUEP(ARG(10)))
			{
				LOAD_SMSTR((CL_FORM *)&KClisp[239], ARG(12));	/* ~a is not a list */
				COPY(ARG(10), ARG(13));
				Ferror(ARG(12), 2);
			}
			else
			{
				COPY(ARG(10), ARG(12));
			}
		}
		if(EQL(ARG(0), ARG(12)))
		{
			COPY(ARG(10), ARG(11));
			if(CL_CONSP(ARG(11)))
			{
				COPY(GET_CDR(ARG(11)), ARG(10));
			}
			else
			{
				if(CL_TRUEP(ARG(11)))
				{
					LOAD_SMSTR((CL_FORM *)&KClisp[241], ARG(10));	/* ~a is not a list */
					Ferror(ARG(10), 2);
				}
				else
				{
					LOAD_NIL(ARG(10));
				}
			}
			if(CL_CONSP(ARG(9)))
			{
				COPY(ARG(10), GET_CDR(ARG(9)));
			}
			else
			{
				LOAD_SMSTR((CL_FORM *)&KClisp[231], ARG(11));	/* ~a is not a cons */
				COPY(ARG(9), ARG(12));
				Ferror(ARG(11), 2);
			}
			COPY(ARG(7), ARG(11));
			F1minus(ARG(11));
			COPY(ARG(11), ARG(7));
		}
		else
		{
			COPY(ARG(10), ARG(9));
			COPY(ARG(10), ARG(11));
			if(CL_CONSP(ARG(11)))
			{
				COPY(GET_CDR(ARG(11)), ARG(10));
			}
			else
			{
				if(CL_TRUEP(ARG(11)))
				{
					LOAD_SMSTR((CL_FORM *)&KClisp[241], ARG(10));	/* ~a is not a list */
					Ferror(ARG(10), 2);
				}
				else
				{
					LOAD_NIL(ARG(10));
				}
			}
		}
		goto M2_1;
	}
	RETURN1:;
}
Exemple #20
0
test_s (int i)
{
  EQL (  0,   1, "%s", "");
  EQL (  0,   1, "%s", "\0");
  EQL (  1,   2, "%1s", "");
  EQL (  1,   2, "%s", "1");
  EQL (  2,   3, "%2s", "");
  EQL (  2,   3, "%s", "12");
  EQL (  2,   3, "%s%s", "12", "");
  EQL (  2,   3, "%s%s", "", "12");
  EQL (  2,   3, "%s%s", "1", "2");
  EQL (  3,   4, "%3s", "");
  EQL (  3,   4, "%3s", "1");
  EQL (  3,   4, "%3s", "12");
  EQL (  3,   4, "%3s", "123");
  EQL (  3,   4, "%3.3s", "1");
  EQL (  3,   4, "%3.3s", "12");
  EQL (  3,   4, "%3.3s", "123");
  EQL (  3,   4, "%3.3s", "1234");
  EQL (  3,   4, "%3.3s", "12345");
  EQL (  3,   4, "%s %s", "1", "2");
  EQL (  4,   5, "%s %s", "12", "3");
  EQL (  5,   6, "%s %s", "12", "34");
  EQL (  5,   6, "[%s %s]", "1", "2");
  EQL (  6,   7, "[%s %s]", "12", "3");
  EQL (  7,   8, "[%s %s]", "12", "34");

  /* Verify the result of a conditional expression involving string
     literals is in the expected range of their lengths.  */
  RNG (  0,   3,   4, "%-s", i ? ""    : "123");
  RNG (  1,   4,   5, "%-s", i ? "1"   : "1234");
  RNG (  2,   5,   6, "%-s", i ? "12"  : "12345");
  RNG (  3,   6,   7, "%-s", i ? "123" : "123456");
}
Exemple #21
0
test_c (char c)
{
  EQL (1,  2, "%c",       c);
  EQL (1, -1, "%c",       c);
  EQL (1,  2, "%1c",      c);
  EQL (1, -1, "%1c",      c);
  EQL (1,  2, "%*c",      1, c);
  EQL (1, -1, "%*c",      1, c);
  EQL (2,  3, "%c%c",     '1', '2');
  EQL (2, -1, "%c%c",     '1', '2');
  EQL (3,  4, "%3c",      c);
  EQL (3, -1, "%3c",      c);
  EQL (3,  4, "%*c",      3, c);
  EQL (3, -1, "%*c",      3, c);

  EQL (3,  4, "%*c%*c",     2,  c,  1,  c);
  EQL (3,  4, "%*c%*c",     1,  c,  2,  c);
  EQL (3,  4, "%c%c%c",        '1',    '2',    '3');
  EQL (3,  4, "%*c%c%c",    1, '1',    '2',    '3');
  EQL (3,  4, "%*c%*c%c",   1, '1', 1, '2',    '3');
  EQL (3,  4, "%*c%*c%*c",  1, '1', 1, '2', 1, '3');

  EQL (3, -1, "%*c%*c",     2,  c,  1,  c);
  EQL (3, -1, "%*c%*c",     1,  c,  2,  c);
  EQL (3, -1, "%c%c%c",        '1',    '2',    '3');
  EQL (3, -1, "%*c%c%c",    1, '1',    '2',    '3');
  EQL (3, -1, "%*c%*c%c",   1, '1', 1, '2',    '3');
  EQL (3, -1, "%*c%*c%*c",  1, '1', 1, '2', 1, '3');

  EQL (4,  5, "%c%c %c",  '1', '2', '3');
  EQL (5,  6, "%c %c %c", '1', '2', '3');
  EQL (5,  6, "%c %c %c",  c,   c,   c);
}
Exemple #22
0
test_f_double (void)
{
  EQL (  8,   9, "%f", 0.0e0);
  EQL (  8,   9, "%f", 0.1e0);
  EQL (  8,   9, "%f", 0.12e0);
  EQL (  8,   9, "%f", 0.123e0);
  EQL (  8,   9, "%f", 0.1234e0);
  EQL (  8,   9, "%f", 0.12345e0);
  EQL (  8,   9, "%f", 0.123456e0);
  EQL (  8,   9, "%f", 1.234567e0);

  EQL (  9,  10, "%f", 1.0e+1);
  EQL ( 20,  21, "%f", 1.0e+12);
  EQL (130, 131, "%f", 1.0e+123);

  EQL (  8,   9, "%f", 1.0e-1);
  EQL (  8,   9, "%f", 1.0e-12);
  EQL (  8,   9, "%f", 1.0e-123);
}
Exemple #23
0
test_e_long_double (void)
{
  EQL (12, 13, "%Le",  1.0e0L);
  EQL (13, 14, "%Le", -1.0e0L);
  EQL (12, 13, "%Le",  1.0e+1L);
  EQL (13, 14, "%Le", -1.0e+1L);
  EQL (12, 13, "%Le",  1.0e+12L);
  EQL (13, 14, "%Le", -1.0e+12L);
  EQL (13, 14, "%Le",  1.0e+123L);
  EQL (14, 15, "%Le", -1.0e+123L);

  EQL (12, 13, "%Le",  9.999e+99L);
  EQL (12, 13, "%Le",  9.9999e+99L);
  EQL (12, 13, "%Le",  9.99999e+99L);

#if __DBL_DIG__ < __LDBL_DIG__
  EQL (12, 13, "%Le",  9.999999e+99L);
#else
  RNG (12, 13, 14, "%Le",  9.999999e+99L);
#endif

  /* The actual output of the following directive depends on the rounding
     mode.  */
  /* EQL (12, "%Le",  9.9999994e+99L); */

  EQL (12, 13, "%Le",  1.0e-1L);
  EQL (12, 13, "%Le",  1.0e-12L);
  EQL (13, 14, "%Le",  1.0e-123L);

  EQL ( 6,  7, "%.0Le",   1.0e-111L);
  EQL ( 8,  9, "%.1Le",   1.0e-111L);
  EQL (19, 20, "%.12Le",  1.0e-112L);
  EQL (20, 21, "%.13Le",  1.0e-113L);
}
Exemple #24
0
test_e_double (void)
{
  EQL (12, 13, "%e",  1.0e0);
  EQL (13, 14, "%e", -1.0e0);
  EQL (12, 13, "%e",  1.0e+1);
  EQL (13, 14, "%e", -1.0e+1);
  EQL (12, 13, "%e",  1.0e+12);
  EQL (13, 14, "%e", -1.0e+12);
  EQL (13, 14, "%e",  1.0e+123);
  EQL (14, 15, "%e", -1.0e+123);

  EQL (12, 13, "%e",  9.999e+99);
  EQL (12, 13, "%e",  9.9999e+99);
  EQL (12, 13, "%e",  9.99999e+99);

  /* The actual output of the following directive depends on the rounding
     mode.  */
  /* EQL (12, "%e",  9.9999994e+99); */

  EQL (12, 13, "%e",  1.0e-1);
  EQL (12, 13, "%e",  1.0e-12);
  EQL (13, 14, "%e",  1.0e-123);
}
test_d_i (int i, long li)
{
  /*    +-------------------------- expected return value */
  /*    |   +---------------------- destination size */
  /*    |   |  +------------------- format string */
  /*    |   |  |                +-- variable argument(s) */
  /*    |   |  |                | */
  /*    V   V  V                V */
  EQL ( 1,  2, "%d",            0);
  EQL ( 2,  3, "%d%d",          0,   1);
  EQL ( 3,  4, "%d%d",          9,  10);
  EQL ( 4,  5, "%d%d",         11,  12);
  EQL ( 5,  6, "%d:%d",        12,  34);
  EQL ( 5,  6, "%d",           12345);
  EQL ( 6,  7, "%d",          -12345);
  EQL (15, 16, "%d:%d:%d:%d", 123, 124, 125, 126);

  EQL ( 1,  2, "%i", uchar_range (0, 9));
  EQL ( 1, -1, "%i", uchar_range (0, 9));

  /* The range information available to passes other than the Value
     Range Propoagation pass itself is so bad that the following two
     tests fail (the range seen in the test below is [0, 99] rather
     than [10, 99].
  EQL ( 2,  3, "%i", uchar_range (10, 99));
  EQL ( 3,  4, "%i", uchar_range (100, 199));
  */

  /* Verify that the width allows the return value in the following
     calls can be folded despite the unknown value of the argument.  */
#if __SIZEOF_INT__ == 2
  EQL ( 6,  7, "%6d",      i);
  EQL ( 6,  7, "%+6d",     i);
  EQL ( 6,  7, "%-6d",     i);
  EQL ( 6,  7, "%06d",     i);
#elif __SIZEOF_INT__ == 4
  EQL (11, 12, "%11d",     i);
  EQL (11, 12, "%+11d",    i);
  EQL (11, 12, "%-11d",    i);
  EQL (11, 12, "%011d",    i);
#elif __SIZEOF_INT__ == 8
  EQL (20, 21, "%20d",     i);
  EQL (20, 21, "%+20d",    i);
  EQL (20, 21, "%-29d",    i);
  EQL (20, 21, "%020d",    i);
#endif

#if __SIZEOF_LONG__ == 2
  EQL ( 6,  7, "%6ld",      li);
  EQL ( 6,  7, "%+6ld",     li);
  EQL ( 6,  7, "%-6ld",     li);
  EQL ( 6,  7, "%06ld",     li);
#elif __SIZEOF_LONG__ == 4
  EQL (11, 12, "%11ld",     li);
  EQL (11, 12, "%+11ld",    li);
  EQL (11, 12, "%-11ld",    li);
  EQL (11, 12, "%011ld",    li);
#elif __SIZEOF_LONG__ == 8
  EQL (20, 21, "%20ld",     li);
  EQL (20, 21, "%+20ld",    li);
  EQL (20, 21, "%-20ld",    li);
  EQL (20, 21, "%020ld",    li);
#endif

  /* Verify that the output of a directive with an unknown argument
     is correctly determined at compile time to be in the expected
     range.  */

  /*    +---------------------------- expected minimum return value */
  /*    |   +------------------------ expected maximum return value */
  /*    |   |   +-------------------- destination size */
  /*    |   |   |  +----------------- format string */
  /*    |   |   |  |           +----- variable argument(s) */
  /*    |   |   |  |           | */
  /*    V   V   V  V           V */
  RNG ( 1,  4,  5, "%hhi",     i);
  RNG ( 1,  3,  4, "%hhu",     i);

  RNG ( 3,  4,  5, "%hhi",     IR (-128,  -10));
  RNG ( 2,  4,  5, "%hhi",     IR (-128,   -1));
  RNG ( 1,  4,  5, "%hhi",     IR (-128,    0));

  RNG ( 1,  4,  5, "%1hhi",    IR (-128,    0));
  RNG ( 1,  4,  5, "%2hhi",    IR (-128,    0));
  RNG ( 1,  4,  5, "%3hhi",    IR (-128,    0));
  RNG ( 1,  4,  5, "%4hhi",    IR (-128,    0));
  RNG ( 1,  5,  6, "%5hhi",    IR (-128,    0));
  RNG ( 1,  6,  7, "%6hhi",    IR (-128,    0));
  RNG ( 2,  6,  7, "%6hhi",    IR (-128,   10));

  RNG ( 0,  1,  2, "%.hhi",    IR (   0,    1));
  RNG ( 0,  1,  2, "%.0hhi",   IR (   0,    1));
  RNG ( 0,  1,  2, "%0.0hhi",  IR (   0,    1));   /* { dg-warning ".0. flag ignored with precision" } */
  RNG ( 0,  1,  2, "%*.0hhi",  0, IR (   0,    1));

  RNG ( 1,  2,  3, "%hhi",     IR (1024, 1034));
  RNG ( 1,  4,  5, "%hhi",     IR (1024, 2048));
  RNG ( 2,  3,  4, "%hhi",     IR (1034, 1151));

  RNG ( 1,  2,  3, "%hhu",     IR (1024, 1034));
  RNG ( 1,  3,  4, "%hhu",     IR (1024, 2048));
  RNG ( 2,  3,  4, "%hhu",     IR (1034, 1151));

#if __SIZEOF_SHORT__ == 2
  RNG ( 1,  6,  7, "%hi",      i);
  RNG ( 1,  5,  6, "%hu",      i);
  RNG ( 1,  6,  7, "%.1hi",    i);
  RNG ( 2,  6,  7, "%.2hi",    i);
  RNG ( 3,  6,  7, "%.3hi",    i);
  RNG ( 4,  6,  7, "%.4hi",    i);
  RNG ( 5,  6,  7, "%.5hi",    i);
  RNG ( 6,  7,  8, "%.6hi",    i);
  RNG ( 7,  8,  9, "%.7hi",    i);
#elif __SIZEOF_SHORT__ == 4
  RNG ( 1, 11, 12, "%hi",      i);
  RNG ( 1, 10, 11, "%hu",      i);

  RNG ( 1, 11, 12, "%.1hi",    i);
  RNG ( 2, 11, 12, "%.2hi",    i);
  RNG ( 3, 11, 12, "%.3hi",    i);
  RNG ( 4, 11, 12, "%.4hi",    i);
  RNG ( 5, 11, 12, "%.5hi",    i);
  RNG ( 6, 11, 12, "%.6hi",    i);
  RNG ( 7, 11, 12, "%.7hi",    i);
  RNG ( 8, 11, 12, "%.8hi",    i);
  RNG ( 9, 11, 12, "%.9hi",    i);
  RNG (10, 11, 12, "%.10hi",   i);
  RNG (11, 12, 13, "%.11hi",   i);
  RNG (12, 13, 14, "%.12hi",   i);
  RNG (13, 14, 15, "%.13hi",   i);
#endif

#if __SIZEOF_INT__ == 2
  RNG ( 1,  6,  7, "%i",       i);
  RNG ( 1,  5,  6, "%u",       i);

  RNG ( 1,  6,  7, "%.1i",     i);
  RNG ( 2,  6,  7, "%.2i",     i);
  RNG ( 3,  6,  7, "%.3i",     i);
  RNG ( 4,  6,  7, "%.4i",     i);
  RNG ( 5,  6,  7, "%.5i",     i);
  RNG ( 6,  7,  8, "%.6i",     i);
  RNG ( 7,  8,  9, "%.7i",     i);
#elif __SIZEOF_INT__ == 4
  RNG ( 1, 11, 12, "%i",       i);
  RNG ( 1, 10, 11, "%u",       i);

  RNG ( 1, 11, 12, "%.1i",    i);
  RNG ( 2, 11, 12, "%.2i",    i);
  RNG ( 3, 11, 12, "%.3i",    i);
  RNG ( 4, 11, 12, "%.4i",    i);
  RNG ( 5, 11, 12, "%.5i",    i);
  RNG ( 6, 11, 12, "%.6i",    i);
  RNG ( 7, 11, 12, "%.7i",    i);
  RNG ( 8, 11, 12, "%.8i",    i);
  RNG ( 9, 11, 12, "%.9i",    i);
  RNG (10, 11, 12, "%.10i",   i);
  RNG (11, 12, 13, "%.11i",   i);
  RNG (12, 13, 14, "%.12i",   i);
  RNG (13, 14, 15, "%.13i",   i);
#elif __SIZEOF_INT__ == 8
  RNG ( 1, 20, 21, "%i",       i);
  RNG ( 1, 19, 20, "%u",       i);
#endif

#if __SIZEOF_LONG__ == 4
  RNG ( 1, 11, 12, "%li",      li);
  RNG ( 1, 10, 11, "%lu",      li);

  RNG ( 1, 11, 12, "%.1li",    li);
  RNG ( 2, 11, 12, "%.2li",    li);
  RNG ( 3, 11, 12, "%.3li",    li);
  RNG ( 4, 11, 12, "%.4li",    li);
  RNG ( 5, 11, 12, "%.5li",    li);
  RNG ( 6, 11, 12, "%.6li",    li);
  RNG ( 7, 11, 12, "%.7li",    li);
  RNG ( 8, 11, 12, "%.8li",    li);
  RNG ( 9, 11, 12, "%.9li",    li);
  RNG (10, 11, 12, "%.10li",   li);
  RNG (11, 12, 13, "%.11li",   li);
  RNG (12, 13, 14, "%.12li",   li);
  RNG (13, 14, 15, "%.13li",   li);
#elif __SIZEOF_LONG__ == 8
  RNG ( 1, 20, 21, "%li",      li);
  RNG ( 1, 19, 20, "%lu",      li);
#endif
}
Exemple #26
0
test_d_i (int i, long li)
{
  /*    +-------------------------- expected return value */
  /*    |   +---------------------- destination size */
  /*    |   |  +------------------- format string */
  /*    |   |  |                +-- variable argument(s) */
  /*    |   |  |                | */
  /*    V   V  V                V */
  EQL ( 1,  2, "%d",            0);
  EQL ( 2,  3, "%d%d",          0,   1);
  EQL ( 3,  4, "%d%d",          9,  10);
  EQL ( 4,  5, "%d%d",         11,  12);
  EQL ( 5,  6, "%d:%d",        12,  34);
  EQL ( 5,  6, "%d",           12345);
  EQL ( 6,  7, "%d",          -12345);
  EQL (15, 16, "%d:%d:%d:%d", 123, 124, 125, 126);

  EQL ( 1,  2, "%i", uchar_range (0, 9));
  EQL ( 1, -1, "%i", uchar_range (0, 9));

  /* The range information available to passes other than the Value
     Range Propoagation pass itself is so bad that the following two
     tests fail (the range seen in the test below is [0, 99] rather
     than [10, 99].
  EQL ( 2,  3, "%i", uchar_range (10, 99));
  EQL ( 3,  4, "%i", uchar_range (100, 199));
  */

  /* Verify that the width allows the return value in the following
     calls can be folded despite the unknown value of the argument.  */
#if __SIZEOF_INT__ == 2
  EQL ( 6,  7, "%6d",      i);
  EQL ( 6,  7, "%+6d",     i);
  EQL ( 6,  7, "%-6d",     i);
  EQL ( 6,  7, "%06d",     i);
#elif __SIZEOF_INT__ == 4
  EQL (11, 12, "%11d",     i);
  EQL (11, 12, "%+11d",    i);
  EQL (11, 12, "%-11d",    i);
  EQL (11, 12, "%011d",    i);
#elif __SIZEOF_INT__ == 8
  EQL (20, 21, "%20d",     i);
  EQL (20, 21, "%+20d",    i);
  EQL (20, 21, "%-29d",    i);
  EQL (20, 21, "%020d",    i);
#endif

#if __SIZEOF_LONG__ == 2
  EQL ( 6,  7, "%6ld",      li);
  EQL ( 6,  7, "%+6ld",     li);
  EQL ( 6,  7, "%-6ld",     li);
  EQL ( 6,  7, "%06ld",     li);
#elif __SIZEOF_LONG__ == 4
  EQL (11, 12, "%11ld",     li);
  EQL (11, 12, "%+11ld",    li);
  EQL (11, 12, "%-11ld",    li);
  EQL (11, 12, "%011ld",    li);
#elif __SIZEOF_LONG__ == 8
  EQL (20, 21, "%20ld",     li);
  EQL (20, 21, "%+20ld",    li);
  EQL (20, 21, "%-20ld",    li);
  EQL (20, 21, "%020ld",    li);
#endif

  /* Verify that the output of a directive with an unknown argument
     is correctly determined at compile time to be in the expected
     range.  */

  /*    +---------------------------- expected minimum return value */
  /*    |   +------------------------ expected maximum return value */
  /*    |   |   +-------------------- destination size */
  /*    |   |   |  +----------------- format string */
  /*    |   |   |  |           +----- variable argument(s) */
  /*    |   |   |  |           | */
  /*    V   V   V  V           V */
  RNG ( 1,  4,  5, "%hhi",     i);
  RNG ( 1,  3,  4, "%hhu",     i);

#if __SIZEOF_SHORT__ == 2
  RNG ( 1,  6,  7, "%hi",      i);
  RNG ( 1,  5,  6, "%hu",      i);
#elif __SIZEOF_SHORT__ == 4
  RNG ( 1, 11, 12, "%hi",      i);
  RNG ( 1, 10, 11, "%hu",      i);
#endif

#if __SIZEOF_INT__ == 2
  RNG ( 1,  6,  7, "%i",       i);
  RNG ( 1,  5,  6, "%u",       i);
#elif __SIZEOF_INT__ == 4
  RNG ( 1, 11, 12, "%i",       i);
  RNG ( 1, 10, 11, "%u",       i);
#elif __SIZEOF_INT__ == 8
  RNG ( 1, 20, 21, "%i",       i);
  RNG ( 1, 19, 20, "%u",       i);
#endif

#if __SIZEOF_LONG__ == 4
  RNG ( 1, 11, 12, "%li",      li);
  RNG ( 1, 10, 11, "%lu",      li);
#elif __SIZEOF_LONG__ == 8
  RNG ( 1, 20, 21, "%li",      li);
  RNG ( 1, 19, 20, "%lu",      li);
#endif
}
Exemple #27
0
void test_CPipeReadBuffer(IUnitTest* _ts)
{
	TEST_SUITE(_ts,_T("Pipe"),_T("buffer operations"));

	CPipeReadedBuffer buffer;
	CPipeReadedBuffer::PipeBufferErrorsEn bufferr = CPipeReadedBuffer::PBE_Success;

	ok(buffer.is_empty(),_T("created buffer is not empty"));

	const DWORD allocate_size = 100;
	const DWORD blksz_1 = 122;
	const DWORD blksz_1_aligned = align(blksz_1,QWORD());
	const DWORD blksz_2 = 10;
	const DWORD blksz_2_aligned = align(blksz_2,QWORD());
	const DWORD blksz_3 = 15;
	const DWORD blksz_3_aligned = align(blksz_3,QWORD());

	LPVOID pbuf = NULL;
	pbuf = buffer.alloc_chunk(allocate_size);

	ok(is_all(pbuf,allocate_size,(BYTE)0),_T("alloc_chunk() not zeros memory"));
	ok(buffer.get_firstBlockRealSize()==0,_T("allocated chunk is not counted"));

	LPDWORD pdwbuf = (LPDWORD)pbuf;
	pdwbuf[0] = PDM_Data;
	pdwbuf[1] = blksz_1;

	ok(buffer.get_firstBlockRealSize()==allocate_size-sizeof(DWORD)*2,_T("bad real size"));
	ok(buffer.get_firstBlockSendedSize()==blksz_1,_T("allocated chunk is not counted"));
	ok(buffer.get_firstBlockMetaData()==PDM_Data,_T("no metadata DWORD in data chunk"));

	pbuf = buffer.alloc_chunk(allocate_size);

	fill_fortest((LPVOID)(pdwbuf+2),allocate_size-sizeof(DWORD)*2);
	DWORD cnt = blksz_1 - (allocate_size-sizeof(DWORD)*2);
	fill_fortest(pbuf,cnt,(byte)(blksz_1-cnt));

	ok(buffer.get_firstBlockRealSize()==blksz_1,_T("not processed block after it was already readed"));
	ok(buffer.get_firstBlockSendedSize()==blksz_1,_T("bad real size"));

	pdwbuf = (LPDWORD) ((LPBYTE)pbuf + blksz_1_aligned - (allocate_size-sizeof(DWORD)*2));
	pdwbuf[0] = PDM_Data;
	pdwbuf[1] = blksz_2;
	fill_fortest((LPVOID)(pdwbuf+2),blksz_2);
	pdwbuf = (LPDWORD)(
		(LPBYTE)pbuf 
			+ blksz_1_aligned - (allocate_size - sizeof(DWORD)*2)
			+ sizeof(DWORD)*2
			+ blksz_2_aligned
		);
	pdwbuf[0] = PDM_Data;
	pdwbuf[1] = blksz_3;
	fill_fortest((LPVOID)(pdwbuf+2),blksz_3);

	LPVOID preadbuf = NULL;
	DWORD dwsize = 0;

	DWORD dwMetaData = PDM_Null;
	ok(EQL(CPipeReadedBuffer::PBE_Success,buffer.read(preadbuf,dwsize,dwMetaData,true))
			&& EQL(dwMetaData,PDM_Data)
		,_T("read error")
		);
	ok(EQL(dwsize,blksz_1),_T("read error"));
	ok(test_filling(preadbuf,dwsize),_T("inccorrect data was readed"));
	ok(buffer.get_firstBlockRealSize()==blksz_2,_T("incorrect buffer size"));
	ok(buffer.get_firstBlockSendedSize()==blksz_2,_T("incorrect sended buffer size"));

	delete[] trace_free(preadbuf);
	dwsize = blksz_2+2;//set incorrect size
	preadbuf = trace_alloc(new BYTE[dwsize]);

	//test errors
	dwMetaData = PDM_Null;
	ok(EQL(CPipeReadedBuffer::PBE_WrongBufferSize,buffer.read(preadbuf,dwsize,dwMetaData,false))
		,_T("read return not PBE_WrongBufferSize")
		);
	ok(buffer.get_firstBlockRealSize()==blksz_2,_T("incorrect buffer size"));
	ok(buffer.get_firstBlockSendedSize()==blksz_2,_T("incorrect sended buffer size"));
	
	dwMetaData = PDM_Null;
	ok(EQL(CPipeReadedBuffer::PBE_InvalidArg,buffer.read(preadbuf,dwsize,dwMetaData,true))
		,_T("read return not PBE_InvalidArg")
		);
	ok(buffer.get_firstBlockRealSize()==blksz_2,_T("incorrect buffer size"));
	ok(buffer.get_firstBlockSendedSize()==blksz_2,_T("incorrect sended buffer size"));

	delete[] trace_free(preadbuf);
	dwsize = blksz_2;
	preadbuf = trace_alloc(new BYTE[dwsize]);

	ok(EQL(CPipeReadedBuffer::PBE_Success,buffer.read(preadbuf,dwsize,dwMetaData,false))
			&& EQL(dwMetaData,PDM_Data)
		,_T("read return not PBE_Success")
		);
	ok(test_filling(preadbuf,dwsize),_T("incorrect data was readed"));

	ok(EQL(buffer.get_firstBlockRealSize(),blksz_3),_T("incorrect real size"));
	ok(EQL(buffer.get_firstBlockSendedSize(),blksz_3),_T("incorrect sended size"));
	ok(EQL(buffer.free_firstBlock(),CPipeReadedBuffer::PBE_Success),_T("error while free first block"));

	ok(EQL(buffer.free_firstBlock(),CPipeReadedBuffer::PBE_DataNotReady),_T("free_firstBlock return not PBE_DataNotReady"));

	delete[] trace_free(preadbuf);
}
Exemple #28
0
test_f_long_double (void)
{
  EQL (  8,   9, "%Lf", 0.0e0L);
  EQL (  8,   9, "%Lf", 0.1e0L);
  EQL (  8,   9, "%Lf", 0.12e0L);
  EQL (  8,   9, "%Lf", 0.123e0L);
  EQL (  8,   9, "%Lf", 0.1234e0L);
  EQL (  8,   9, "%Lf", 0.12345e0L);
  EQL (  8,   9, "%Lf", 0.123456e0L);
  EQL (  8,   9, "%Lf", 1.234567e0L);

  EQL (  9,  10, "%Lf", 1.0e+1L);
  EQL ( 20,  21, "%Lf", 1.0e+12L);
  EQL (130, 131, "%Lf", 1.0e+123L);

  EQL (  8,   9, "%Lf", 1.0e-1L);
  EQL (  8,   9, "%Lf", 1.0e-12L);
  EQL (  8,   9, "%Lf", 1.0e-123L);
}
Exemple #29
0
test_x (unsigned char uc, unsigned short us, unsigned ui)
{
  EQL ( 1,  2, "%hhx",          0);
  EQL ( 2,  3, "%2hhx",         0);
  EQL ( 2,  3, "%02hhx",        0);
  EQL ( 2,  3, "%#02hhx",       0);

  EQL ( 1,  2, "%hhx",          1);
  EQL ( 2,  3, "%2hhx",         1);
  EQL ( 2,  3, "%02hhx",        1);
  EQL ( 3,  4, "%#02hhx",       1);

  EQL ( 2,  3, "%2hhx",        uc);
  EQL ( 2,  3, "%02hhx",       uc);
  EQL ( 5,  6, "%#05hhx",      uc);

  EQL ( 2,  3, "%2hhx",        us);
  EQL ( 2,  3, "%02hhx",       us);
  EQL ( 5,  6, "%#05hhx",      us);

  EQL ( 2,  3, "%2hhx",        ui);
  EQL ( 2,  3, "%02hhx",       ui);
  EQL ( 5,  6, "%#05hhx",      ui);

  EQL ( 1,  2, "%x",            0);
  EQL ( 1,  2, "%#x",           0);
  EQL ( 1,  2, "%#0x",          0);
  EQL ( 1,  2, "%x",            1);
  EQL ( 1,  2, "%x",          0xf);
  EQL ( 2,  3, "%x",         0x10);
  EQL ( 2,  3, "%x",         0xff);
  EQL ( 3,  4, "%x",        0x100);

  EQL (11, 12, "%02x:%02x:%02x:%02x",         0xde, 0xad, 0xbe, 0xef);

  /* The following would be optimized if the range information of
  the variable's type was made available.  Alas, it's lost due
  to the promotion of the actual argument (unsined char) to
  the type of the "formal" argument (int in the case of the
  ellipsis).
  EQL (11, 12, "%02x:%02x:%02x:%02x",   uc,   uc,   uc,   uc);
  */
  EQL (11, 12, "%02hhx:%02hhx:%02hhx:%02hhx",   uc,   uc,   uc,   uc);

#if __SIZEOF_SHORT__ == 2
  EQL ( 4,  5, "%04hx",                   us);
  EQL ( 9, 10, "%04hx:%04hx",             us, us);
  EQL (14, 15, "%04hx:%04hx:%04hx",       us, us, us);
  EQL (19, 20, "%04hx:%04hx:%04hx:%04hx", us, us, us, us);
#endif

#if __SIZEOF_INT__ == 2
  EQL ( 4,  5, "%04x", ui);
  EQL ( 6,  7, "%#06x", ui);
#elif __SIZEOF_INT__ == 4
  EQL ( 8,  9, "%08x", ui);
  EQL (10, 10 + 1, "%#010x", ui);
#elif __SIZEOF_INT__ == 8
  EQL (16, 17, "%016x", ui);
  EQL (18, 19, "%#018x",  ui);
#endif
}
Exemple #30
0
void peek_char1(CL_FORM *base)
{
	if(CL_TRUEP(ARG(1)))
	{
		if(CL_SYMBOLP(ARG(1)) && GET_SYMBOL(ARG(1)) == SYMBOL(Slisp, 48))	/* T */
		{
			COPY(SYMVAL(Slisp, 59), ARG(1));	/* *TERMINAL-IO* */
		}
	}
	else
	{
		COPY(SYMVAL(Slisp, 60), ARG(1));	/* *STANDARD-INPUT* */
	}
	COPY(ARG(1), ARG(5));
	LOAD_NIL(ARG(6));
	LOAD_NIL(ARG(7));
	COPY(ARG(4), ARG(8));
	read_char1(ARG(5));
	if(CL_SYMBOLP(ARG(0)) && GET_SYMBOL(ARG(0)) == SYMBOL(Slisp, 48))	/* T */
	{
		M1_1:;
		if(CL_TRUEP(ARG(5)))
		{
		}
		else
		{
			goto RETURN1;
		}
		COPY(SYMVAL(Slisp, 454), ARG(6));	/* *READTABLE* */
		COPY(ARG(6), ARG(7));
		LOAD_SYMBOL(SYMBOL(Slisp, 420), ARG(8));	/* READTABLE */
		rt_struct_typep(ARG(7));
		if(CL_TRUEP(ARG(7)))
		{
			COPY(OFFSET(AR_BASE(GET_FORM(ARG(6))), 0 + 1), ARG(6));
		}
		else
		{
			COPY(SYMVAL(Slisp, 352), ARG(7));	/* NO_STRUCT */
			COPY(ARG(6), ARG(8));
			LOAD_SYMBOL(SYMBOL(Slisp, 420), ARG(9));	/* READTABLE */
			Ferror(ARG(7), 3);
		}
		if(CL_CHARP(ARG(5)))
		{
		}
		else
		{
			COPY(SYMVAL(Slisp, 58), ARG(7));	/* WRONG_TYPE */
			COPY(ARG(5), ARG(8));
			LOAD_SYMBOL(SYMBOL(Slisp, 18), ARG(9));	/* CHARACTER */
			Ferror(ARG(7), 3);
		}
		COPY(ARG(5), ARG(7));
		rt_char_code(ARG(7));
		LOAD_BOOL(CL_SMVECP(ARG(6)), ARG(8));
		if(CL_TRUEP(ARG(8)))
		{
			goto THEN1;
		}
		else
		{
			COPY(ARG(6), ARG(9));
			LOAD_SYMBOL(SYMBOL(Slisp, 150), ARG(10));	/* COMPLEX-VECTOR */
			rt_struct_typep(ARG(9));
		}
		if(CL_TRUEP(ARG(9)))
		{
			THEN1:;
		}
		else
		{
			COPY(SYMVAL(Slisp, 58), ARG(8));	/* WRONG_TYPE */
			COPY(ARG(6), ARG(9));
			LOAD_SYMBOL(SYMBOL(Slisp, 47), ARG(10));	/* VECTOR */
			Ferror(ARG(8), 3);
		}
		Frow_major_aref(ARG(6));
		if(CL_SYMBOLP(ARG(6)) && GET_SYMBOL(ARG(6)) == SYMBOL(Slisp, 462))	/* WHITESPACE */
		{
		}
		else
		{
			goto RETURN1;
		}
		COPY(ARG(1), ARG(6));
		COPY(ARG(4), ARG(7));
		COPY(ARG(6), ARG(8));
		LOAD_NIL(ARG(9));
		LOAD_NIL(ARG(10));
		COPY(ARG(7), ARG(11));
		read_char1(ARG(8));
		COPY(ARG(8), ARG(5));
		goto M1_1;
		RETURN1:;
	}
	else
	{
		if(CL_CHARP(ARG(0)))
		{
			M2_1:;
			if(CL_TRUEP(ARG(5)))
			{
			}
			else
			{
				goto RETURN2;
			}
			if(EQL(ARG(0), ARG(5)))
			{
			}
			else
			{
				goto RETURN2;
			}
			COPY(ARG(1), ARG(6));
			COPY(ARG(4), ARG(7));
			COPY(ARG(6), ARG(8));
			LOAD_NIL(ARG(9));
			LOAD_NIL(ARG(10));
			COPY(ARG(7), ARG(11));
			read_char1(ARG(8));
			COPY(ARG(8), ARG(5));
			goto M2_1;
			RETURN2:;
		}
	}
	if(CL_TRUEP(ARG(5)))
	{
	}
	else
	{
		if(CL_TRUEP(ARG(2)))
		{
			LOAD_SMSTR((CL_FORM *)&Kpeek_char1[0], ARG(6));	/* unexpected end of file */
			Ferror(ARG(6), 1);
		}
	}
	COPY(ARG(5), ARG(6));
	COPY(ARG(1), ARG(7));
	unread_char1(ARG(6));
	mv_count = 1;
	COPY(ARG(5), ARG(0));
}