Exemple #1
0
        static void Main(string[] args)
        {
            bool is_raw = false;
            bool is_silent = false;
            int thread_cnt = DEFAULT_THREAD_CNT;
            int iter_cnt = DEFAULT_ITERATION_CNT;
            for (int inx = 0; inx < args.Length; inx++)
            {
                if ("-RAW".Equals(args[inx], StringComparison.InvariantCultureIgnoreCase))
                    is_raw = true;
                if ("-SILENT".Equals(args[inx], StringComparison.InvariantCultureIgnoreCase))
                    is_silent = true;
                else if ("-ITERATIONS".Equals(args[inx], StringComparison.InvariantCultureIgnoreCase))
                    iter_cnt = int.Parse(args[inx + 1]);
                else if ("-THREADS".Equals(args[inx], StringComparison.InvariantCultureIgnoreCase))
                    thread_cnt = int.Parse(args[inx + 1]);
            }
            if (!is_silent)
            {
                Console.WriteLine("Authorization List Checker Test");
                Console.WriteLine("AuthListTest [-RAW] [-SILENT] [-ITERATIONS <#>] [-THREADS <#>]");
                Console.WriteLine("DB initialization");
            }
            DbManager.InitializeDB(thread_cnt);
            if (!is_silent)
                Console.WriteLine("Done");

            User[] users = DbManager.GetUsers(thread_cnt);
            var started = DateTime.Now;
            ThreadPool.SetMaxThreads(thread_cnt, thread_cnt);
            ThreadPool.SetMinThreads(thread_cnt, thread_cnt);
            for (int i = 0; i < thread_cnt; i++)
            {
                var test = new AuthorizationCheckerTest()
                {
                    IsSilent = is_silent,
                    ThreadIndex = i,
                    UserId = users[i].Id,
                    IterationCount = iter_cnt,
                    SessionMgr = (is_raw ?
                        (ISessionManager)new SessionManager() : new SessionCacheManager())
                };

                ThreadPool.QueueUserWorkItem(new WaitCallback(TestThreadProc), test);
            }
            while (Interlocked.Read(ref FinishedThreadsCount) < thread_cnt)
            {
                Thread.Sleep(0);
            }
            var total = (int)DateTime.Now.Subtract(started).TotalMilliseconds;
            if (is_silent)
                Console.WriteLine(total);
            else
                Console.WriteLine("TOTAL(" +
                (is_raw ? "RAW" : "CACHE") + ", ITERATIONS:" + iter_cnt + ", THREADS:" + thread_cnt + ") = "
                + total + "ms");
            SessionCacheManager.TerminateCaching();
        }
Exemple #2
0
        static void Main(string[] args)
        {
            bool is_raw = false;
            bool is_serv = false;
            bool is_silent = false;
            bool is_dbinit = false;
            int thread_cnt = DEFAULT_THREAD_CNT;
            int iter_cnt = DEFAULT_ITERATION_CNT;
            for (int inx = 0; inx < args.Length; inx++)
            {
                if ("-SERVICE".Equals(args[inx], StringComparison.InvariantCultureIgnoreCase))
                    is_serv = true;
                else if ("-RAW".Equals(args[inx], StringComparison.InvariantCultureIgnoreCase))
                    is_raw = true;
                else if ("-SILENT".Equals(args[inx], StringComparison.InvariantCultureIgnoreCase))
                    is_silent = true;
                else if ("-ITERATIONS".Equals(args[inx], StringComparison.InvariantCultureIgnoreCase))
                    iter_cnt = int.Parse(args[inx + 1]);
                else if ("-THREADS".Equals(args[inx], StringComparison.InvariantCultureIgnoreCase))
                    thread_cnt = int.Parse(args[inx + 1]);
                else if ("-DBINIT".Equals(args[inx], StringComparison.InvariantCultureIgnoreCase))
                {
                    is_dbinit = true;
                    thread_cnt = int.Parse(args[inx + 1]);
                }
            }
            if (!is_silent)
            {
                Console.WriteLine("Authorization List Checker Test");
                Console.WriteLine(@"{[-DBINIT<# of users>] | { {[-RAW]|[-SERVICE]} [-SILENT] [-ITERATIONS<#>] [-THREADS <#>]}}");
            }
            if (is_dbinit)
            {
                if (!is_silent)
                    Console.WriteLine("DB initialization");
                DbManager.InitializeDB(thread_cnt);
                if (!is_silent)
                    Console.WriteLine("Done");
                return;
            }
            User[] users = DbManager.GetUsers(thread_cnt);
            var started = DateTime.Now;
            ThreadPool.SetMaxThreads(thread_cnt * 2, thread_cnt * 2);
            ThreadPool.SetMinThreads(thread_cnt, thread_cnt);
            // NFX app base 
            var nfx_arg = new string[] { "/config", "AuthService.Client.laconf" };
            ServiceBaseApplication nfx_app = (is_serv ?
                new ServiceBaseApplication(args: nfx_arg, rootConfig: null)
                : null);
            try
            {
                if(users.Length < thread_cnt)
                {
                    throw new InvalidOperationException(
                        "Users table is not initialized. Use -DBINIT <# of users> to fix it.");
                }
                // start test threads
                for (int i = 0; i < thread_cnt; i++)
                {

                    var test = new AuthorizationCheckerTest()
                    {
                        IsSilent = is_silent,
                        ThreadIndex = i,
                        UserId = users[i].Id,
                        IterationCount = iter_cnt,

                    };
                    // test mode switcher
                    if (is_raw)
                        test.SessionMgr = new SessionManager();
                    else if (is_serv)
                        test.SessionMgr = new SessionManagerClient();
                    else
                        test.SessionMgr = new SessionCacheManager();


                    ThreadPool.QueueUserWorkItem(new WaitCallback(TestThreadProc), test);
                }
                while (Interlocked.Read(ref FinishedThreadsCount) < thread_cnt)
                {
                    Thread.Sleep(0);
                }
                var total = (int)DateTime.Now.Subtract(started).TotalMilliseconds;
                if (is_silent)
                {
                    Console.WriteLine("===========");
                    Console.WriteLine(total);
                }
                else
                {
                    Console.WriteLine("TOTAL(" +
                    (is_raw ? "RAW" : (is_serv ? "SERVICE" : "CACHE"))
                    + ", ITERATIONS:" + iter_cnt
                    + ", THREADS:" + thread_cnt + ") = "
                    + total + "ms");
                }
                SessionCacheManager.TerminateCaching();
                var sc = SessionManager.GetDbSessionsCount();
                if (sc > 0)
                {
                    Console.WriteLine("!!! Not Closed Sessions (count=" + sc + ")");
                }
            }
            finally
            {
                if (nfx_app != null)
                    nfx_app.Dispose();
            }
        }
Exemple #3
0
        static void Main(string[] args)
        {
            bool is_raw     = false;
            bool is_silent  = false;
            int  thread_cnt = DEFAULT_THREAD_CNT;
            int  iter_cnt   = DEFAULT_ITERATION_CNT;

            for (int inx = 0; inx < args.Length; inx++)
            {
                if ("-RAW".Equals(args[inx], StringComparison.InvariantCultureIgnoreCase))
                {
                    is_raw = true;
                }
                if ("-SILENT".Equals(args[inx], StringComparison.InvariantCultureIgnoreCase))
                {
                    is_silent = true;
                }
                else if ("-ITERATIONS".Equals(args[inx], StringComparison.InvariantCultureIgnoreCase))
                {
                    iter_cnt = int.Parse(args[inx + 1]);
                }
                else if ("-THREADS".Equals(args[inx], StringComparison.InvariantCultureIgnoreCase))
                {
                    thread_cnt = int.Parse(args[inx + 1]);
                }
            }
            if (!is_silent)
            {
                Console.WriteLine("Authorization List Checker Test");
                Console.WriteLine("AuthListTest [-RAW] [-SILENT] [-ITERATIONS <#>] [-THREADS <#>]");
                Console.WriteLine("DB initialization");
            }
            DbManager.InitializeDB(thread_cnt);
            if (!is_silent)
            {
                Console.WriteLine("Done");
            }

            User[] users   = DbManager.GetUsers(thread_cnt);
            var    started = DateTime.Now;

            ThreadPool.SetMaxThreads(thread_cnt, thread_cnt);
            ThreadPool.SetMinThreads(thread_cnt, thread_cnt);
            for (int i = 0; i < thread_cnt; i++)
            {
                var test = new AuthorizationCheckerTest()
                {
                    IsSilent       = is_silent,
                    ThreadIndex    = i,
                    UserId         = users[i].Id,
                    IterationCount = iter_cnt,
                    SessionMgr     = (is_raw ?
                                      (ISessionManager) new SessionManager() : new SessionCacheManager())
                };

                ThreadPool.QueueUserWorkItem(new WaitCallback(TestThreadProc), test);
            }
            while (Interlocked.Read(ref FinishedThreadsCount) < thread_cnt)
            {
                Thread.Sleep(0);
            }
            var total = (int)DateTime.Now.Subtract(started).TotalMilliseconds;

            if (is_silent)
            {
                Console.WriteLine(total);
            }
            else
            {
                Console.WriteLine("TOTAL(" +
                                  (is_raw ? "RAW" : "CACHE") + ", ITERATIONS:" + iter_cnt + ", THREADS:" + thread_cnt + ") = "
                                  + total + "ms");
            }
            SessionCacheManager.TerminateCaching();
        }