From 9e6ceaad059b2aec84df92c8750f6d87eab708c2 Mon Sep 17 00:00:00 2001
From: wangzhengquan <wangzhengquan85@126.com>
Date: 星期四, 16 七月 2020 20:46:31 +0800
Subject: [PATCH] udpate
---
test/test_queue.c | 106 +++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 94 insertions(+), 12 deletions(-)
diff --git a/test/test_queue.c b/test/test_queue.c
index 6046902..3ae812a 100644
--- a/test/test_queue.c
+++ b/test/test_queue.c
@@ -1,16 +1,17 @@
#include "test.h"
+
using namespace std;
-int main () {
+void testStruct() {
unsigned int i = 0;
-
+ int key = 2;
struct Item item;
- size_t qsize = 1;
- LockFreeQueue<struct Item> *queue = QueueFactory::createQueue<struct Item> (2, qsize);
-
+ size_t qsize = 16;
+ //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,18 +30,99 @@
- struct timespec timeout = {5, 0};
+ struct timespec timeout = {1, 0};
i = 0;
- while((queue->pop(item)) ) {
- cout << i << " 鍑洪槦锛�" << item.pic << ", " << item.info << endl;
+ while((queue->pop_timeout(item, &timeout)) ) {
+ cout << i << " pop锛�" << item.pic << ", " << item.info << endl;
// cout << item.pic << endl;
-
i++;
-
}
-
- destroy();
+ 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