public void poolpage_alloc_canAlloc() { long handle2 = 1; int code; //释放一个还没有分配的handle,返回-1 code = page.Return(handle2); Assert.AreEqual(code, -1); for (int i = 1; i <= page.Total && page.CanAlloc; i++) { long handle = page.Alloc(elemSize); if (handle == -1) { Console.WriteLine("还有可以分配的segment,但是却报告错误了"); Console.WriteLine("循环次数:" + i); Console.WriteLine("page.Total:" + page.Total); Console.WriteLine("page.Available:" + page.Available); Console.WriteLine("------------------------------------"); Assert.Fail(); } } code = 0; code = page.Return(handle2); Assert.AreEqual(code, 0); //将释放的handle再进行释放,将返回-1 code = 0; code = page.Return(handle2); Assert.AreEqual(code, -1); //释放一个超过范围的值,将返回-1 code = 0; code = page.Return(513); Assert.AreEqual(code, -1); }