Esempio n. 1
0
 /// <summary>
 /// Initializes the results with specified items and result.
 /// </summary>
 /// <param name="items">The items produced by the target.</param>
 /// <param name="result">The overall result for the target.</param>
 internal TargetResult(TaskItem[] items, WorkUnitResult result)
 {
     ErrorUtilities.VerifyThrowArgumentNull(items, nameof(items));
     ErrorUtilities.VerifyThrowArgumentNull(result, nameof(result));
     _items  = items;
     _result = result;
 }
Esempio n. 2
0
 internal QAMockTaskBuilder()
 {
     _host             = null;
     _testDataProvider = null;
     _result           = null;
     _taskDone         = new AutoResetEvent(false);
 }
Esempio n. 3
0
        /// <summary>
        /// Creates a build result for a request
        /// </summary>
        private BuildResult CreateBuildResult(BuildRequest request, string target, WorkUnitResult workUnitResult)
        {
            BuildResult result = new BuildResult(request);

            result.AddResultsForTarget(target, new TargetResult(new TaskItem[] { }, workUnitResult));
            return(result);
        }
Esempio n. 4
0
 /// <summary>
 /// Initializes the results with specified items and result.
 /// </summary>
 /// <param name="items">The items produced by the target.</param>
 /// <param name="result">The overall result for the target.</param>
 internal TargetResult(TaskItem[] items, WorkUnitResult result)
 {
     ErrorUtilities.VerifyThrowArgumentNull(items, "items");
     ErrorUtilities.VerifyThrowArgumentNull(result, "result");
     _itemsStore = new ItemsStore(items);
     _result     = result;
 }
Esempio n. 5
0
 /// <summary>
 /// Shuts down the component.
 /// </summary>
 public void ShutdownComponent()
 {
     _host             = null;
     _testDataProvider = null;
     _result           = null;
     this.Dispose();
 }
Esempio n. 6
0
 /// <summary>
 /// Initializes the results with specified items and result.
 /// </summary>
 /// <param name="items">The items produced by the target.</param>
 /// <param name="result">The overall result for the target.</param>
 /// <param name="originalBuildEventContext">The original build event context from when the target was first built, if available.
 /// Non-null when creating a <see cref="TargetResult"/> after building the target initially (or skipping due to false condition).
 /// Null when the <see cref="TargetResult"/> is being created in other scenarios:
 ///  * Target that never ran because a dependency had an error
 ///  * in <see cref="ITargetBuilderCallback.LegacyCallTarget"/> when Cancellation was requested
 ///  * in ProjectCache.CacheResult.ConstructBuildResult
 /// </param>
 internal TargetResult(TaskItem[] items, WorkUnitResult result, BuildEventContext originalBuildEventContext = null)
 {
     ErrorUtilities.VerifyThrowArgumentNull(items, nameof(items));
     ErrorUtilities.VerifyThrowArgumentNull(result, nameof(result));
     _items  = items;
     _result = result;
     _originalBuildEventContext = originalBuildEventContext;
 }
Esempio n. 7
0
        /// <summary>
        /// Creates and caches a built result.
        /// </summary>
        private BuildResult CacheBuildResult(BuildRequest request, string target, WorkUnitResult workUnitResult)
        {
            BuildResult   result       = CreateBuildResult(request, target, workUnitResult);
            IResultsCache resultsCache = _host.GetComponent(BuildComponentType.ResultsCache) as IResultsCache;

            resultsCache.AddResult(result);
            return(result);
        }
Esempio n. 8
0
 private static void AddWorkUnitResult(SlotRunData slotRunData, WorkUnitResult workUnitResult)
 {
     if (workUnitResult == WorkUnitResult.FinishedUnit)
     {
         slotRunData.CompletedUnits++;
     }
     else if (workUnitResult.IsTerminating())
     {
         slotRunData.FailedUnits++;
     }
 }
Esempio n. 9
0
 /// <summary>
 /// Constructor allows you to set all the data
 /// </summary>
 public TaskDefinition(string name, string condition, bool continueOnError, XmlDocument projectXmlDocument, WorkUnitResult expectedResult)
 {
     _name                = name;
     _condition           = condition;
     _continueOnError     = continueOnError;
     _taskElement         = projectXmlDocument.CreateElement(_name, @"http://schemas.microsoft.com/developer/msbuild/2003");
     _parentXmlDocument   = projectXmlDocument;
     _expectedResult      = expectedResult;
     _finalTaskParameters = new Dictionary <string, string>();
     _taskExecuted        = new AutoResetEvent(false);
     _taskStarted         = new AutoResetEvent(false);
     GenerateTaskElement();
 }
Esempio n. 10
0
        public static bool IsTerminating(this WorkUnitResult result)
        {
            switch (result)
            {
            case WorkUnitResult.FinishedUnit:
            case WorkUnitResult.EarlyUnitEnd:
            case WorkUnitResult.UnstableMachine:
            case WorkUnitResult.BadWorkUnit:
            case WorkUnitResult.ClientCoreError:
                return(true);

            default:
                return(false);
            }
        }
Esempio n. 11
0
        private static XElement StylesheetToXml(WorkUnitResult wu)
        {
            StylesheetApplication ssWu = (StylesheetApplication)wu.WorkUnit;

            return(new XElement("document",
                                new XAttribute("assetId", ssWu.Asset),
                                new XAttribute("output", ssWu.SaveAs),
                                ssWu.Aliases.Select(
                                    wual =>
                                    new XElement("alias", new XAttribute("assetId", wual))),
                                ssWu.Sections.Select(
                                    wuse =>
                                    new XElement("section",
                                                 new XAttribute("name", wuse.Name),
                                                 new XAttribute("assetId", wuse.AssetIdentifier))),
                                new XElement("template",
                                             new XAttribute("name", ssWu.StylesheetName))));
        }
Esempio n. 12
0
 protected void AddWorkUnitResult(WorkUnitResult result)
 {
     if (CurrentClientRun != null)
     {
         if (result == WorkUnitResult.FinishedUnit)
         {
             CurrentClientRun.CompletedUnits++;
         }
         else if (result == WorkUnitResult.EarlyUnitEnd ||
                  result == WorkUnitResult.UnstableMachine ||
                  result == WorkUnitResult.Interrupted ||
                  result == WorkUnitResult.BadWorkUnit ||
                  result == WorkUnitResult.CoreOutdated ||
                  result == WorkUnitResult.ClientCoreError)
         {
             CurrentClientRun.FailedUnits++;
         }
     }
 }
Esempio n. 13
0
        /// <summary>
        /// Simulates executing a task. Execution time simulation is rounded to the closes numeric value. If this value is less than 1000 than nothing happens.
        /// </summary>
        public Task <WorkUnitResult> ExecuteTask(TargetLoggingContext targetLoggingContext, BuildRequestEntry requestEntry, ITargetBuilderCallback targetBuilderCallback, ProjectTargetInstanceChild task, TaskExecutionMode mode, Lookup lookupForInference, Lookup lookupForExecution, CancellationToken cancellationToken)
        {
            bool cancelled = false;
            RequestDefinition   testDefinition   = _testDataProvider[requestEntry.Request.ConfigurationId];
            TargetDefinition    targetDefinition = testDefinition.ProjectDefinition.TargetsCollection[targetLoggingContext.Target.Name];
            ProjectTaskInstance taskInstance     = (ProjectTaskInstance)task as ProjectTaskInstance;
            TaskDefinition      taskDefinition   = targetDefinition.TasksCollection[taskInstance.Name];

            taskDefinition.SignalTaskStarted();

            if (testDefinition.ExecutionTime > 1000)
            {
                DateTime startTime = DateTime.Now;
                long     executionTimeInSeconds = testDefinition.ExecutionTime / 1000;

                while (executionTimeInSeconds > 0)
                {
                    if (cancellationToken.WaitHandle.WaitOne(1, false) == true)
                    {
                        cancelled = true;
                        break;
                    }

                    Thread.Sleep(1000);
                    executionTimeInSeconds -= 1;
                }
            }

            if (!cancelled)
            {
                _result = taskDefinition.ExpectedResult;
            }
            else
            {
                _result = new WorkUnitResult(WorkUnitResultCode.Canceled, WorkUnitActionCode.Stop, new MockTaskBuilderException());
            }

            taskDefinition.SignalTaskCompleted();
            _taskDone.Set();
            return(Task <BuildResult> .FromResult(_result));
        }
Esempio n. 14
0
 /// <summary>
 /// Basic constructor which takes the task name and the task expected status
 /// </summary>
 public TaskDefinition(string name, XmlDocument projectXmlDocument, WorkUnitResult expectedResult)
     : this(name, null, false, projectXmlDocument, expectedResult)
 {
 }
Esempio n. 15
0
 private static void AddWorkUnitResult(SlotRunData slotRunData, WorkUnitResult workUnitResult)
 {
    if (workUnitResult == WorkUnitResult.FinishedUnit)
    {
       slotRunData.CompletedUnits++;
    }
    else if (workUnitResult.IsTerminating())
    {
       slotRunData.FailedUnits++;
    }
 }
Esempio n. 16
0
 private XElement ConvertToXml(WorkUnitResult wu)
 {
     return(new XElement("result",
                         new XAttribute("duration", XmlConvert.ToString(Math.Round(wu.Duration / 1000.0, 2))),
                         wu.WorkUnit is ResourceDeployment ? ResourceToXml(wu) : StylesheetToXml(wu)));
 }
Esempio n. 17
0
 private static XElement ResourceToXml(WorkUnitResult wu)
 {
     return(new XElement("resource",
                         new XAttribute("path", ((ResourceDeployment)wu.WorkUnit).ResourcePath)));
 }