From f85c9b875b060681b51f57b15074ba1c7c9f5636 Mon Sep 17 00:00:00 2001
From: wangzhengquan <wangzhengquan85@126.com>
Date: 星期一, 20 七月 2020 11:10:02 +0800
Subject: [PATCH] update

---
 test/test_queue.c |   98 +++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 91 insertions(+), 7 deletions(-)

diff --git a/test/test_queue.c b/test/test_queue.c
index db760fd..3ae812a 100644
--- a/test/test_queue.c
+++ b/test/test_queue.c
@@ -1,7 +1,8 @@
 #include "test.h"
+
 using namespace std;
 
-int main () {
+void testStruct() {
 	unsigned int i = 0;
 	
 	int key = 2;
@@ -9,8 +10,8 @@
 	struct Item item;
 
 	size_t qsize = 16;
-  	LockFreeQueue<struct Item> *queue = QueueFactory::createQueue<struct Item> (key, qsize);
-
+  	//LockFreeQueue<struct Item> *queue = QueueFactory::createQueue<struct Item> (key, qsize);
+	SHMQueue<struct Item> *queue = new SHMQueue<struct Item>(key, 16);
 	// LockFreeQueue<struct Item> queue(16);
 	for(i = 0; i < qsize; i++) {
 
@@ -29,16 +30,99 @@
 
 
 	 
-	struct timespec timeout = {5, 0};
+	struct timespec timeout = {1, 0};
 
 	i = 0;
-	while((queue->pop(item)) ) {
+	while((queue->pop_timeout(item, &timeout)) ) {
 	    cout << i << " pop锛�" << item.pic << ", " << item.info << endl;
 	   // cout <<  item.pic << endl;
 	    i++;
 	}
 
-	
-	destroy(key);
+	delete queue;
+}
 
+void testString() {
+	unsigned int i = 0;
+	std::ostringstream outstr;
+	int key = 2;
+
+	shmstring item;
+
+	size_t qsize = 16;
+  	//LockFreeQueue<struct Item> *queue = QueueFactory::createQueue<struct Item> (key, qsize);
+	SHMQueue<shmstring> *queue = new SHMQueue<shmstring>(key, 16);
+	// LockFreeQueue<struct Item> queue(16);
+	for(i = 0; i < qsize; i++) {
+		outstr.seekp(0);
+		outstr << "hello " << i ; 
+		if(queue->push(outstr.str().c_str())) {
+			 cout << i << " push锛�" << outstr.str() << endl;
+		}
+	}
+
+	// for(i = 0; i < qsize; i++) {
+		
+	// 	//queue.dequeue(item);
+		
+	// 	item = (*queue)[i];
+	// 	cout << "i=" << i << ":" << item << endl;
+	// }
+
+
+	 
+	struct timespec timeout = {1, 0};
+
+	i = 0;
+	while((queue->pop_timeout(item, &timeout)) ) {
+	    cout << i << " pop锛�" << item << endl;
+	   // cout <<  item.pic << endl;
+	    i++;
+	}
+
+	delete queue;
+}
+
+
+// void testArr(unsigned size) {
+// 	unsigned int i = 0;
+// 	int key = 2;
+
+// 	char item[size];
+
+// 	size_t qsize = 16;
+//   	//LockFreeQueue<struct Item> *queue = QueueFactory::createQueue<struct Item> (key, qsize);
+// 	SHMQueue<char[size]> *queue = new SHMQueue<char[size]>(key, 16);
+// 	// LockFreeQueue<struct Item> queue(16);
+// 	for(i = 0; i < qsize; i++) {
+// 		sprintf(item, "%d hello", i);
+// 		if(queue->push(item)) {
+// 			 cout << i << " push锛�" << item << endl;
+// 		}
+// 	}
+
+	 
+
+
+	 
+// 	struct timespec timeout = {1, 0};
+
+// 	i = 0;
+// 	while((queue->pop_timeout(item, &timeout)) ) {
+// 	    cout << i << " pop锛�" << item << endl;
+// 	   // cout <<  item.pic << endl;
+// 	    i++;
+// 	}
+
+// 	delete queue;
+// }
+
+
+int main () {
+	mm_init(512);
+	// testArr(12);
+	testStruct();
+
+	mm_destroy();
+	return 0;
 }
\ No newline at end of file

--
Gitblit v1.8.0