From acccedee63d525b1d7678b3ec17a223a61bdc0c7 Mon Sep 17 00:00:00 2001
From: whh8b <whh8b@git.zephyr-software.com>
Date: Thu, 4 Feb 2016 08:14:30 +0000
Subject: [PATCH] Add tests for GetNearbyFreeRanges and the copy constructor.

---
 test/MemorySpace.cpp | 42 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/test/MemorySpace.cpp b/test/MemorySpace.cpp
index 74c5023..0a3e486 100644
--- a/test/MemorySpace.cpp
+++ b/test/MemorySpace.cpp
@@ -283,6 +283,46 @@ bool TestClearSomeIteratively()
 	return m.GetRangeCount() == 1;
 }
 
+bool TestGetNearbyFreeRanges()
+{
+	ZiprMemorySpace_t m;
+	int result_count = 0;
+	pair<RangeSet_t::const_iterator, RangeSet_t::const_iterator> result;
+	RangeSet_t::const_iterator result_it, result_it_end;	
+
+	m.AddFreeRange(Range_t(512, 512));
+	m.AddFreeRange(Range_t(513, 1024));
+	m.AddFreeRange(Range_t(1025, 4096));
+
+	m.PrintMemorySpace(cout);
+
+	result = m.GetNearbyFreeRanges(RangeAddress_t(1000));
+	for (result_it = result.first, result_it_end = result.second;
+	     result_it != result_it_end;
+			 result_it++, result_count++) {}
+	return result_count == 2;
+}
+
+bool TestCopyConstructor()
+{
+	ZiprMemorySpace_t m, n;
+
+	m.AddFreeRange(Range_t(512, 512));
+	m.AddFreeRange(Range_t(513, 1024));
+	m.AddFreeRange(Range_t(1025, 4096));
+
+
+	n = m;
+	n.AddFreeRange(Range_t(8192, 16384));
+
+	cout << "m: " << endl;
+	m.PrintMemorySpace(cout);
+	cout << "n: " << endl;
+	n.PrintMemorySpace(cout);
+
+	return true;
+}
+
 int main(int argc, char *argv[])
 {
 	INVOKE(TestSplitMemorySpace);
@@ -294,4 +334,6 @@ int main(int argc, char *argv[])
 	INVOKE(TestClearAllIteratively);
 	INVOKE(TestClearSomeIteratively);
 	INVOKE(TestEraseOneByter);
+	INVOKE(TestGetNearbyFreeRanges);
+	INVOKE(TestCopyConstructor);
 }
-- 
GitLab