/// <summary> /// Checks if the target results are as expected. This method can only be called for targets may be built as a result of building /// the requested / default / initial targets /// </summary> public void ValidateNonPrimaryTargetEndResult(string targetName, TargetResultCode expectedResultCode, string[] items) { BuildResult result = _resultsCache.GetResultForRequest(_buildRequest); TargetResult targetResult = (TargetResult)result[targetName]; InternalValidateTargetEndResult(targetResult, expectedResultCode, items); }
public BuildResult GetResultForRequest(BuildRequest request) { var overrideResult = _override.GetResultForRequest(request); if (overrideResult != null) { #if DEBUG ErrorUtilities.VerifyThrow(CurrentCache.GetResultForRequest(request) == null, "caches should not overlap"); #endif return(overrideResult); } return(CurrentCache.GetResultForRequest(request)); }
public Task <BuildResult> BuildTargets(ProjectLoggingContext loggingContext, BuildRequestEntry entry, IRequestBuilderCallback callback, string[] targets, Lookup baseLookup, CancellationToken cancellationToken) { _requestBuilderCallback = callback; if (cancellationToken.WaitHandle.WaitOne(1500)) { BuildResult result = new BuildResult(entry.Request); foreach (string target in targets) { result.AddResultsForTarget(target, BuildResultUtilities.GetEmptyFailingTargetResult()); } return(Task <BuildResult> .FromResult(result)); } if (_newRequests != null) { string[] projectFiles = new string[_newRequests.Length]; PropertyDictionary <ProjectPropertyInstance>[] properties = new PropertyDictionary <ProjectPropertyInstance> [_newRequests.Length]; string[] toolsVersions = new string[_newRequests.Length]; for (int i = 0; i < projectFiles.Length; ++i) { projectFiles[i] = _newRequests[i].Config.ProjectFullPath; properties[i] = new PropertyDictionary <ProjectPropertyInstance>(_newRequests[i].Config.GlobalProperties); toolsVersions[i] = _newRequests[i].Config.ToolsVersion; } _requestBuilderCallback.BuildProjects(projectFiles, properties, toolsVersions, _newRequests[0].Targets, _newRequests[0].ResultsNeeded); if (cancellationToken.WaitHandle.WaitOne(1500)) { BuildResult result = new BuildResult(entry.Request); foreach (string target in targets) { result.AddResultsForTarget(target, BuildResultUtilities.GetEmptyFailingTargetResult()); } return(Task <BuildResult> .FromResult(result)); } } return(Task <BuildResult> .FromResult(_cache.GetResultForRequest(entry.Request))); }
/// <summary> /// Call the actual implementation /// </summary> /// <param name="request">The request for which results should be retrieved.</param> /// <returns>The build results for the specified request.</returns> public BuildResult GetResultForRequest(BuildRequest request) { _getCount++; return(_resultCache.GetResultForRequest(request)); }