Exemplo n.º 1
0
void task1(void *unused(arg))
{
	printf("%s start\n", __FUNCTION__);
	XTEST(rinoo_task_self() == sched->driver.current);
	rinoo_task_run(sched, task2, sched);
	XTEST(rinoo_task_self() == sched->driver.current);
	printf("%s end\n", __FUNCTION__);
}
Exemplo n.º 2
0
/**
 * Main function for this unit test
 *
 *
 * @return 0 if test passed
 */
int main()
{
	XTEST(rinoo_task_self() == NULL);
	sched = rinoo_sched();
	XTEST(sched != NULL);
	XTEST(rinoo_task_run(sched, task1, sched) == 0);
	rinoo_sched_destroy(sched);
	XPASS();
}
Exemplo n.º 3
0
void task2(void *arg)
{
	t_sched *sched = arg;

	printf("%s start\n", __FUNCTION__);
	XTEST(checker == 1);
	rinoo_task_run(sched, task3, sched);
	XTEST(checker == 3);
	printf("%s end\n", __FUNCTION__);
}
Exemplo n.º 4
0
/**
 * Main function for this unit test
 *
 *
 * @return 0 if test passed
 */
int main()
{
	t_sched *sched;

	sched = rinoo_sched();
	XTEST(sched != NULL);
	XTEST(rinoo_task_start(sched, task_func, sched) == 0);
	rinoo_sched_loop(sched);
	rinoo_sched_destroy(sched);
	XPASS();
}
Exemplo n.º 5
0
/**
 * Main function for this unit test
 *
 *
 * @return 0 if test passed
 */
int main()
{
	t_sched *sched;

	sched = rinoo_sched();
	XTEST(sched != NULL);
	XTEST(rinoo_task_run(sched, task1, sched) == 0);
	rinoo_sched_destroy(sched);
	XTEST(checker == 3);
	XPASS();
}
Exemplo n.º 6
0
Arquivo: http.c Projeto: dyu/librinoo
/**
 * Main function for this unit test.
 *
 *
 * @return 0 if test passed
 */
int main()
{
	t_sched *sched;

	sched = rinoo_sched();
	XTEST(sched != NULL);
	XTEST(rinoo_task_start(sched, http_server, sched) == 0);
	XTEST(rinoo_task_start(sched, http_client, sched) == 0);
	rinoo_sched_loop(sched);
	rinoo_sched_destroy(sched);
	XPASS();
}
Exemplo n.º 7
0
void task(void *unused(arg))
{
	t_sched *cur;

	printf("%s start\n", __FUNCTION__);
	cur = rinoo_sched_self();
	XTEST(cur != NULL);
	XTEST(cur->id >= 0 && cur->id <= NBSPAWNS);
	XTEST(checker[cur->id] == 0);
	checker[cur->id] = 1;
	printf("%s end\n", __FUNCTION__);
}
Exemplo n.º 8
0
/**
 * Main function for this unit test.
 *
 *
 * @return 0 if test passed
 */
int main()
{
	t_sched *sched;

	sched = rinoo_sched();
	XTEST(sched != NULL);
	XTEST(rinoo_task_start(sched, server_func, NULL) == 0);
	XTEST(rinoo_task_start(sched, client_func, NULL) == 0);
	rinoo_sched_loop(sched);
	rinoo_sched_destroy(sched);
	XPASS();
}
Exemplo n.º 9
0
Arquivo: http.c Projeto: dyu/librinoo
void http_server_process(void *socket)
{
	t_buffer content;
	t_http http;

	XTEST(rinoo_http_init(socket, &http) == 0);
	XTEST(rinoo_http_request_get(&http));
	http.response.code = 200;
	strtobuffer(&content, HTTP_CONTENT);
	XTEST(rinoo_http_response_send(&http, &content) == 0);
	rinoo_http_destroy(&http);
	rinoo_socket_destroy(socket);
}
Exemplo n.º 10
0
void server_func(void *unused(arg))
{
	t_socket *server;
	t_socket *client;

	server = rinoo_tcp_server(rinoo_sched_self(), IP_ANY, 4242);
	XTEST(server != NULL);
	client = rinoo_tcp_accept(server, NULL, NULL);
	XTEST(client != NULL);
	rinoo_log("client accepted");
	rinoo_task_start(rinoo_sched_self(), process_client, client);
	rinoo_socket_destroy(server);
}
Exemplo n.º 11
0
////////////////////////////////////////////////////////////////
// CStream::WriteBytes
//
/////////////////////////////////////////////////////////////////
HRESULT CStream::WriteBytes(REFIID riid, DBLENGTH ulOffset, DBLENGTH cBytes, void* pBuffer, DBLENGTH* pcbWritten)
{
	HRESULT hr = S_OK;
	BOOL	bUseDefault = FALSE;
	ULONG	cbWritten = 0;

	//Determine object type
	if(riid != IID_ISequentialStream && riid != IID_ILockBytes && riid != IID_IStream)
		bUseDefault = TRUE;
	
	//IID_ISequentialStream
	if((riid == IID_ISequentialStream && m_pISequentialStream) || (bUseDefault && m_pISequentialStream))
	{
		//ISequentialStream::Write
		//TODO64:  I*::Write only takes a ULONG
		XTEST(hr = m_pISequentialStream->Write(pBuffer, (ULONG)cBytes, &cbWritten));
		TESTC(TRACE_METHOD(hr, L"ISequentialStream::Write(0x%p, %d, &%d)", pBuffer, cBytes, cbWritten));
	}
	//IID_ILockBytes
	else if((riid == IID_ILockBytes && m_pILockBytes) || (bUseDefault && m_pILockBytes))
	{
		ULARGE_INTEGER ulgOffset;
		ulgOffset.QuadPart = ulOffset;
		
		//ILockBytes::WriteAt
		//TODO64:  I*::Write only takes a ULONG
		XTEST(hr = m_pILockBytes->WriteAt(ulgOffset, pBuffer, (ULONG)cBytes, &cbWritten));
		TESTC(TRACE_METHOD(hr, L"ILockBytes::WriteAt(%d, 0x%p, %d, &%d)", ulOffset, pBuffer, cBytes, cbWritten));
	}
	//IID_IStream
	else if((riid == IID_IStream && m_pIStream) || (bUseDefault && m_pIStream))
	{
		//IStream::Write
		//TODO64:  I*::Write only takes a ULONG
		XTEST(hr = m_pIStream->Write(pBuffer, (ULONG)cBytes, &cbWritten));
		TESTC(TRACE_METHOD(hr, L"IStream::Write(0x%p, %d, &%d)", pBuffer, cBytes, cbWritten));
	}
//	else if(m_pIStorage)
//	{
		//TODO
//	}
	else
	{
		TESTC(hr = E_FAIL);
	}

CLEANUP:
	if(pcbWritten)
		*pcbWritten = cbWritten;
	return hr;
}
Exemplo n.º 12
0
int main()
{
	int i;
	int min;
	tmytest *head;
	t_rinoorbtree tree;
	t_rinoorbtree_node *node;
	tmytest tab[RINOO_HEADTEST_NB_ELEM];

	XTEST(rinoorbtree(&tree, cmp_func, NULL) == 0);
	for (i = 0; i < RINOO_HEADTEST_NB_ELEM; i++) {
		tab[i].val = random();
		if (i == 0 || min > tab[i].val) {
			min = tab[i].val;
		}
		XTEST(rinoorbtree_put(&tree, &tab[i].node) == 0);
		XTEST(tree.head != NULL);
		head = container_of(tree.head, tmytest, node);
		XTEST(head->val == min);
	}
	rinoorbtree_flush(&tree);
	for (i = 0; i < RINOO_HEADTEST_NB_ELEM; i++) {
		tab[i].val = i;
		XTEST(rinoorbtree_put(&tree, &tab[i].node) == 0);
		XTEST(tree.head != NULL);
	}
	for (i = 0; i < RINOO_HEADTEST_NB_ELEM; i++) {
		node = rinoorbtree_head(&tree);
		XTEST(node != NULL);
		head = container_of(node, tmytest, node);
		XTEST(head->val == i);
		rinoorbtree_remove(&tree, node);
	}
	XPASS();
}
Exemplo n.º 13
0
/**
 * Main function for this unit test.
 *
 *
 * @return 0 if test passed
 */
int main()
{
	t_sched *sched;

	mkdir(TEST_DIRECTORY, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
	sched = rinoo_sched();
	XTEST(sched != NULL);
	XTEST(rinoo_task_start(sched, check_file, sched) == 0);
	XTEST(rinoo_task_start(sched, event_generator, sched) == 0);
	rinoo_sched_loop(sched);
	rinoo_sched_destroy(sched);
	rmdir(TEST_DIRECTORY);
	XPASS();
}
Exemplo n.º 14
0
void client_func(void *unused(arg))
{
	t_buffer buffer;
	t_socket *client;

	client = rinoo_tcp_client(rinoo_sched_self(), IP_LOOPBACK, 4242, 0);
	XTEST(client != NULL);
	str = malloc(sizeof(*str) * TRANSFER_SIZE);
	XTEST(str != NULL);
	memset(str, 'a', TRANSFER_SIZE);
	buffer_static(&buffer, str, TRANSFER_SIZE);
	XTEST(rinoo_socket_writeb(client, &buffer) == TRANSFER_SIZE);
	rinoo_socket_destroy(client);
}
Exemplo n.º 15
0
void process_client(void *socket)
{
	t_buffer *buffer;

	buffer = buffer_create(NULL);
	XTEST(buffer != NULL);
	while (rinoo_socket_readb(socket, buffer) > 0) {
		rinoo_log("receiving...");
	}
	XTEST(buffer_size(buffer) == TRANSFER_SIZE);
	XTEST(buffer_strncmp(buffer, str, TRANSFER_SIZE) == 0);
	buffer_destroy(buffer);
	free(str);
	rinoo_socket_destroy(socket);
}
Exemplo n.º 16
0
Arquivo: http.c Projeto: dyu/librinoo
void http_server(void *sched)
{
	t_ip ip;
	uint16_t port;
	t_socket *server;
	t_socket *client;

	server = rinoo_tcp_server(sched, IP_ANY, 4242);
	XTEST(server != NULL);
	client = rinoo_tcp_accept(server, &ip, &port);
	XTEST(client != NULL);
	rinoo_log("server - accepting client (%s:%d)", inet_ntoa(*(struct in_addr *) &ip), port);
	rinoo_task_start(sched, http_server_process, client);
	rinoo_socket_destroy(server);
}
Exemplo n.º 17
0
/**
 * Main function for this unit test
 *
 *
 * @return 0 if test passed
 */
int main()
{
	uint32_t i;
	t_buffer *buffer1;

	buffer1 = buffer_create(NULL);
	XTEST(buffer1 != NULL);
	for (i = 0; i < ARRAY_SIZE(strings) - 1; i++) {
		buffer_add(buffer1, strings[i], strlen(strings[i]));
		XTEST(buffer_strcasecmp(buffer1, strings[i + 1]) < 0);
		buffer_erase(buffer1, buffer_size(buffer1));
	}
	buffer_destroy(buffer1);
	XPASS();
}
Exemplo n.º 18
0
/**
 * Main function for this unit test.
 *
 * @return 0 if test passed
 */
int main()
{
	t_rinoosched *sched;

	big_buffer = malloc(sizeof(*big_buffer) * BUFFER_SIZE);
	XTEST(big_buffer != NULL);
	memset(big_buffer, 'x', sizeof(*big_buffer) * BUFFER_SIZE);
	sched = rinoo_sched();
	XTEST(sched != NULL);
	XTEST(rinoo_task_start(sched, server_func, sched) == 0);
	XTEST(rinoo_task_start(sched, client_func, sched) == 0);
	rinoo_sched_loop(sched);
	rinoo_sched_destroy(sched);
	free(big_buffer);
	XPASS();
}
Exemplo n.º 19
0
void dns_test(void *arg)
{
	t_ip ip;

	XTEST(rinoo_dns_ip_get(arg, "google.com", &ip) == 0);
	rinoo_log("IP: %s", inet_ntoa(ip.v4.sin_addr));
}
Exemplo n.º 20
0
/////////////////////////////////////////////////////////////////
// HRESULT CDataSource::AdminCreateDataSource
//
/////////////////////////////////////////////////////////////////
HRESULT CDataSource::AdminCreateDataSource(CAggregate* pCAggregate, ULONG cPropSets, DBPROPSET* rgPropSets, REFIID riid, IUnknown** ppIUnknown)
{
	HRESULT	hr = S_OK;
	DWORD dwCreateOpts = GetOptions()->m_dwCreateOpts;

	if(m_pIDBDataSourceAdmin)
	{
		//IDBDataSourceAdmin::CreateDataSource
		XTEST(hr = m_pIDBDataSourceAdmin->CreateDataSource(cPropSets, rgPropSets, pCAggregate, riid, ppIUnknown));
		TRACE_METHOD(hr, L"IDBDataSourceAdmin::CreateDataSource(%d, 0x%p, 0x%p, %s, &0x%p)", cPropSets, rgPropSets, pCAggregate, GetInterfaceName(riid), ppIUnknown ? *ppIUnknown : NULL);

		//Display any property errors...
		TESTC(hr = DisplayPropErrors(hr, cPropSets, rgPropSets));

		//Handle Aggregation
		if(pCAggregate)
			pCAggregate->HandleAggregation(riid, ppIUnknown);
		
		//We are now Initialized
		m_fInitialized = TRUE;

		//Obtain all interfaces, now that we are initialized
		TESTC(hr = AutoQI(dwCreateOpts));
	}
	
CLEANUP:
	return hr;
}
Exemplo n.º 21
0
/////////////////////////////////////////////////////////////////
// HRESULT CDataset::GetCellData
//
/////////////////////////////////////////////////////////////////
HRESULT CDataset::GetCellData(DBORDINAL ulStartCell, DBORDINAL ulEndCell)
{
	HRESULT hr = E_FAIL;
	
	if(m_pIMDDataset)
	{
		//NOTE: Using cbRowSize of IAccessor::CreateAccessor
		//Because this method fetches properties for more than one cell, 
		//the provider should know how long each row is. In this context, a "row" means the area 
		//allocated in the consumer's buffer to hold all properties pertaining to one cell. 
		//This information should be given in the cbRowSize parameter of IAccessor::CreateAccessor. 
		//If the value of this parameter is zero, the consumer wants to fetch only one row of data 
		//(one cell). In this case, it is an error to specify a ulStartCell different from the 
		//ulEndCell.
		
		//Because of the above in the OLAP spec, we need to make sure our buffer is large enough
		//to hold the number of requested cells...
		if(ulEndCell > ulStartCell && m_cbRowSize)
			SAFE_REALLOC(m_pData, BYTE, m_cbRowSize * (ulEndCell - ulStartCell + 1));

		//IMDDataset::GetCellData
		XTEST(hr = m_pIMDDataset->GetCellData(m_hAccessor, ulStartCell, ulEndCell, m_pData));
		TESTC(TRACE_METHOD(hr, L"IMDDataset::GetCellData(0x%p, 0x%Id, 0x%Id, 0x%p)", m_hAccessor, ulStartCell, ulEndCell, m_pData));
 	}

CLEANUP:
	return hr;
}
Exemplo n.º 22
0
void task(void *unused(arg))
{
	printf("%s start\n", __FUNCTION__);
	XTEST(checker == 0);
	checker = 1;
	printf("%s end\n", __FUNCTION__);
}
Exemplo n.º 23
0
void task_func(void *sched)
{
	struct timeval prev;

	printf("%s start\n", __FUNCTION__);
	XTEST(gettimeofday(&prev, NULL) == 0);
	rinoo_task_wait(sched, 100);
	XTEST(check_time(&prev, 100) == 0);
	rinoo_task_wait(sched, 200);
	XTEST(check_time(&prev, 200) == 0);
	rinoo_task_wait(sched, 500);
	XTEST(check_time(&prev, 500) == 0);
	rinoo_task_wait(sched, 1000);
	XTEST(check_time(&prev, 1000) == 0);
	printf("%s end\n", __FUNCTION__);
}
Exemplo n.º 24
0
void process_client(void *arg)
{
	int i;
	char b;
	t_buffer *buffers[4];
	t_buffer buffer[4];
	t_rinoosocket *socket = arg;

	buffer_static(&buffer[0], big_buffer, BUFFER_SIZE);
	buffers[0] = &buffer[0];
	rinoo_log("server - client accepted");
	rinoo_log("server - sending %d bytes", BUFFER_SIZE);
	XTEST(rinoo_socket_writev(socket, buffers, 1) == BUFFER_SIZE);
	rinoo_log("server - receiving 'b'");
	XTEST(rinoo_socket_read(socket, &b, 1) == 1);
	XTEST(b == 'b');
	for (i = 0; i < 4; i++) {
		buffer_static(&buffer[i], big_buffer + (i * (BUFFER_SIZE / 4)), BUFFER_SIZE / 4);
		buffers[i] = &buffer[i];
	}
	rinoo_log("server - sending %d bytes", BUFFER_SIZE);
	XTEST(rinoo_socket_writev(socket, buffers, 4) == BUFFER_SIZE);
	rinoo_log("server - receiving 'b'");
	XTEST(rinoo_socket_read(socket, &b, 1) == 1);
	XTEST(b == 'b');
	rinoo_log("server - receiving nothing");
	XTEST(rinoo_socket_read(socket, &b, 1) == -1);
	rinoo_socket_destroy(socket);
}
Exemplo n.º 25
0
/**
 * Main function for this unit test.
 *
 * @return 0 if test passed
 */
int main()
{
	t_rinoossl_ctx *ssl;

	ssl = rinoo_ssl_context();
	XTEST(ssl != NULL);
	rinoo_ssl_context_destroy(ssl);
	XPASS();
}
Exemplo n.º 26
0
void *server_thread(void *unused(arg))
{
	char b;
	t_rinoosched *sched;
	t_rinoosocket *server;
	t_rinoosocket *client;
	struct sockaddr_in addr;

	sched = rinoo_sched();
	XTEST(sched != NULL);
	server = rinoo_socket(sched, &socket_class_tcp);
	XTEST(server != NULL);
	addr.sin_port = htons(4242);
	addr.sin_family = AF_INET;
	addr.sin_addr.s_addr = 0;
	XTEST(rinoo_socket_bind(server, (struct sockaddr *) &addr, sizeof(addr), 42) == 0);
	rinoo_log("server listening...");
	client = rinoo_socket_accept(server, (struct sockaddr *) &addr, (socklen_t *)(int[]){(sizeof(struct sockaddr))});
void process_client(void *arg)
{
	char a;
	t_rinoosocket *socket = arg;

	rinoo_log("server - client accepted");
	rinoo_log("server - receiving nothing, waiting timeout");
	XTEST(rinoo_socket_read(socket, &a, 1) <= 0);
	rinoo_socket_destroy(socket);
}
void server_func(void *arg)
{
	t_rinoosocket *server;
	t_rinoosocket *client;
	struct sockaddr_in6 addr = { 0 };
	t_rinoosched *sched = arg;

	server = rinoo_socket(sched, &socket_class_tcp6);
	XTEST(server != NULL);
	addr.sin6_port = htons(4242);
	addr.sin6_family = AF_INET6;
	addr.sin6_addr = in6addr_any;
	XTEST(rinoo_socket_bind(server, (struct sockaddr *) &addr, sizeof(addr), 42) == 0);
	rinoo_log("server listening...");
	client = rinoo_socket_accept(server, NULL, NULL);
	XTEST(client != NULL);
	rinoo_task_start(sched, process_client, client);
	rinoo_socket_destroy(server);
}
void client_func(void *arg)
{
	char a;
	struct sockaddr_in6 addr = { 0 };
	t_rinoosocket *socket;
	t_rinoosched *sched = arg;

	socket = rinoo_socket(sched, &socket_class_tcp6);
	XTEST(socket != NULL);
	addr.sin6_port = htons(4242);
	addr.sin6_family = AF_INET6;
	addr.sin6_addr = in6addr_loopback;
	XTEST(rinoo_socket_connect(socket, (struct sockaddr *) &addr, sizeof(addr)) == 0);
	rinoo_log("client - connected");
	rinoo_socket_timeout(socket, 1000);
	XTEST(rinoo_socket_read(socket, &a, 1) == -1);
	rinoo_log("server  - timeout");
	perror("socket");
	rinoo_socket_destroy(socket);
}
Exemplo n.º 30
0
void check_file(void *sched)
{
	int i;
	t_inotify *inotify;
	t_inotify_event *event;

	inotify = rinoo_inotify(sched);
	rinoo_inotify_add_watch(inotify, "/tmp", INOTIFY_CREATE | INOTIFY_DELETE, true);
	for (i = 0; i < NB_EVENT && (event = rinoo_inotify_event(inotify)) != NULL; i++) {
		if (event->type & INOTIFY_CREATE) {
			rinoo_log("File created.");
			nb_create_event++;
		} else if (event->type & INOTIFY_DELETE) {
			rinoo_log("File deleted.");
			nb_rm_event++;
		}
	}
	XTEST(nb_create_event == nb_create);
	XTEST(nb_rm_event == nb_rm);
	rinoo_inotify_destroy(inotify);
}