/// <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; }
internal QAMockTaskBuilder() { _host = null; _testDataProvider = null; _result = null; _taskDone = new AutoResetEvent(false); }
/// <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); }
/// <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; }
/// <summary> /// Shuts down the component. /// </summary> public void ShutdownComponent() { _host = null; _testDataProvider = null; _result = null; this.Dispose(); }
/// <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; }
/// <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); }
private static void AddWorkUnitResult(SlotRunData slotRunData, WorkUnitResult workUnitResult) { if (workUnitResult == WorkUnitResult.FinishedUnit) { slotRunData.CompletedUnits++; } else if (workUnitResult.IsTerminating()) { slotRunData.FailedUnits++; } }
/// <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(); }
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); } }
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)))); }
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++; } } }
/// <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)); }
/// <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) { }
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))); }
private static XElement ResourceToXml(WorkUnitResult wu) { return(new XElement("resource", new XAttribute("path", ((ResourceDeployment)wu.WorkUnit).ResourcePath))); }