Exemplo n.º 1
0
    public void _0_9_Pipeline(Disquuun disquuun)
    {
        WaitUntil("_0_9_Pipeline", () => (disquuun.State() == Disquuun.ConnectionState.OPENED), 5);

        var gotInfoCount = 0;

        disquuun.Pipeline(disquuun.Info(), disquuun.Info()).Execute(
            (command, data) => {
            lock (_0_9_PipelineObject) gotInfoCount++;
        }
            );

        WaitUntil("_0_9_Pipeline", () => (gotInfoCount == 2), 1);
    }
Exemplo n.º 2
0
    public void _0_9_1_MultiplePipeline(Disquuun disquuun)
    {
        WaitUntil("_0_9_1_MultiplePipeline", () => (disquuun.State() == Disquuun.ConnectionState.OPENED), 5);

        var infoCount = 0;

        disquuun.Pipeline(disquuun.Info());
        disquuun.Pipeline(disquuun.Info());
        disquuun.Pipeline(disquuun.Info()).Execute(
            (command, data) => {
            lock (_0_9_1_MultiplePipelineObject) infoCount++;
        }
            );

        WaitUntil("_0_9_1_MultiplePipeline", () => (infoCount == 3), 5);
    }
Exemplo n.º 3
0
    public long _6_1_ExceededSocketNo100In2(Disquuun disquuun)
    {
        WaitUntil("_6_1_ExceededSocketNo100In2", () => (disquuun.State() == Disquuun.ConnectionState.OPENED), 5);

        var queueId   = Guid.NewGuid().ToString();
        var infoCount = 0;

        var connectCount = 1000;
        var w            = new Stopwatch();

        w.Start();

        for (var i = 0; i < connectCount; i++)
        {
            disquuun.Info().Async(
                (command, data) =>
            {
                lock (_6_1_ExceededSocketNo100In2LockObject) infoCount++;
            }
                );
        }

        WaitUntil("_6_1_ExceededSocketNo100In2", () => (infoCount == connectCount), 5);
        w.Stop();
        return(w.ElapsedMilliseconds);
    }
Exemplo n.º 4
0
    public long _0_7_LoopInfo_100(Disquuun disquuun)
    {
        WaitUntil("_0_7_LoopInfo_100", () => (disquuun.State() == Disquuun.ConnectionState.OPENED), 5);


        var infos = new List <string>();
        var w     = new Stopwatch();

        w.Start();

        disquuun.Info().Loop(
            (DisqueCommand command, DisquuunResult[] datas) =>
        {
            var infoStr = DisquuunDeserializer.Info(datas).rawString;
            lock (_0_7_LoopInfo_100Object) infos.Add(infoStr);
            if (infos.Count < 100)
            {
                return(true);
            }
            return(false);
        }
            );

        WaitUntil("_0_7_LoopInfo_100", () => (infos.Count == 100), 5);
        w.Stop();
        return(w.ElapsedMilliseconds);
    }
Exemplo n.º 5
0
    public long _6_2_ExceededSocketShouldStacked(Disquuun disquuun)
    {
        WaitUntil("_6_2_ExceededSocketShouldStacked", () => (disquuun.State() == Disquuun.ConnectionState.OPENED), 5);

        var queueId   = Guid.NewGuid().ToString();
        var infoCount = 0;

        var connectCount = 1000;
        var w            = new Stopwatch();

        w.Start();
        for (var i = 0; i < connectCount; i++)
        {
            disquuun.Info().Async(
                (command, data) =>
            {
                lock (_6_2_ExceededSocketShouldStackedLockObject) infoCount++;
            }
                );
        }

        var stackedCommandCount = disquuun.StackedCommandCount();

        // this assert "maybe" hit. not hit if sockets can run so fast.
        Assert("_6_2_ExceededSocketShouldStacked", 0 < stackedCommandCount, "not match, " + stackedCommandCount);
        WaitUntil("_6_2_ExceededSocketShouldStacked", () => (infoCount == connectCount), 5);
        w.Stop();
        return(w.ElapsedMilliseconds);
    }
Exemplo n.º 6
0
    public void _0_3_SyncInfoTwice(Disquuun disquuun)
    {
        WaitUntil("", () => (disquuun.State() == Disquuun.ConnectionState.OPENED), 5);

        {
            var datas   = disquuun.Info().DEPRICATED_Sync();
            var infoStr = DisquuunDeserializer.Info(datas).rawString;
            Assert("_0_3_SyncInfoTwice", !string.IsNullOrEmpty(infoStr), "empty.");
        }

        {
            var datas   = disquuun.Info().DEPRICATED_Sync();
            var infoStr = DisquuunDeserializer.Info(datas).rawString;
            Assert("_0_3_SyncInfoTwice", !string.IsNullOrEmpty(infoStr), "empty.");
        }
    }
Exemplo n.º 7
0
    public void _1_6_Info_Sync(Disquuun disquuun)
    {
        WaitUntil("_1_6_Info_Sync", () => (disquuun.State() == Disquuun.ConnectionState.OPENED), 5);

        var infoData   = disquuun.Info().DEPRICATED_Sync();
        var infoResult = DisquuunDeserializer.Info(infoData);

        Assert("_1_6_Info_Sync", 0, infoResult.jobs.registered_jobs, "not match.");
    }
Exemplo n.º 8
0
    public long _0_9_Pipeline(Disquuun disquuun)
    {
        WaitUntil("_0_9_Pipeline", () => (disquuun.State() == Disquuun.ConnectionState.OPENED), 5);

        var gotInfoCount = 0;
        var w            = new Stopwatch();

        w.Start();

        disquuun.Pipeline(disquuun.Info(), disquuun.Info()).Execute(
            (command, data) =>
        {
            lock (_0_9_PipelineObject) gotInfoCount++;
        }
            );

        WaitUntil("_0_9_Pipeline", () => (gotInfoCount == 2), 1);
        w.Stop();
        return(w.ElapsedMilliseconds);
    }
Exemplo n.º 9
0
    public long _0_3_SyncInfoTwice(Disquuun disquuun)
    {
        WaitUntil("_0_3_SyncInfoTwice", () => (disquuun.State() == Disquuun.ConnectionState.OPENED), 5);
        var w = new Stopwatch();

        w.Start();

        {
            var datas   = disquuun.Info().DEPRICATED_Sync();
            var infoStr = DisquuunDeserializer.Info(datas).rawString;
            Assert("_0_3_SyncInfoTwice", !string.IsNullOrEmpty(infoStr), "empty.");
        }

        {
            var datas   = disquuun.Info().DEPRICATED_Sync();
            var infoStr = DisquuunDeserializer.Info(datas).rawString;
            Assert("_0_3_SyncInfoTwice", !string.IsNullOrEmpty(infoStr), "empty.");
        }
        w.Stop();
        return(w.ElapsedMilliseconds);
    }
Exemplo n.º 10
0
    public void _0_9_2_MultipleCommandPipeline(Disquuun disquuun)
    {
        WaitUntil("_0_9_2_MultipleCommandPipeline", () => (disquuun.State() == Disquuun.ConnectionState.OPENED), 5);

        var infoCount  = 0;
        var addedJobId = string.Empty;
        var gotJobId   = "_";

        var queueId = Guid.NewGuid().ToString();

        var jobData = new byte[100];

        for (var i = 0; i < jobData.Length; i++)
        {
            jobData[i] = 1;
        }

        disquuun.Pipeline(disquuun.Info());
        disquuun.Pipeline(disquuun.AddJob(queueId, jobData));
        disquuun.Pipeline(disquuun.GetJob(new string[] { queueId })).Execute(
            (command, data) => {
            switch (command)
            {
            case DisqueCommand.INFO: {
                lock (_0_9_2_MultipleCommandPipelineObject) {
                    infoCount++;
                }
                break;
            }

            case DisqueCommand.ADDJOB: {
                lock (_0_9_2_MultipleCommandPipelineObject) {
                    addedJobId = DisquuunDeserializer.AddJob(data);
                }
                break;
            }

            case DisqueCommand.GETJOB: {
                lock (_0_9_2_MultipleCommandPipelineObject) {
                    var gotJobDatas = DisquuunDeserializer.GetJob(data);
                    gotJobId        = gotJobDatas[0].jobId;
                    disquuun.FastAck(new string[] { gotJobId }).DEPRICATED_Sync();
                }
                break;
            }
            }
        }
            );

        WaitUntil("_0_9_2_MultipleCommandPipeline", () => (infoCount == 1 && !string.IsNullOrEmpty(addedJobId) && gotJobId == addedJobId), 5);
    }
Exemplo n.º 11
0
    public void _0_8_Pipeline_Single(Disquuun disquuun)
    {
        WaitUntil("_0_8_Pipeline_Single", () => (disquuun.State() == Disquuun.ConnectionState.OPENED), 5);

        var gotInfo = false;

        disquuun.Pipeline(disquuun.Info()).Execute(
            (command, data) => {
            gotInfo = true;
        }
            );

        WaitUntil("_0_8_Pipeline_Single", () => gotInfo, 1);
    }
Exemplo n.º 12
0
    public void _0_4_AsyncInfo(Disquuun disquuun)
    {
        WaitUntil("_0_4_AsyncInfo", () => (disquuun.State() == Disquuun.ConnectionState.OPENED), 5);

        var infoStr = string.Empty;

        disquuun.Info().Async(
            (DisqueCommand command, DisquuunResult[] datas) => {
            infoStr = DisquuunDeserializer.Info(datas).rawString;
        }
            );

        WaitUntil("_0_4_AsyncInfo", () => !string.IsNullOrEmpty(infoStr), 5);
    }
Exemplo n.º 13
0
    public void _2_6_Info_Async(Disquuun disquuun)
    {
        WaitUntil("_2_6_Info_Async", () => (disquuun.State() == Disquuun.ConnectionState.OPENED), 5);

        var registered_jobs = 0;

        disquuun.Info().Async(
            (c, data) => {
            var infoResult  = DisquuunDeserializer.Info(data);
            registered_jobs = infoResult.jobs.registered_jobs;
        }
            );

        WaitUntil("_2_6_Info_Async", () => (registered_jobs == 0), 5);
    }
Exemplo n.º 14
0
    public void _0_5_LoopInfo_Once(Disquuun disquuun)
    {
        WaitUntil("_0_5_LoopInfo_Once", () => (disquuun.State() == Disquuun.ConnectionState.OPENED), 5);

        var infoStr = string.Empty;

        disquuun.Info().Loop(
            (DisqueCommand command, DisquuunResult[] datas) => {
            infoStr = DisquuunDeserializer.Info(datas).rawString;
            return(false);
        }
            );

        WaitUntil("_0_5_LoopInfo_Once", () => !string.IsNullOrEmpty(infoStr), 5);
    }
Exemplo n.º 15
0
    public long _1_6_Info_Sync(Disquuun disquuun)
    {
        WaitUntil("_1_6_Info_Sync", () => (disquuun.State() == Disquuun.ConnectionState.OPENED), 5);
        var w = new Stopwatch();

        w.Start();


        var infoData   = disquuun.Info().DEPRICATED_Sync();
        var infoResult = DisquuunDeserializer.Info(infoData);

        Assert("_1_6_Info_Sync", 0, infoResult.jobs.registered_jobs, "not match.");
        w.Stop();
        return(w.ElapsedMilliseconds);
    }
Exemplo n.º 16
0
    public void _6_0_ExceededSocketNo3In2(Disquuun disquuun)
    {
        WaitUntil("_6_0_ExceededSocketNo3In2", () => (disquuun.State() == Disquuun.ConnectionState.OPENED), 5);

        var queueId   = Guid.NewGuid().ToString();
        var infoCount = 0;

        for (var i = 0; i < 3; i++)
        {
            disquuun.Info().Async(
                (command, data) => {
                infoCount++;
            }
                );
        }

        WaitUntil("_6_0_ExceededSocketNo3In2", () => (infoCount == 3), 5);
    }
Exemplo n.º 17
0
    public long _2_0_4_AddJob_Async_Retry_0_And_TTL_1Sec(Disquuun disquuun)
    {
        WaitUntil("_2_0_4_AddJob_Async_Retry_0_And_TTL_1Sec", () => (disquuun.State() == Disquuun.ConnectionState.OPENED), 5);

        var queueId = Guid.NewGuid().ToString();

        var jobId = string.Empty;

        disquuun.AddJob(queueId, data_10, 0, "RETRY", 0, "TTL", 1).Async(
            (command, result) =>
        {
            jobId = DisquuunDeserializer.AddJob(result);
        }
            );

        WaitUntil("_2_0_4_AddJob_Async_Retry_0_And_TTL_1Sec", () => !string.IsNullOrEmpty(jobId), 5);

        DisquuunDeserializer.Qlen(disquuun.Qlen(queueId).DEPRICATED_Sync());

        // getjob (but not ack it.)
        DisquuunDeserializer.GetJob(disquuun.GetJob(new string[] { queueId }).DEPRICATED_Sync());

        // once, queue len should be zero by getJob.
        var len1 = DisquuunDeserializer.Qlen(disquuun.Qlen(queueId).DEPRICATED_Sync());

        Assert("_2_0_4_AddJob_Async_Retry_0_And_TTL_1Sec", len1 == 0, "not match, len1:" + len1);

        // wait 2 sec.
        Wait("_2_0_4_AddJob_Async_Retry_0_And_TTL_1Sec", 2);

        // both qlen and info returns rest job == 0.

        var len2 = DisquuunDeserializer.Qlen(disquuun.Qlen(queueId).DEPRICATED_Sync());

        Assert("_2_0_4_AddJob_Async_Retry_0_And_TTL_1Sec", len2 == 0, "not match, len2:" + len2);

        // and rest job is 0.
        var info = DisquuunDeserializer.Info(disquuun.Info().DEPRICATED_Sync());

        Assert("_2_0_4_AddJob_Async_Retry_0_And_TTL_1Sec", info.jobs.registered_jobs == 0, "not match.");
        return(0);
    }
Exemplo n.º 18
0
    public long _0_8_Pipeline_Single(Disquuun disquuun)
    {
        WaitUntil("_0_8_Pipeline_Single", () => (disquuun.State() == Disquuun.ConnectionState.OPENED), 5);

        var gotInfo = false;
        var w       = new Stopwatch();

        w.Start();

        disquuun.Pipeline(disquuun.Info()).Execute(
            (command, data) =>
        {
            gotInfo = true;
        }
            );

        WaitUntil("_0_8_Pipeline_Single", () => gotInfo, 1);
        w.Stop();
        return(w.ElapsedMilliseconds);
    }
Exemplo n.º 19
0
    public long _0_4_AsyncInfo(Disquuun disquuun)
    {
        WaitUntil("_0_4_AsyncInfo", () => (disquuun.State() == Disquuun.ConnectionState.OPENED), 5);
        var w = new Stopwatch();

        w.Start();

        var infoStr = string.Empty;

        disquuun.Info().Async(
            (DisqueCommand command, DisquuunResult[] datas) =>
        {
            infoStr = DisquuunDeserializer.Info(datas).rawString;
        }
            );

        WaitUntil("_0_4_AsyncInfo", () => !string.IsNullOrEmpty(infoStr), 5);
        w.Stop();
        return(w.ElapsedMilliseconds);
    }
Exemplo n.º 20
0
    public void _6_1_ExceededSocketNo100In2(Disquuun disquuun)
    {
        WaitUntil("_6_1_ExceededSocketNo100In2", () => (disquuun.State() == Disquuun.ConnectionState.OPENED), 5);

        var queueId   = Guid.NewGuid().ToString();
        var infoCount = 0;

        var connectCount = 1000;

        for (var i = 0; i < connectCount; i++)
        {
            disquuun.Info().Async(
                (command, data) => {
                lock (_6_1_ExceededSocketNo100In2LockObject) infoCount++;
            }
                );
        }

        WaitUntil("_6_1_ExceededSocketNo100In2", () => (infoCount == connectCount), 5);
    }
Exemplo n.º 21
0
    public void _0_7_LoopInfo_100(Disquuun disquuun)
    {
        WaitUntil("_0_7_LoopInfo_100", () => (disquuun.State() == Disquuun.ConnectionState.OPENED), 5);

        var infos = new List <string>();

        disquuun.Info().Loop(
            (DisqueCommand command, DisquuunResult[] datas) => {
            var infoStr = DisquuunDeserializer.Info(datas).rawString;
            infos.Add(infoStr);
            if (infos.Count < 100)
            {
                return(true);
            }
            return(false);
        }
            );

        WaitUntil("_0_7_LoopInfo_100", () => (infos.Count == 100), 5);
    }
Exemplo n.º 22
0
    public long _2_6_Info_Async(Disquuun disquuun)
    {
        WaitUntil("_2_6_Info_Async", () => (disquuun.State() == Disquuun.ConnectionState.OPENED), 5);

        var registered_jobs = 0;
        var w = new Stopwatch();

        w.Start();


        disquuun.Info().Async(
            (c, data) =>
        {
            var infoResult  = DisquuunDeserializer.Info(data);
            registered_jobs = infoResult.jobs.registered_jobs;
            w.Stop();
        }
            );

        WaitUntil("_2_6_Info_Async", () => (registered_jobs == 0), 5);

        return(w.ElapsedMilliseconds);
    }
Exemplo n.º 23
0
    public void _6_2_ExceededSocketShouldStacked(Disquuun disquuun)
    {
        WaitUntil("_6_2_ExceededSocketShouldStacked", () => (disquuun.State() == Disquuun.ConnectionState.OPENED), 5);

        var queueId   = Guid.NewGuid().ToString();
        var infoCount = 0;

        var connectCount = 1000;

        for (var i = 0; i < connectCount; i++)
        {
            disquuun.Info().Async(
                (command, data) => {
                lock (_6_2_ExceededSocketShouldStackedLockObject) infoCount++;
            }
                );
        }

        var stackedCommandCount = disquuun.StackedCommandCount();

        Assert("_6_2_ExceededSocketShouldStacked", 0 < stackedCommandCount, "not match, " + stackedCommandCount);
        WaitUntil("_6_2_ExceededSocketShouldStacked", () => (infoCount == connectCount), 5);
    }
Exemplo n.º 24
0
    public void _0_9_4_MassiveCommandPipeline(Disquuun disquuun)
    {
        WaitUntil("_0_9_4_MassiveCommandPipeline", () => (disquuun.State() == Disquuun.ConnectionState.OPENED), 5);

        var jobCount = 100000;

        var infoCount   = 0;
        var addedJobIds = new List <string>();
        var gotJobIds   = new List <string>();

        var queueId = Guid.NewGuid().ToString();

        var jobData = new byte[100];

        for (var i = 0; i < jobData.Length; i++)
        {
            jobData[i] = 1;
        }

        for (var i = 0; i < jobCount; i++)
        {
            disquuun.Pipeline(disquuun.AddJob(queueId, jobData));
        }
        disquuun.Pipeline(disquuun.Info());
        disquuun.Pipeline().Execute(
            (command, data) => {
            switch (command)
            {
            case DisqueCommand.INFO: {
                lock (_0_9_4_MassiveCommandPipelineObject) {
                    infoCount++;
                }
                break;
            }

            case DisqueCommand.ADDJOB: {
                lock (_0_9_4_MassiveCommandPipelineObject) {
                    addedJobIds.Add(DisquuunDeserializer.AddJob(data));
                }
                break;
            }
            }
        }
            );

        disquuun.GetJob(new string[] { queueId }, "count", jobCount).Loop(
            (commnand, data) => {
            lock (_0_9_4_MassiveCommandPipelineObject) {
                gotJobIds.AddRange(DisquuunDeserializer.GetJob(data).Select(j => j.jobId));
                if (gotJobIds.Count != jobCount)
                {
                    return(true);
                }
                return(false);
            }
        }
            );

        WaitUntil("_0_9_4_MassiveCommandPipeline 0", () => (infoCount == 1 && addedJobIds.Count == jobCount && gotJobIds.Count == jobCount), 20);

        var fastacked = false;

        disquuun.FastAck(gotJobIds.ToArray()).Async(
            (command, data) => {
            lock (_0_9_4_MassiveCommandPipelineObject) fastacked = true;
        }
            );

        WaitUntil("_0_9_4_MassiveCommandPipeline 1", () => fastacked, 5);
    }
Exemplo n.º 25
0
    public long _0_10_2_MultipleCommandPipeline(Disquuun disquuun)
    {
        WaitUntil("_0_10_2_MultipleCommandPipeline", () => (disquuun.State() == Disquuun.ConnectionState.OPENED), 5);
        var w = new Stopwatch();

        w.Start();

        var infoCount  = 0;
        var addedJobId = string.Empty;
        var gotJobId   = "_";

        var queueId = Guid.NewGuid().ToString();


        for (var i = 0; i < data_100.Length; i++)
        {
            data_100[i] = 1;
        }

        disquuun.Pipeline(disquuun.Info());
        disquuun.Pipeline(disquuun.AddJob(queueId, data_100));
        disquuun.Pipeline(disquuun.GetJob(new string[] { queueId })).Execute(
            (command, data) =>
        {
            switch (command)
            {
            case DisqueCommand.INFO:
                {
                    lock (_0_10_2_MultipleCommandPipelineObject)
                    {
                        infoCount++;
                    }
                    break;
                }

            case DisqueCommand.ADDJOB:
                {
                    lock (_0_10_2_MultipleCommandPipelineObject)
                    {
                        addedJobId = DisquuunDeserializer.AddJob(data);
                    }
                    break;
                }

            case DisqueCommand.GETJOB:
                {
                    lock (_0_10_2_MultipleCommandPipelineObject)
                    {
                        var gotdata_100s = DisquuunDeserializer.GetJob(data);
                        gotJobId         = gotdata_100s[0].jobId;
                        disquuun.FastAck(new string[] { gotJobId }).DEPRICATED_Sync();
                    }
                    break;
                }
            }
        }
            );

        WaitUntil("_0_10_2_MultipleCommandPipeline", () => (infoCount == 1 && !string.IsNullOrEmpty(addedJobId) && gotJobId == addedJobId), 5);

        w.Stop();
        return(w.ElapsedMilliseconds);
    }
Exemplo n.º 26
0
    public long _0_10_5_Pipelines(Disquuun disquuun)
    {
        WaitUntil("_0_10_5_Pipelines", () => (disquuun.State() == Disquuun.ConnectionState.OPENED), 5);
        var w = new Stopwatch();

        w.Start();

        var jobCount = 100000;

        var infoCount   = 0;
        var addedJobIds = new List <string>();
        var gotJobIds   = new List <string>();

        var queueId = Guid.NewGuid().ToString();


        for (var i = 0; i < data_100.Length; i++)
        {
            data_100[i] = 1;
        }

        for (var i = 0; i < jobCount; i++)
        {
            if (i == jobCount / 2)
            {
                disquuun.RevolvePipeline();
            }
            disquuun.Pipeline(disquuun.AddJob(queueId, data_100));
        }

        disquuun.Pipeline(disquuun.Info());

        disquuun.Pipeline().Execute(
            (command, data) =>
        {
            lock (_0_10_5_PipelinesObject)
            {
                switch (command)
                {
                case DisqueCommand.INFO:
                    {
                        infoCount++;
                        break;
                    }

                case DisqueCommand.ADDJOB:
                    {
                        addedJobIds.Add(DisquuunDeserializer.AddJob(data));
                        break;
                    }
                }
            }
        }
            );

        WaitUntil("_0_10_5_Pipelines 0", () => (infoCount == 1 && addedJobIds.Count == jobCount), 10);

        disquuun.GetJob(new string[] { queueId }, "count", jobCount).Loop(
            (commnand, data) =>
        {
            lock (_0_10_5_PipelinesObject)
            {
                var data_100s = DisquuunDeserializer.GetJob(data).Select(j => j.jobId).ToList();
                gotJobIds.AddRange(data_100s);
                if (gotJobIds.Count != jobCount)
                {
                    return(true);
                }
                return(false);
            }
        }
            );

        WaitUntil("_0_10_5_Pipelines 1", () => (gotJobIds.Count == jobCount), 5);

        var fastacked = false;

        disquuun.FastAck(gotJobIds.ToArray()).Async(
            (command, data) =>
        {
            lock (_0_10_4_MassiveCommandPipelineObject) fastacked = true;
        }
            );

        WaitUntil("_0_10_5_Pipelines 2", () => fastacked, 5);

        w.Stop();
        return(w.ElapsedMilliseconds);
    }
Exemplo n.º 27
0
    public void RunTests()
    {
        var tests = new List <Func <Disquuun, long> >();

        for (var i = 0; i < 1; i++)
        {
            // basement.
            tests.Add(_0_0_InitWith2Connection);

            tests.Add(_0_0_1_WaitOnOpen2Connection);
            tests.Add(_0_0_2_ReadmeSampleSync);
            tests.Add(_0_0_3_ReadmeSampleAsync);
            tests.Add(_0_0_4_ReadmeSamplePipeline);
            tests.Add(_0_1_ConnectedShouldCallOnce);
            tests.Add(_0_1_ConnectionFailedWithNoDisqueServer);
            tests.Add(_0_2_SyncInfo);
            tests.Add(_0_3_SyncInfoTwice);
            tests.Add(_0_4_AsyncInfo);
            tests.Add(_0_5_LoopInfo_Once);
            tests.Add(_0_6_LoopInfo_Twice);
            tests.Add(_0_7_LoopInfo_100);
            tests.Add(_0_8_Pipeline_Single);
            tests.Add(_0_9_Pipeline);

            // sync apis. DEPRECATED.
            tests.Add(_1_0_AddJob_Sync);
            tests.Add(_1_0_1_AddJob_Sync_TimeToLive);
            tests.Add(_1_0_2_AddJob_Sync_TimeToLive_Wait_Dead);
            tests.Add(_1_0_3_AddJob_Sync_Retry);
            tests.Add(_1_0_4_AddJob_Sync_Retry_0_And_TTL_1Sec);
            tests.Add(_1_1_GetJob_Sync);
            tests.Add(_1_1_1_GetJobWithCount_Sync);
            tests.Add(_1_1_2_GetJobFromMultiQueue_Sync);
            tests.Add(_1_1_3_GetJobWithNoHang_Sync);
            tests.Add(_1_2_AckJob_Sync);
            tests.Add(_1_3_Fastack_Sync);
            tests.Add(_1_1_4_GetJobWithCounters_Sync);
            // tests.Add(_1_4_Working_Sync);
            // tests.Add(_1_5_Nack_Sync);
            tests.Add(_1_6_Info_Sync);
            tests.Add(_1_7_Hello_Sync);
            tests.Add(_1_8_Qlen_Sync);
            tests.Add(_1_9_Qstat_Sync);
            // tests.Add(_1_10_Qpeek_Sync);
            // tests.Add(_1_11_Enqueue_Sync);
            // tests.Add(_1_12_Dequeue_Sync);
            // tests.Add(_1_13_DelJob_Sync);
            // tests.Add(_1_14_Show_Sync);
            // tests.Add(_1_15_Qscan_Sync);
            // tests.Add(_1_16_Jscan_Sync);
            // tests.Add(_1_17_Pause_Sync);

            // async apis.
            tests.Add(_2_0_AddJob_Async);
            tests.Add(_2_0_1_AddJob_Async_TimeToLive);
            tests.Add(_2_0_2_AddJob_Async_TimeToLive_Wait_Dead);
            tests.Add(_2_0_3_AddJob_Async_Retry);
            tests.Add(_2_0_4_AddJob_Async_Retry_0_And_TTL_1Sec);
            tests.Add(_2_1_GetJob_Async);
            tests.Add(_2_1_1_GetJobWithCount_Async);
            tests.Add(_2_1_2_GetJobFromMultiQueue_Async);
            tests.Add(_2_1_3_GetJobWithNoHang_Async);
            tests.Add(_2_1_4_GetJobWithCounters_Async);
            tests.Add(_2_2_AckJob_Async);
            tests.Add(_2_3_Fastack_Async);
            // tests.Add(_2_4_Working_Async);
            // tests.Add(_2_5_Nack_Async);
            tests.Add(_2_6_Info_Async);
            tests.Add(_2_7_Hello_Async);
            tests.Add(_2_8_Qlen_Async);
            tests.Add(_2_9_Qstat_Async);
            // tests.Add(_2_10_Qpeek_Async);
            // tests.Add(_2_11_Enqueue_Async);
            // tests.Add(_2_12_Dequeue_Async);
            // tests.Add(_2_13_DelJob_Async);
            // tests.Add(_2_14_Show_Async);
            // tests.Add(_2_15_Qscan_Async);
            // tests.Add(_2_16_Jscan_Async);
            // tests.Add(_2_17_Pause_Async);

            // multiSocket.
            tests.Add(_3_0_Nested2AsyncSocket);
            tests.Add(_3_1_NestedMultipleAsyncSocket);

            // buffer over.
            tests.Add(_4_0_ByfferOverWithSingleSyncGetJob_Sync);
            tests.Add(_4_1_ByfferOverWithMultipleSyncGetJob_Sync);
            tests.Add(_4_2_ByfferOverWithSokcetOverSyncGetJob_Sync);
            tests.Add(_4_3_ByfferOverWithSingleSyncGetJob_Async);
            tests.Add(_4_4_ByfferOverWithMultipleSyncGetJob_Async);
            tests.Add(_4_5_ByfferOverWithSokcetOverSyncGetJob_Async);

            // error handling.
            tests.Add(_5_0_ConnectionFailed);
            tests.Add(_5_1_ConnectionFailedMultiple);

            // adding async request over busy-socket num.
            tests.Add(_6_0_ExceededSocketNo3In2);
            tests.Add(_6_1_ExceededSocketNo100In2);
            tests.Add(_6_2_ExceededSocketShouldStacked);

            // benchmarks.
            tests.Add(_7_0_AddJob1000);
            tests.Add(_7_0_0_AddJob1000by100Connection);
            tests.Add(_7_0_1_AddJob1000byPipeline);
            tests.Add(_7_0_2_AddJob1000byPipelines);
            tests.Add(_7_1_GetJob1000);
            tests.Add(_7_1_0_GetJob1000by100Connection);
            tests.Add(_7_1_1_GetJob1000byPipeline);
            tests.Add(_7_1_2_GetJob1000byPipelines);
            tests.Add(_7_2_GetJob1000byLoop);

            // scalable benchmarks.
            tests.Add(_8_0_AddJob1000);
            tests.Add(_8_0_0_AddJob1000by100Connection);
            tests.Add(_8_0_1_AddJob1000byPipeline);
            tests.Add(_8_0_2_AddJob1000byPipelines);
            tests.Add(_8_1_GetJob1000);
            tests.Add(_8_1_0_GetJob1000by100Connection);
            tests.Add(_8_1_1_GetJob1000byPipeline);
            tests.Add(_8_1_2_GetJob1000byPipelines);
            tests.Add(_8_2_GetJob1000byLoop);

            // data size bounding case.
            tests.Add(_9_0_LargeSizeSendThenSmallSizeSendMakeEmitOnSendAfterOnReceived);
            tests.Add(_9_1_LargeSizeSendThenSmallSizeSendLoopMakeEmitOnSendAfterOnReceived);

            // pipeline
            tests.Add(_0_10_0_PipelineCommands);
            tests.Add(_0_10_1_MultiplePipeline);
            tests.Add(_0_10_2_MultipleCommandPipeline);
            tests.Add(_0_10_3_SomeCommandPipeline);
            tests.Add(_0_10_4_MassiveCommandPipeline);
            tests.Add(_0_10_5_Pipelines);
        }

        try
        {
            var disquuunForResultInfo = new Disquuun(
                DisquuunTests.TestDisqueHostStr,
                DisquuunTests.TestDisquePortNum,
                10240,
                1
                );
            WaitUntil(
                "_internal",
                () => disquuunForResultInfo.State() == Disquuun.ConnectionState.OPENED,
                5
                );

            var i = 0;
            foreach (var test in tests)
            {
                var methodName = i.ToString() + "_" + test.Method.Name;

                i++;

                try
                {
                    var disquuun = new Disquuun(
                        DisquuunTests.TestDisqueHostStr,
                        DisquuunTests.TestDisquePortNum,
                        2020008,
                        20,
                        (id) => { },
                        (k, e) => { },
                        (currentSocketCount, addSocket) =>
                    {
                        return;
                    }
                        );// this buffer size is just for 100byte job x 10000 then receive 1 GetJob(count 1000).

                    // すべての接続ができるまで待つ
                    WaitUntil(
                        "_internal",
                        () => disquuun.State() == Disquuun.ConnectionState.OPENED,
                        5
                        );

                    var elapsedMilliSec = test(disquuun);

                    if (disquuun != null)
                    {
                        disquuun.Disconnect();
                        disquuun = null;
                    }

                    var info         = disquuunForResultInfo.Info().DEPRICATED_Sync();
                    var result       = DisquuunDeserializer.Info(info);
                    var restJobCount = result.jobs.registered_jobs;

                    if (restJobCount != 0)
                    {
                        TestLogger.Log("test:" + methodName + "     rest job:" + restJobCount, true);
                    }
                    else
                    {
                        TestLogger.Log("test:" + methodName + "     passed. elapsedMilliSec:" + elapsedMilliSec, true);
                    }
                }
                catch (Exception e)
                {
                    TestLogger.Log("test:" + methodName + "     FAILED by exception:" + e, true);
                }
            }

            disquuunForResultInfo.Disconnect();
            TestLogger.Log("tests end.", true);
        }
        catch (Exception e)
        {
            TestLogger.Log("tests failed:" + e, true);
        }
    }
Exemplo n.º 28
0
    public void RunTests()
    {
        var tests = new List <Action <Disquuun> >();

        for (var i = 0; i < 1; i++)
        {
            // basement.
            tests.Add(_0_0_InitWith2Connection);
            tests.Add(_0_0_1_WaitOnOpen2Connection);
            tests.Add(_0_0_2_ReadmeSampleSync);
            tests.Add(_0_0_3_ReadmeSampleAsync);
            tests.Add(_0_0_4_ConnectedShouldCallOnce);
            tests.Add(_0_1_ConnectionFailedWithNoDisqueServer);
            tests.Add(_0_2_SyncInfo);
            tests.Add(_0_3_SyncInfoTwice);
            tests.Add(_0_4_AsyncInfo);
            tests.Add(_0_5_LoopInfo_Once);
            tests.Add(_0_6_LoopInfo_Twice);
            tests.Add(_0_7_LoopInfo_100);

            // sync apis. DEPRECATED.
            tests.Add(_1_0_AddJob_Sync);
            tests.Add(_1_1_GetJob_Sync);
            tests.Add(_1_1_1_GetJobWithCount_Sync);
            tests.Add(_1_1_2_GetJobFromMultiQueue_Sync);
            tests.Add(_1_1_3_GetJobWithNoHang_Sync);
            tests.Add(_1_2_AckJob_Sync);
            tests.Add(_1_3_Fastack_Sync);
            tests.Add(_1_1_4_GetJobWithCounters_Sync);
            // tests.Add(_1_4_Working_Sync);
            // tests.Add(_1_5_Nack_Sync);
            tests.Add(_1_6_Info_Sync);
            tests.Add(_1_7_Hello_Sync);
            tests.Add(_1_8_Qlen_Sync);
            tests.Add(_1_9_Qstat_Sync);
            // tests.Add(_1_10_Qpeek_Sync);
            // tests.Add(_1_11_Enqueue_Sync);
            // tests.Add(_1_12_Dequeue_Sync);
            // tests.Add(_1_13_DelJob_Sync);
            // tests.Add(_1_14_Show_Sync);
            // tests.Add(_1_15_Qscan_Sync);
            // tests.Add(_1_16_Jscan_Sync);
            // tests.Add(_1_17_Pause_Sync);

            // async apis.
            tests.Add(_2_0_AddJob_Async);
            tests.Add(_2_1_GetJob_Async);
            tests.Add(_2_1_1_GetJobWithCount_Async);
            tests.Add(_2_1_2_GetJobFromMultiQueue_Async);
            tests.Add(_2_1_3_GetJobWithNoHang_Async);
            tests.Add(_2_1_4_GetJobWithCounters_Async);
            tests.Add(_2_2_AckJob_Async);
            tests.Add(_2_3_Fastack_Async);
            // tests.Add(_2_4_Working_Async);
            // tests.Add(_2_5_Nack_Async);
            tests.Add(_2_6_Info_Async);
            tests.Add(_2_7_Hello_Async);
            tests.Add(_2_8_Qlen_Async);
            tests.Add(_2_9_Qstat_Async);
            // tests.Add(_2_10_Qpeek_Async);
            // tests.Add(_2_11_Enqueue_Async);
            // tests.Add(_2_12_Dequeue_Async);
            // tests.Add(_2_13_DelJob_Async);
            // tests.Add(_2_14_Show_Async);
            // tests.Add(_2_15_Qscan_Async);
            // tests.Add(_2_16_Jscan_Async);
            // tests.Add(_2_17_Pause_Async);

            // multiSocket.
            tests.Add(_3_0_Nested2AsyncSocket);
            tests.Add(_3_1_NestedMultipleAsyncSocket);

            // buffer over.
            tests.Add(_4_0_ByfferOverWithSingleSyncGetJob_Sync);
            tests.Add(_4_1_ByfferOverWithMultipleSyncGetJob_Sync);
            tests.Add(_4_2_ByfferOverWithSokcetOverSyncGetJob_Sync);
            tests.Add(_4_3_ByfferOverWithSingleSyncGetJob_Async);
            tests.Add(_4_4_ByfferOverWithMultipleSyncGetJob_Async);
            tests.Add(_4_5_ByfferOverWithSokcetOverSyncGetJob_Async);

            // error handling.
            tests.Add(_5_0_ConnectionFailed);
            tests.Add(_5_1_ConnectionFailedMultiple);

            // adding async request over busy-socket num.
            tests.Add(_6_0_ExceededSocketNo3In2);
            tests.Add(_6_1_ExceededSocketNo100In2);
            tests.Add(_6_2_ExceededSocketShouldStacked);

            // benchmarks.
            tests.Add(_7_0_AddJob1000);
            tests.Add(_7_0_0_AddJob1000by100Connectoion);
            tests.Add(_7_1_GetJob1000);
            tests.Add(_7_1_0_GetJob1000by100Connection);
            tests.Add(_7_2_GetJob1000byLoop);

            // data size bounding case.
            tests.Add(_8_0_LargeSizeSendThenSmallSizeSendMakeEmitOnSendAfterOnReceived);
            tests.Add(_8_1_LargeSizeSendThenSmallSizeSendLoopMakeEmitOnSendAfterOnReceived);
        }

        try {
            TestLogger.Log("tests started.", true);

            var disquuunForResultInfo = new Disquuun(DisquuunTests.TestDisqueHostStr, DisquuunTests.TestDisquePortNum, 10240, 1);
            WaitUntil("testRunner:", () => (disquuunForResultInfo.State() == Disquuun.ConnectionState.OPENED), 5);
            var i = 0;
            foreach (var test in tests)
            {
                var methodName = i.ToString() + test.GetType();
                i++;

                try {
                    var disquuun = new Disquuun(DisquuunTests.TestDisqueHostStr, DisquuunTests.TestDisquePortNum, 2020008, 2);                    // this buffer size is just for 100byte job x 10000 then receive 1 GetJob(count 1000).
                    test(disquuun);
                    if (disquuun != null)
                    {
                        disquuun.Disconnect();
                        disquuun = null;
                    }

                    var info         = disquuunForResultInfo.Info().DEPRICATED_Sync();
                    var result       = DisquuunDeserializer.Info(info);
                    var restJobCount = result.jobs.registered_jobs;

                    if (restJobCount != 0)
                    {
                        TestLogger.Log("test:" + methodName + " rest job:" + restJobCount, true);
                    }
                    else
                    {
                        TestLogger.Log("test:" + methodName + " passed. no job exists.", true);
                    }
                } catch (Exception e) {
                    TestLogger.Log("before error...", true);
                    TestLogger.Log("test:" + methodName + " FAILED by exception:" + e, true);
                }
            }

            disquuunForResultInfo.Disconnect();
            TestLogger.Log("tests end.", true);
        } catch (Exception e) {
            TestLogger.Log("tests failed:" + e.Message, true);
        }
    }