public void AsyncBuildWithMultipleSubmissionsCancelAndReSubmit() { BuildRequestData[] buildRequests = GenerateBuildRequests(BuildSubmissionTests.NormalProjectExecutionTime); ConfigurationCacheTestExtension configurationCachetestExtension = this.testExtensionContainer.GetFirstTestExtension <ConfigurationCacheTestExtension>(); ResultsCacheTestExtension resultsCacheTestExtension = this.testExtensionContainer.GetFirstTestExtension <ResultsCacheTestExtension>(); this.buildManagerTestExtension.BeginBuild(BuildManagerTestExtension.CreateBuildParameters(BuildSubmissionTests.DefaultNodeReUseAction, BuildSubmissionTests.MultipleNodeCount, BuildSubmissionTests.DefaultMemoryLimit, "4.0")); AsyncBuildRequestStatus[] requestsStatus = null; this.buildManagerTestExtension.ExecuteAsyncBuildRequests(buildRequests, BuildSubmissionTests.DefaultBuildCompletionTimeout, !BuildSubmissionTests.WaitForCompletion, out requestsStatus); this.buildManagerTestExtension.CancelAllSubmissions(); for (int j = 0; j < buildRequests.Length; j++) { Verify.IsTrue(BuildManagerTestExtension.Wait(requestsStatus[j].SubmissionCompletedEvent, BuildSubmissionTests.DefaultBuildCompletionTimeout), "Submissions should have completed in the specified 60 seconds timeout."); requestsStatus[j].SubmissionCompletedEvent.Close(); requestsStatus[j].SubmissionTestExtension.BuildResultTestExtension.Verify.BuildWasAborted(); BuildResultTestExtension resultFromCacheTestExtension = resultsCacheTestExtension.GetResultFromCache(requestsStatus[j].SubmissionTestExtension.ConfigurationIdForSubmission); resultFromCacheTestExtension.Verify.BuildWasAborted(); } this.buildManagerTestExtension.EndBuild(); this.buildManagerTestExtension.BeginBuild(BuildManagerTestExtension.CreateBuildParameters(BuildSubmissionTests.DefaultNodeReUseAction, BuildSubmissionTests.MultipleNodeCount, BuildSubmissionTests.DefaultMemoryLimit, "4.0")); AsyncBuildRequestStatus[] requestsStatusAfterCancel = null; bool success = this.buildManagerTestExtension.ExecuteAsyncBuildRequests(buildRequests, BuildSubmissionTests.DefaultBuildCompletionTimeout, BuildSubmissionTests.WaitForCompletion, out requestsStatusAfterCancel); Verify.IsTrue(success, "Submissions should have completed in the specified 60 seconds timeout."); for (int k = 0; k < buildRequests.Length; k++) { requestsStatusAfterCancel[k].SubmissionTestExtension.BuildResultTestExtension.Verify.BuildSucceeded(); } this.buildManagerTestExtension.EndBuild(); }
public void AsyncBuildWithMultipleSubmissionsOnSingleNodes() { BuildRequestData[] buildRequests = GenerateBuildRequests(BuildSubmissionTests.NormalProjectExecutionTime); ConfigurationCacheTestExtension configurationCachetestExtension = this.testExtensionContainer.GetFirstTestExtension <ConfigurationCacheTestExtension>(); this.buildManagerTestExtension.BeginBuild(BuildManagerTestExtension.CreateBuildParameters(BuildSubmissionTests.DefaultNodeReUseAction, BuildSubmissionTests.DefaultNodeCount, BuildSubmissionTests.DefaultMemoryLimit, "4.0")); AsyncBuildRequestStatus[] requestsStatus = null; bool success = this.buildManagerTestExtension.ExecuteAsyncBuildRequests(buildRequests, BuildSubmissionTests.DefaultBuildCompletionTimeout, BuildSubmissionTests.WaitForCompletion, out requestsStatus); Verify.IsTrue(success, "Submissions should have completed in the specified 60 seconds timeout."); Verify.IsTrue(requestsStatus.Length == buildRequests.Length, "Number of submission should match the number of requests."); for (int j = 0; j < buildRequests.Length; j++) { requestsStatus[j].SubmissionTestExtension.BuildResultTestExtension.Verify.BuildSucceeded(); configurationCachetestExtension.Verify.CacheContainsConfigurationForBuildRequest(buildRequests[j], "4.0"); } this.buildManagerTestExtension.EndBuild(); }
public void MultipleSuccessfulBuildsWithSameParameters() { BuildRequestData requestData1 = this.buildManagerTestExtension.CreateBuildRequestData(BuildSubmissionTests.NormalProjectExecutionTime); BuildRequestData requestData2 = this.buildManagerTestExtension.CreateBuildRequestData(BuildSubmissionTests.NormalProjectExecutionTime); AsyncBuildRequestStatus[] requestData1Status = null; AsyncBuildRequestStatus[] requestData2Status = null; ConfigurationCacheTestExtension configurationCachetestExtension = this.testExtensionContainer.GetFirstTestExtension <ConfigurationCacheTestExtension>(); this.buildManagerTestExtension.BeginBuild(BuildManagerTestExtension.CreateBuildParameters(BuildSubmissionTests.DefaultNodeReUseAction, BuildSubmissionTests.DefaultNodeCount, BuildSubmissionTests.DefaultMemoryLimit, "4.0")); bool success = this.buildManagerTestExtension.ExecuteAsyncBuildRequests(new BuildRequestData[] { requestData1 }, BuildSubmissionTests.DefaultBuildCompletionTimeout, BuildSubmissionTests.WaitForCompletion, out requestData1Status); Verify.IsTrue(success, "Submissions should have completed in the specified 60 seconds timeout."); requestData1Status[0].SubmissionTestExtension.BuildResultTestExtension.Verify.BuildSucceeded(); configurationCachetestExtension.Verify.CacheContainsConfigurationForBuildRequest(requestData1, "4.0"); this.buildManagerTestExtension.EndBuild(); this.buildManagerTestExtension.BeginBuild(BuildManagerTestExtension.CreateBuildParameters(BuildSubmissionTests.DefaultNodeReUseAction, BuildSubmissionTests.DefaultNodeCount, BuildSubmissionTests.DefaultMemoryLimit, "4.0")); success = this.buildManagerTestExtension.ExecuteAsyncBuildRequests(new BuildRequestData[] { requestData2 }, BuildSubmissionTests.DefaultBuildCompletionTimeout, BuildSubmissionTests.WaitForCompletion, out requestData2Status); Verify.IsTrue(success, "Submissions should have completed in the specified 60 seconds timeout."); requestData2Status[0].SubmissionTestExtension.BuildResultTestExtension.Verify.BuildSucceeded(); configurationCachetestExtension.Verify.CacheContainsConfigurationForBuildRequest(requestData2, "4.0"); this.buildManagerTestExtension.EndBuild(); }