static unsafe void Main(string[] args) { #if DotNetStandard Console.WriteLine("WARN : Linux .NET Core not support name EventWaitHandle"); #else bool createdProcessWait; EventWaitHandle processWait = new EventWaitHandle(false, EventResetMode.ManualReset, "AutoCSer.TestCase.CacheServerPerformance", out createdProcessWait); if (createdProcessWait) { using (processWait) { #endif Console.WriteLine(@"http://www.AutoCSer.com/CacheServer/Index.html "); checkFileSize("test.amc"); checkFileSize("test.amcs"); using (AutoCSer.CacheServer.MasterServer.TcpInternalServer server = new AutoCSer.CacheServer.MasterServer.TcpInternalServer()) { if (server.IsListen) { using (AutoCSer.CacheServer.Client client = new AutoCSer.CacheServer.Client()) { Console.WriteLine(MesssageQueueConsumer.TestCase(client)); Console.WriteLine(MesssageQueueConsumers.TestCase(client)); Console.WriteLine(MesssageDistributor.TestCase(client)); Console.WriteLine(ValueArray.TestCase(client)); Console.WriteLine(ValueDictionary.TestCase(client)); Console.WriteLine(ValueSearchTreeDictionary.TestCase(client)); Console.WriteLine(Heap.TestCase(client)); Console.WriteLine(HashSet.TestCase(client)); Console.WriteLine(Link.TestCase(client)); Console.WriteLine(Bitmap.TestCase(client)); Console.WriteLine(Array.TestCase(client)); Console.WriteLine(Dictionary.TestCase(client)); Console.WriteLine(SearchTreeDictionary.TestCase(client)); Console.WriteLine("Over"); Console.ReadKey(); } } else { Console.WriteLine("缓存服务启动失败"); Console.ReadKey(); } } #if !DotNetStandard } } #endif }
/// <summary> /// 搜索树字典测试 /// </summary> /// <param name="client"></param> /// <returns></returns> internal static bool TestCase(AutoCSer.CacheServer.Client client) { #region 创建名称为 SearchTreeDictionary 的搜索树字典缓存 SearchTreeDictionary <int, ValueArray <int> > dictionary = client.GetOrCreateDataStructure <SearchTreeDictionary <int, ValueArray <int> > >("SearchTreeDictionary").Value; if (dictionary == null) { return(false); } #endregion #region 创建或者获取关键字为 1 的子节点 ValueArray <int> array = dictionary.GetOrCreate(1).Value; if (array == null) { return(false); } #endregion if (!ValueArray.TestCase(array)) { return(false); } #region 创建短路径 AutoCSer.CacheServer.ShortPath.Array <int> shortPathArray = array.CreateShortPath().Value; if (shortPathArray == null) { return(false); } #endregion if (!ValueArray.TestCase(shortPathArray)) { return(false); } #region 判断关键字 1 是否存在 AutoCSer.CacheServer.ReturnValue <bool> isKey = dictionary.ContainsKey(1); if (!isKey.Value) { return(false); } #endregion #region 获取字典数据数量 AutoCSer.CacheServer.ReturnValue <int> count = dictionary.Count; if (count.Value != 1) { return(false); } #endregion #region 除关键字为 1 的数据 AutoCSer.CacheServer.ReturnValue <bool> isRemove = dictionary.Remove(1); if (!isRemove.Value) { return(false); } count = dictionary.Count; if (count.Type != AutoCSer.CacheServer.ReturnType.Success || count.Value != 0) { return(false); } #endregion return(true); }