void INodeProfiling.RemoveSession(INodeProfileSession session, bool deleteFromDisk) {
     for (int i = 0; i < _sessions.Sessions.Count; i++) {
         if (session == _sessions.Sessions[i].GetAutomationObject()) {
             ErrorHandler.ThrowOnFailure(
                 _sessions.DeleteItem(
                     (uint)(deleteFromDisk ? __VSDELETEITEMOPERATION.DELITEMOP_DeleteFromStorage : __VSDELETEITEMOPERATION.DELITEMOP_RemoveFromProject),
                     (uint)_sessions.Sessions[i].ItemId
                 )
             );
             return;
         }
     }
     throw new InvalidOperationException("Session has already been removed");
 }
Example #2
0
 void INodeProfiling.RemoveSession(INodeProfileSession session, bool deleteFromDisk)
 {
     for (int i = 0; i < _sessions.Sessions.Count; i++)
     {
         if (session == _sessions.Sessions[i].GetAutomationObject())
         {
             ErrorHandler.ThrowOnFailure(
                 _sessions.DeleteItem(
                     (uint)(deleteFromDisk ? __VSDELETEITEMOPERATION.DELITEMOP_DeleteFromStorage : __VSDELETEITEMOPERATION.DELITEMOP_RemoveFromProject),
                     (uint)_sessions.Sessions[i].ItemId
                     )
                 );
             return;
         }
     }
     throw new InvalidOperationException("Session has already been removed");
 }
Example #3
0
        private static void WaitForReport(INodeProfiling profiling, INodeProfileSession session, out INodePerformanceReport report, NodejsVisualStudioApp app, out AutomationElement child) {
            while (profiling.IsProfiling) {
                System.Threading.Thread.Sleep(500);
            }

            report = session.GetReport(1);
            var filename = report.Filename;
            Assert.IsTrue(filename.Contains("NodejsProfileTest"));

            app.OpenNodejsPerformance();
            var pyPerf = app.NodejsPerformanceExplorerTreeView;
            Assert.AreNotEqual(null, pyPerf);

            var item = pyPerf.FindItem("NodejsProfileTest *", "Reports");
            child = item.FindFirst(System.Windows.Automation.TreeScope.Descendants, Condition.TrueCondition);
            var childName = child.GetCurrentPropertyValue(AutomationElement.NameProperty) as string;

            Assert.IsTrue(childName.StartsWith("NodejsProfileTest"));

            AutomationWrapper.EnsureExpanded(child);
        }
Example #4
0
        private static NodejsVisualStudioApp WaitForReport(INodeProfiling profiling, INodeProfileSession session, NodejsVisualStudioApp app, out string reportFilename) {
            while (profiling.IsProfiling) {
                System.Threading.Thread.Sleep(100);
            }

            var report = session.GetReport(1);
            var filename = report.Filename;
            Assert.IsTrue(filename.Contains("NodejsProfileTest"));

            app.OpenNodejsPerformance();
            var pyPerf = app.NodejsPerformanceExplorerTreeView;
            Assert.AreNotEqual(null, pyPerf);

            var item = pyPerf.FindItem("NodejsProfileTest *", "Reports");
            var child = item.FindFirst(System.Windows.Automation.TreeScope.Descendants, Condition.TrueCondition);
            var childName = child.GetCurrentPropertyValue(AutomationElement.NameProperty) as string;

            reportFilename = report.Filename;
            Assert.IsTrue(childName.StartsWith("NodejsProfileTest"));

            child.SetFocus();
            Keyboard.PressAndRelease(System.Windows.Input.Key.Delete);
            return app;
        }
 private static INodePerformanceReport WaitForReportIndex(INodeProfileSession session, int index) {
     var report = session.GetReport(index);
     for (int trial = 0; trial < 20 && report == null; ++trial) {
         System.Threading.Thread.Sleep(500);
         report = session.GetReport(index);
     }
     WaitForFileExistenceOnDisk(report.Filename);
     return report;
 }