Пример #1
0
        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
        }
Пример #2
0
        /// <summary>
        /// 字典测试
        /// </summary>
        /// <param name="client"></param>
        /// <returns></returns>
        internal static bool TestCase(AutoCSer.CacheServer.Client client)
        {
            #region 创建名称为 ValueDictionary 的字典缓存
            ValueDictionary <int, int> dictionary = client.GetOrCreateDataStructure <ValueDictionary <int, int> >("ValueDictionary").Value;
            if (dictionary == null)
            {
                return(false);
            }
            #endregion

            return(TestCase(dictionary));
        }
Пример #3
0
        /// <summary>
        /// 数组测试
        /// </summary>
        /// <param name="client"></param>
        /// <returns></returns>
        internal static bool TestCase(AutoCSer.CacheServer.Client client)
        {
            #region 创建名称为 Array 的数组缓存
            Array <ValueDictionary <int, int> > array = client.GetOrCreateDataStructure <Array <ValueDictionary <int, int> > >("Array").Value;
            if (array == null)
            {
                return(false);
            }
            #endregion

            #region 创建或者获取子节点
            ValueDictionary <int, int> dictionary = array.GetOrCreate(1).Value;
            if (dictionary == null)
            {
                return(false);
            }
            #endregion

            #region 判断第一个节点是否可用
            AutoCSer.CacheServer.ReturnValue <bool> isNode = array.IsNode(1);
            if (!isNode.Value)
            {
                return(false);
            }
            #endregion

            if (!ValueDictionary.TestCase(dictionary))
            {
                return(false);
            }

            #region 创建短路径
            AutoCSer.CacheServer.ShortPath.Dictionary <int, int> shortPathDictionary = dictionary.CreateShortPath().Value;
            if (shortPathDictionary == null)
            {
                return(false);
            }
            #endregion

            if (!ValueDictionary.TestCase(shortPathDictionary))
            {
                return(false);
            }

            #region 获取数组已使用长度
            AutoCSer.CacheServer.ReturnValue <int> count = array.Count;
            if (count.Value != 2)
            {
                return(false);
            }
            #endregion

            #region 清除所有数据
            AutoCSer.CacheServer.ReturnValue <bool> isClear = array.Clear();
            if (!isClear.Value)
            {
                return(false);
            }
            count = array.Count;
            if (count.Type != AutoCSer.CacheServer.ReturnType.Success || count.Value != 0)
            {
                return(false);
            }
            #endregion

            return(true);
        }
Пример #4
0
        /// <summary>
        /// 字典测试
        /// </summary>
        /// <param name="dictionary"></param>
        /// <returns></returns>
        internal static bool TestCase(ValueDictionary <int, int> dictionary)
        {
            #region dictionary[1] = 9;
            AutoCSer.CacheServer.ReturnValue <bool> isSet = dictionary.Set(1, 9);
            if (!isSet.Value)
            {
                return(false);
            }
            #endregion

            #region 判断关键字 1 是否存在
            AutoCSer.CacheServer.ReturnValue <bool> isKey = dictionary.ContainsKey(1);
            if (!isKey.Value)
            {
                return(false);
            }
            #endregion

            #region 获取关键字为 1 的数据
            AutoCSer.CacheServer.ReturnValue <int> value = dictionary.Get(1);
            if (value.Value != 9)
            {
                return(false);
            }
            #endregion

            #region 获取关键字为 1 的数字更新
            AutoCSer.CacheServer.OperationUpdater.Integer <int> integer = dictionary.GetIntegerUpdater(1);
            #endregion

            #region 关键字为 1 的数据 ^2
            value = integer ^ 2;
            if (value.Value != 11)
            {
                return(false);
            }
            #endregion

            #region 关键字为 1 的数据 &7
            value = integer & 7;
            if (value.Value != 3)
            {
                return(false);
            }
            #endregion

            #region 关键字为 1 的数据 +3
            value = integer.Number + 3;
            if (value.Value != 6)
            {
                return(false);
            }
            #endregion

            #region 获取关键字为 1 的数据
            value = dictionary.Get(1);
            if (value.Value != 6)
            {
                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);
        }