예제 #1
0
        //public async Task StreamTest_17_Persistence_OneProducerGrainOneConsumerGrain()
        //{
        //    Heading("StreamTest_17_Persistence_OneProducerGrainOneConsumerGrain");
        //    StreamId streamId = StreamId.NewRandomStreamId();
        //    // consumer joins first, producer later
        //    consumer = await ConsumerProxy.NewConsumerGrainsAsync(streamId, streamProviderName, logger);
        //    producer = await ProducerProxy.NewProducerGrainsAsync(streamId, streamProviderName, logger);
        //    await BasicTestAsync(false);

        //    await consumer.DeactivateOnIdle();
        //    await producer.DeactivateOnIdle();

        //    await UnitTestBase.WaitUntilAsync(() => CheckGrainsDeactivated(null, consumer, assertAreEqual: false), _timeout);
        //    await UnitTestBase.WaitUntilAsync(() => CheckGrainsDeactivated(producer, null, assertAreEqual: false), _timeout);

        //    logger.Info("*******************************************************************");
        //    //await BasicTestAsync(false);
        //    //await StopProxies();
        //}

        public async Task StreamTest_19_ConsumerImplicitlySubscribedToProducerClient()
        {
            Heading("StreamTest_19_ConsumerImplicitlySubscribedToProducerClient");
            string consumerTypeName = typeof(Streaming_ImplicitlySubscribedConsumerGrain).FullName;
            Guid   streamGuid       = Guid.NewGuid();

            producer = await ProducerProxy.NewProducerClientObjectsAsync(streamGuid, streamProviderName, "TestNamespace1", logger);

            consumer = ConsumerProxy.NewConsumerGrainAsync_WithoutBecomeConsumer(streamGuid, logger, consumerTypeName);

            logger.Info("\n** Starting Test {0}.\n", testNumber);
            var producerCount = await producer.ProducerCount;

            logger.Info("\n** Test {0} BasicTestAsync: producerCount={1}.\n", testNumber, producerCount);

            Func <bool, Task <bool> > waitUntilFunc =
                async lastTry =>
                0 < await UnitTestSiloHost.GetActivationCount(consumerTypeName) && await CheckCounters(producer, consumer, false);

            await producer.ProduceSequentialSeries(ItemCount);

            await TestingUtils.WaitUntilAsync(waitUntilFunc, _timeout);

            await CheckCounters(producer, consumer);
            await StopProxies();
        }
예제 #2
0
        public async Task StreamTest_21_GenericConsumerImplicitlySubscribedToProducerGrain()
        {
            Heading("StreamTest_21_GenericConsumerImplicitlySubscribedToProducerGrain");
            //ToDo in migrate: the following consumer grain is not implemented in VSO and all tests depend on it fail.
            string consumerTypeName = "UnitTests.Grains.Streaming_ImplicitlySubscribedGenericConsumerGrain";//typeof(Streaming_ImplicitlySubscribedGenericConsumerGrain).FullName;
            Guid   streamGuid       = Guid.NewGuid();

            producer = await ProducerProxy.NewProducerGrainsAsync(streamGuid, streamProviderName, "TestNamespace1", logger);

            consumer = ConsumerProxy.NewConsumerGrainAsync_WithoutBecomeConsumer(streamGuid, logger, consumerTypeName);

            logger.Info("\n** Starting Test {0}.\n", testNumber);
            var producerCount = await producer.ProducerCount;

            logger.Info("\n** Test {0} BasicTestAsync: producerCount={1}.\n", testNumber, producerCount);

            Func <bool, Task <bool> > waitUntilFunc =
                async lastTry =>
                0 < await UnitTestSiloHost.GetActivationCount(consumerTypeName) && await CheckCounters(producer, consumer, false);

            await producer.ProduceSequentialSeries(ItemCount);

            await TestingUtils.WaitUntilAsync(waitUntilFunc, _timeout);

            await CheckCounters(producer, consumer);
            await StopProxies();
        }
        public void SetUpFixture()
        {
            AppDomain.CurrentDomain.ClearShadowCopyPath();
            unitTestSiloHost = new UnitTestSiloHost(siloOptions, clientOptions);

            Assert.AreEqual(2, unitTestSiloHost.GetActiveSilos().Count(), "Silo count at start of tests");
        }
예제 #4
0
        public void Json_Perf_Newtonsoft_vs_Net()
        {
            int numIterations = 10000;

            Dictionary <string, object> dataValues = new Dictionary <string, object>();
            var    dotnetJsonSerializer            = new System.Web.Script.Serialization.JavaScriptSerializer();
            string jsonData = null;

            int[]    idx      = { 0 };
            TimeSpan baseline = UnitTestSiloHost.TimeRun(numIterations, TimeSpan.Zero, ".Net JavaScriptSerializer",
                                                         () =>
            {
                dataValues.Clear();
                dataValues.Add("A", idx[0]++);
                dataValues.Add("B", idx[0]++);
                dataValues.Add("C", idx[0]++);
                jsonData = dotnetJsonSerializer.Serialize(dataValues);
            });

            idx[0] = 0;
            TimeSpan elapsed = UnitTestSiloHost.TimeRun(numIterations, baseline, "Newtonsoft Json JavaScriptSerializer",
                                                        () =>
            {
                dataValues.Clear();
                dataValues.Add("A", idx[0]++);
                dataValues.Add("B", idx[0]++);
                dataValues.Add("C", idx[0]++);
                jsonData = Newtonsoft.Json.JsonConvert.SerializeObject(dataValues);
            });

            Console.WriteLine("Elapsed: {0} Date: {1}", elapsed, jsonData);
        }
        public void TestInitialize()
        {
            log = TraceLogger.GetLogger(GetType().Name, TraceLogger.LoggerType.Application);

            ServiceId = Guid.NewGuid();

            UnitTestSiloHost.ConfigureClientThreadPoolSettingsForStorageTests(1000);
        }
        public static void ClassInitialize(TestContext testContext)
        {
            TraceLogger.Initialize(new NodeConfiguration());
            TraceLogger.AddTraceLevelOverride("AzureTableDataManager", Severity.Verbose3);
            TraceLogger.AddTraceLevelOverride("OrleansSiloInstanceManager", Severity.Verbose3);
            TraceLogger.AddTraceLevelOverride("Storage", Severity.Verbose3);

            // Set shorter init timeout for these tests
            OrleansSiloInstanceManager.initTimeout = TimeSpan.FromSeconds(20);

            UnitTestSiloHost.CheckForAzureStorage();
        }
예제 #7
0
 public TimerGrainReferenceProxy(bool persist)
 {
     persistant = persist;
     if (persistant)
     {
         persistantGrain = GrainClient.GrainFactory.GetGrain <ITimerPersistantGrain>(UnitTestSiloHost.GetRandomGrainId());
     }
     else
     {
         grain = GrainClient.GrainFactory.GetGrain <ITimerGrain>(UnitTestSiloHost.GetRandomGrainId());
     }
 }
 public void TearDownFixture()
 {
     if (unitTestSiloHost != null)
     {
         try
         {
             unitTestSiloHost.StopDefaultSilos();
         }
         catch (Exception exc) { Console.WriteLine(exc); }
     }
     unitTestSiloHost = null;
 }
예제 #9
0
        public void SetUpDefaults()
        {
            TraceLogger.UnInitialize();
            TraceLogger.SetRuntimeLogLevel(Severity.Verbose);
            TraceLogger.SetAppLogLevel(Severity.Info);
            var overrides = new [] {
                new Tuple <string, Severity>("Runtime.One", Severity.Warning),
                new Tuple <string, Severity>("Grain.Two", Severity.Verbose3)
            };

            TraceLogger.SetTraceLevelOverrides(overrides.ToList());
            timingFactor = UnitTestSiloHost.CalibrateTimings();
        }
예제 #10
0
        public TestingClusterHost() : base()
        {
            Clusters = new Dictionary <string, ClusterInfo>();

            UnitTestSiloHost.CheckForAzureStorage();
        }
예제 #11
0
 public static void ClassInitialize(TestContext testContext)
 {
     UnitTestSiloHost.CheckForAzureStorage();
 }
        public static void ClassInitialize(TestContext testContext)
        {
            TraceLogger.Initialize(new NodeConfiguration());

            UnitTestSiloHost.CheckForAzureStorage();
        }
예제 #13
0
        public async Task GatewaySelection_SqlServer()
        {
            string testName = TestContext.TestName;

            Console.WriteLine(UnitTestSiloHost.DumpTestContext(TestContext));

            Guid serviceId = Guid.NewGuid();

            GlobalConfiguration cfg = new GlobalConfiguration
            {
                ServiceId            = serviceId,
                DeploymentId         = testName,
                DataConnectionString = TestUtils.GetSqlConnectionString(TestContext)
            };

            var membership = new SqlMembershipTable();
            var logger     = TraceLogger.GetLogger(membership.GetType().Name);
            await membership.InitializeMembershipTable(cfg, true, logger);

            IMembershipTable membershipTable = membership;

            // Pre-populate gateway table with data
            int count = 1;

            foreach (Uri gateway in gatewayAddressUris)
            {
                Console.WriteLine("Adding gataway data for {0}", gateway);

                SiloAddress siloAddress = gateway.ToSiloAddress();
                Assert.IsNotNull(siloAddress, "Unable to get SiloAddress from Uri {0}", gateway);

                MembershipEntry MembershipEntry = new MembershipEntry
                {
                    SiloAddress = siloAddress,
                    HostName    = gateway.Host,
                    Status      = SiloStatus.Active,
                    ProxyPort   = gateway.Port,
                    StartTime   = DateTime.UtcNow
                };

                var tableVersion = new TableVersion(count, Guid.NewGuid().ToString());

                Console.WriteLine("Inserting gataway data for {0} with TableVersion={1}", MembershipEntry, tableVersion);

                bool ok = await membershipTable.InsertRow(MembershipEntry, tableVersion);

                count++;
                Assert.IsTrue(ok, "Membership record should have been written OK but were not: {0}", MembershipEntry);

                Console.WriteLine("Successfully inserted Membership row {0}", MembershipEntry);
            }

            MembershipTableData data = await membershipTable.ReadAll();

            Assert.IsNotNull(data, "MembershipTableData returned");
            Assert.AreEqual(gatewayAddressUris.Count, data.Members.Count, "Number of gateway records read");

            IGatewayListProvider listProvider = membership;

            Test_GatewaySelection(listProvider);
        }