You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@concerted.apache.org by at...@apache.org on 2015/11/05 12:45:45 UTC

incubator-concerted git commit: CONCERTED-5:Improve and automated tests

Repository: incubator-concerted
Updated Branches:
  refs/heads/master af37c9fe8 -> c51c9a21b


CONCERTED-5:Improve and automated tests


Project: http://git-wip-us.apache.org/repos/asf/incubator-concerted/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-concerted/commit/c51c9a21
Tree: http://git-wip-us.apache.org/repos/asf/incubator-concerted/tree/c51c9a21
Diff: http://git-wip-us.apache.org/repos/asf/incubator-concerted/diff/c51c9a21

Branch: refs/heads/master
Commit: c51c9a21b390792252df191c82309c19d7dc8b8f
Parents: af37c9f
Author: Nupur <nu...@ingeniumsys.com>
Authored: Wed Oct 28 15:03:25 2015 +0530
Committer: Atri Sharma <at...@apache.org>
Committed: Thu Nov 5 17:14:44 2015 +0530

----------------------------------------------------------------------
 include/tests/ConcDCTTest.h           | 20 +++++++++++++
 include/tests/ConcInvertedIndexTest.h | 20 +++++++++++++
 include/tests/ConcMATTest.h           | 20 +++++++++++++
 include/tests/ConcSegHashTableTest.h  | 20 +++++++++++++
 include/tests/QueueLockTest.h         | 20 +++++++++++++
 makefile                              | 40 ++++++++++++-------------
 test/ConcDCTConcurrencyTest.cpp       |  4 ++-
 test/ConcDCTFileReader.cpp            |  2 +-
 test/ConcDCTTest.cpp                  | 40 +++++++++++++++++++------
 test/ConcInvertedIndexTest.cpp        | 21 ++++++++++---
 test/ConcMATTest.cpp                  | 22 +++++++++++---
 test/ConcSegHashTableTest.cpp         | 10 +++----
 test/ConcSkipListTest.cpp             |  6 ++--
 test/QueueLockTest.cpp                |  3 +-
 test/TestMain.cpp                     | 47 ++++++++++++++++++++++++++++++
 test/makefile                         | 33 +++++++++++++++++++++
 16 files changed, 279 insertions(+), 49 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-concerted/blob/c51c9a21/include/tests/ConcDCTTest.h
----------------------------------------------------------------------
diff --git a/include/tests/ConcDCTTest.h b/include/tests/ConcDCTTest.h
new file mode 100644
index 0000000..ccf50bc
--- /dev/null
+++ b/include/tests/ConcDCTTest.h
@@ -0,0 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef CONCDCTTEST_H
+#define CONCDCTTEST_H
+int testDCT(int debugMode);
+#endif

http://git-wip-us.apache.org/repos/asf/incubator-concerted/blob/c51c9a21/include/tests/ConcInvertedIndexTest.h
----------------------------------------------------------------------
diff --git a/include/tests/ConcInvertedIndexTest.h b/include/tests/ConcInvertedIndexTest.h
new file mode 100644
index 0000000..2c0b314
--- /dev/null
+++ b/include/tests/ConcInvertedIndexTest.h
@@ -0,0 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef CONCINVERTEDINDEXTEST_H
+#define CONCINVERTEDINDEXTEST_H
+int testInvertedIndex(int debugMode);
+#endif

http://git-wip-us.apache.org/repos/asf/incubator-concerted/blob/c51c9a21/include/tests/ConcMATTest.h
----------------------------------------------------------------------
diff --git a/include/tests/ConcMATTest.h b/include/tests/ConcMATTest.h
new file mode 100644
index 0000000..49863b6
--- /dev/null
+++ b/include/tests/ConcMATTest.h
@@ -0,0 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef CONCMATTEST_H
+#define CONCMATTEST_H
+int testMAT(int debugMode);
+#endif

http://git-wip-us.apache.org/repos/asf/incubator-concerted/blob/c51c9a21/include/tests/ConcSegHashTableTest.h
----------------------------------------------------------------------
diff --git a/include/tests/ConcSegHashTableTest.h b/include/tests/ConcSegHashTableTest.h
new file mode 100644
index 0000000..9e15ef9
--- /dev/null
+++ b/include/tests/ConcSegHashTableTest.h
@@ -0,0 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef CONCSEGHASHTABLETEST_H
+#define CONCSEGHASHTABLETEST_H
+int testSegHashTable(int debugMode);
+#endif

http://git-wip-us.apache.org/repos/asf/incubator-concerted/blob/c51c9a21/include/tests/QueueLockTest.h
----------------------------------------------------------------------
diff --git a/include/tests/QueueLockTest.h b/include/tests/QueueLockTest.h
new file mode 100644
index 0000000..4717824
--- /dev/null
+++ b/include/tests/QueueLockTest.h
@@ -0,0 +1,20 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef QUEUELOCKTEST_H
+#define QUEUELOCKTEST_H
+int testQueueLock();
+#endif

http://git-wip-us.apache.org/repos/asf/incubator-concerted/blob/c51c9a21/makefile
----------------------------------------------------------------------
diff --git a/makefile b/makefile
index abae2b8..2743f60 100644
--- a/makefile
+++ b/makefile
@@ -1,21 +1,8 @@
-# /*
-#  * Licensed to the Apache Software Foundation (ASF) under one or more
-#  * contributor license agreements.  See the NOTICE file distributed with
-#  * this work for additional information regarding copyright ownership.
-#  * The ASF licenses this file to you under the Apache License, Version 2.0
-#  * (the "License"); you may not use this file except in compliance with
-#  * the License.  You may obtain a copy of the License at
-#  *
-#  * http://www.apache.org/licenses/LICENSE-2.0
-#  *
-#  * Unless required by applicable law or agreed to in writing, software
-#  * distributed under the License is distributed on an "AS IS" BASIS,
-#  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-#  * See the License for the specific language governing permissions and
-#  * limitations under the License.
-#  */
-
 OBJS = obj/CacheManager.o obj/ConcDCT.o obj/ConcMAT.o obj/ConcQueue.o obj/ConcSegHashTable.o obj/ConcInvertedIndex.o
+EXECUTABLE = ./testmain.exe
+TEST_DIR = test/
+
+.PHONY : all clean $(TEST_DIR) $(EXECUTABLE)
 
 all: mkdirectory libconcerted.a obj/CacheManager.o obj/ConcDCT.o obj/ConcInvertedIndex.o obj/ConcMAT.o obj/ConcQueue.o obj/ConcSegHashTable.o
 
@@ -45,6 +32,19 @@ obj/ConcSegHashTable.o : include/ConcSegHashTable.h
 	g++ -c $< -o $@
 
 clean:
-	rm build/libconcerted.a
-	rm -r obj
-	rm -r build
+	-rm build/libconcerted.a
+	-rm -r obj
+	-rm -r build
+	-rm testmain.exe
+	$(MAKE) --directory $(TEST_DIR) $@
+
+check : $(TEST_DIR)
+	$(EXECUTABLE)
+
+$(TEST_DIR):
+	$(MAKE) --directory $@
+
+$(EXECUTABLE):
+	./testmain.exe
+
+run : $(EXECUTABLE)

http://git-wip-us.apache.org/repos/asf/incubator-concerted/blob/c51c9a21/test/ConcDCTConcurrencyTest.cpp
----------------------------------------------------------------------
diff --git a/test/ConcDCTConcurrencyTest.cpp b/test/ConcDCTConcurrencyTest.cpp
index 544d72c..5859f5d 100644
--- a/test/ConcDCTConcurrencyTest.cpp
+++ b/test/ConcDCTConcurrencyTest.cpp
@@ -63,7 +63,7 @@
 
 		search_val(arr_val, tree_val);
 	}
-
+		
 	int main()
 	{
 	dct_tree *tree_val = NULL;
@@ -84,3 +84,5 @@
 	pthread_join(tid3,NULL);
 	pthread_join(tid4,NULL);
 	}
+
+	

http://git-wip-us.apache.org/repos/asf/incubator-concerted/blob/c51c9a21/test/ConcDCTFileReader.cpp
----------------------------------------------------------------------
diff --git a/test/ConcDCTFileReader.cpp b/test/ConcDCTFileReader.cpp
index 4e7471f..853e16c 100644
--- a/test/ConcDCTFileReader.cpp
+++ b/test/ConcDCTFileReader.cpp
@@ -31,7 +31,7 @@ int count;
 int arr_val[3];
 dct_tree *tree_val = NULL;
 TransactionManager t1;
-
+		
 tree_val = build_dcttree(3);
 count = 0;
 while (std::getline(infile, line))  // this does the checking!

http://git-wip-us.apache.org/repos/asf/incubator-concerted/blob/c51c9a21/test/ConcDCTTest.cpp
----------------------------------------------------------------------
diff --git a/test/ConcDCTTest.cpp b/test/ConcDCTTest.cpp
index ce3b5aa..b795e94 100644
--- a/test/ConcDCTTest.cpp
+++ b/test/ConcDCTTest.cpp
@@ -15,10 +15,13 @@
  * limitations under the License.
  */
 #include "../include/ConcDCT.h"
-	int main()
+
+	int testDCT(int debugMode)
 	{
 		int att_array[3];
 		int i = 0;
+		int numberOfTestsPassed = 0;
+		int numberOfTestsFailed = 0;
 		TransactionManager transact_val1;
 		dct_tree *tree_val = NULL;
 		dct_tree *tree_val2 = NULL;
@@ -29,11 +32,11 @@
 		att_array[0] = 1;
 		att_array[1] = 2;
 		att_array[2] = 3;
+
 		try
 		{
 			insert_val(att_array, tree_val, transact_val1);
 			insert_val(att_array, tree_val3, transact_val1);
-			//throw -1;
 			transact_val1.commit_transaction();
 			tree_val2 = copy_val((tree_val->getdummy()), (tree_val->getnumber_of_nodes()));
 		}catch (int e)
@@ -42,37 +45,56 @@
 			return 1;
 		}
 
-		//att_array[2] = 3;
 		if (search_val(att_array, tree_val))
 		{
-			cout<<"All values found"<<endl;
+		  if (debugMode)
+		    cout<<"All values found"<<endl;
+
+		  ++numberOfTestsPassed;
 		}
 		else
 		{
-			cout<<"All values not found"<<endl;
+		  if (debugMode)
+		    cout<<"All values not found"<<endl;
+
+		  ++numberOfTestsFailed;
 		}
 
 		temp = search_val(att_array, tree_val2);
 		if (temp != NULL)
 		{
-			cout<<" All values found copy tree"<<endl;
+		  if (debugMode)
+		    cout<<" All values found copy tree"<<endl;
+
+		  ++numberOfTestsPassed;
 		}
 		else
 		{
-			cout<<"All values not found copy tree"<<endl;
+		  if (debugMode)
+		    cout<<"All values not found copy tree"<<endl;
+
+		  ++numberOfTestsFailed;
 		}
 
 		if (search_val(att_array, tree_val3))
 		{
-			cout<<"All values found3"<<endl;
+		  if (debugMode)
+		    cout<<"All values found3"<<endl;
+
+		  ++numberOfTestsPassed;
 		}
 		else
 		{
-			cout<<"All values not found3"<<endl;
+		  if (debugMode)
+		    cout<<"All values not found3"<<endl;
+
+		  ++numberOfTestsFailed;
 		}
 
 		delete tree_val;
 		delete tree_val2;
 		delete tree_val3;
 		delete temp;
+
+		return numberOfTestsFailed;
 	}

http://git-wip-us.apache.org/repos/asf/incubator-concerted/blob/c51c9a21/test/ConcInvertedIndexTest.cpp
----------------------------------------------------------------------
diff --git a/test/ConcInvertedIndexTest.cpp b/test/ConcInvertedIndexTest.cpp
index 69addb5..47c696a 100644
--- a/test/ConcInvertedIndexTest.cpp
+++ b/test/ConcInvertedIndexTest.cpp
@@ -14,14 +14,18 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
- #include "../include/ConcInvertedIndex.h"
+#include "../include/ConcInvertedIndex.h"
 
-int main()
+int testInvertedIndex(int debugMode)
 	{
 		inv_index<3,0> *index1;
 		int att_values[3];
 		int return_value;
+		int numberOfTestsPassed;
+		int numberOfTestsFailed;
 
+		numberOfTestsPassed = 0;
+		numberOfTestsFailed = 0;
 		return_value = 0;
 		index1 = new inv_index<3,0>;
 		att_values[0] = 3;
@@ -34,11 +38,20 @@ int main()
 
 		if (return_value == 1)
 		{
-			cout<<"values found"<<" "<<return_value<<endl;
+		  if (debugMode)
+		    cout<<"values found"<<" "<<return_value<<endl;
+
+		  ++numberOfTestsPassed;
 		}
 		else
 		{
-			cout<<"values not found"<<" "<<return_value<<endl;
+		  if (debugMode)
+		    cout<<"values not found"<<" "<<return_value<<endl;
+
+		  ++numberOfTestsFailed;
+
 		}
 
+		return numberOfTestsFailed;
+
 	}

http://git-wip-us.apache.org/repos/asf/incubator-concerted/blob/c51c9a21/test/ConcMATTest.cpp
----------------------------------------------------------------------
diff --git a/test/ConcMATTest.cpp b/test/ConcMATTest.cpp
index 5d87d54..53c5c41 100644
--- a/test/ConcMATTest.cpp
+++ b/test/ConcMATTest.cpp
@@ -14,13 +14,18 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
- #include "../include/ConcMAT.h"
+#include "../include/ConcMAT.h"
 
-	int main()
+	int testMAT(int debugValue)
 	{
 		int att_array[3];
 		int i = 0;
+		int numberOfTestsPassed;
+		int numberOfTestsFailed;
 		mat_tree *tree_val = NULL;
+
+		numberOfTestsPassed = 0;
+		numberOfTestsFailed = 0;
 		tree_val = build_mattree(3);
 		att_array[0] = 1;
 		att_array[1] = 2;
@@ -28,12 +33,21 @@
 		insert_val(att_array, tree_val);
 		if (search_val(att_array, tree_val))
 		{
-			cout<<"All values found"<<endl;
+		  if (debugValue > 0)
+		    cout<<"All values found"<<endl;
+
+		  ++numberOfTestsPassed;
 		}
 		else
 		{
-			cout<<"All values not found"<<endl;
+		  if (debugValue > 0)
+		    cout<<"All values not found"<<endl;
+
+		  ++numberOfTestsFailed;
 		}
 
 		delete tree_val;
+
+		return numberOfTestsFailed;
 	}
+

http://git-wip-us.apache.org/repos/asf/incubator-concerted/blob/c51c9a21/test/ConcSegHashTableTest.cpp
----------------------------------------------------------------------
diff --git a/test/ConcSegHashTableTest.cpp b/test/ConcSegHashTableTest.cpp
index f52c773..d10ef6e 100644
--- a/test/ConcSegHashTableTest.cpp
+++ b/test/ConcSegHashTableTest.cpp
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
- #include "../include/ConcSegHashTable.h"
+#include "../include/ConcSegHashTable.h"
 
 ConcSegHashTable<int> tab1(10,2);
 void *thread_lock_test(void *arg1)
@@ -75,7 +75,7 @@ void *thread_lock_test4(void *arg1)
 	tab1.InsertElement(9,false,(char*)arg1);
 }
 
-int main()
+int testSegHashTable(int debugValue)
 {
 	pthread_t tid1;
 	pthread_t tid2;
@@ -96,8 +96,6 @@ int main()
 	pthread_join(tid3,NULL);
 	pthread_join(tid4,NULL);
 
-	tab1.PrintValues();
-
-	//tab1.GetWriteLock(2,3);
-	//tab1.ReleaseWriteLock(2,3);
+	if (debugValue > 0)
+	  tab1.PrintValues();
 }

http://git-wip-us.apache.org/repos/asf/incubator-concerted/blob/c51c9a21/test/ConcSkipListTest.cpp
----------------------------------------------------------------------
diff --git a/test/ConcSkipListTest.cpp b/test/ConcSkipListTest.cpp
index 7a252e4..6507f86 100644
--- a/test/ConcSkipListTest.cpp
+++ b/test/ConcSkipListTest.cpp
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
- #include "../include/QueueLock.h"
+#include "../include/QueueLock.h"
 
 class linked_list
 {
@@ -186,7 +186,7 @@ public:
 		insert_val(0, j, temp);
 		/*for (i = 1;i <= (level - 1);i++)
 		{*/
-
+			
 	}
 
 
@@ -267,7 +267,7 @@ public:
 		}
 
 		return -1;
-	}
+	}	
 };
 
 int main()

http://git-wip-us.apache.org/repos/asf/incubator-concerted/blob/c51c9a21/test/QueueLockTest.cpp
----------------------------------------------------------------------
diff --git a/test/QueueLockTest.cpp b/test/QueueLockTest.cpp
index 828b501..feb70fc 100644
--- a/test/QueueLockTest.cpp
+++ b/test/QueueLockTest.cpp
@@ -26,7 +26,7 @@ void *thread_getlock_start(void *arg1)
 	GlobalQueueLock.ReleaseLock((char*)arg1);
 }
 
-int main()
+void testQueueLock()
 {
 	int data_value = 5;
 	QueueLock lock1;
@@ -55,3 +55,4 @@ int main()
 	pthread_join(tid4,NULL);
 	pthread_join(tid5,NULL);
 }
+

http://git-wip-us.apache.org/repos/asf/incubator-concerted/blob/c51c9a21/test/TestMain.cpp
----------------------------------------------------------------------
diff --git a/test/TestMain.cpp b/test/TestMain.cpp
new file mode 100644
index 0000000..ed7e1d6
--- /dev/null
+++ b/test/TestMain.cpp
@@ -0,0 +1,47 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to you under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#include <iostream>
+#include "../include/tests/ConcDCTTest.h"
+#include "../include/tests/ConcMATTest.h"
+#include "../include/tests/ConcSegHashTableTest.h"
+#include "../include/tests/ConcInvertedIndexTest.h"
+#include "../include/tests/QueueLockTest.h"
+
+using namespace std;
+
+int main()
+{
+  int res1 = 0;
+  int res2 = 0;
+  int res3 = 0;
+
+  res1 = testDCT(0);
+  if (res1)
+    throw;
+
+  res2 = testMAT(0);
+  if (res2)
+    throw;
+
+  testSegHashTable(0);
+
+  res3 = testInvertedIndex(0);
+  if (res3)
+    throw;
+
+  cout <<"All tests passed"<<endl;
+}

http://git-wip-us.apache.org/repos/asf/incubator-concerted/blob/c51c9a21/test/makefile
----------------------------------------------------------------------
diff --git a/test/makefile b/test/makefile
new file mode 100644
index 0000000..69d3db1
--- /dev/null
+++ b/test/makefile
@@ -0,0 +1,33 @@
+OBJS = obj/ConcDCTTest.o obj/ConcMATTest.o obj/ConcSegHashTableTest.o obj/ConcInvertedIndexTest.o obj/QueueLockTest.o obj/TestMain.o
+
+all: mkdirectory testmain.exe obj/ConcDCTTest.o obj/ConcInvertedIndexTest.o obj/ConcMATTest.o obj/ConcSegHashTableTest.o obj/QueueLockTest.o obj/TestMain.o
+
+mkdirectory :
+	mkdir -p obj
+
+testmain.exe : $(OBJS)
+	g++  $(OBJS) -o ../testmain.exe -lpthread -lrt
+
+obj/ConcDCTTest.o : ConcDCTTest.cpp
+	g++ -c $< -o $@ -lpthread -lrt
+
+obj/ConcInvertedIndexTest.o : ConcInvertedIndexTest.cpp
+	g++ -c $< -o $@ -lpthread -lrt
+
+obj/ConcMATTest.o : ConcMATTest.cpp
+	g++ -c $< -o $@ -lpthread -lrt
+
+obj/ConcQueue.o : ConcQueueTest.cpp
+	g++ -c $< -o $@ -lpthread -lrt
+
+obj/QueueLockTest.o : QueueLockTest.cpp
+	g++ -c $< -o $@ -lpthread -lrt
+
+obj/ConcSegHashTableTest.o : ConcSegHashTableTest.cpp
+	g++ -c $< -o $@ -lpthread -lrt
+
+obj/TestMain.o : TestMain.cpp
+	g++ -c $< -o $@ -lpthread -lrt
+
+clean:
+	-rm -r obj
\ No newline at end of file