public void SetUp() { // Whole bunch of setup code. XmlElement taskNode = new XmlDocument().CreateElement("MockTask"); LoadedType taskClass = new LoadedType(typeof(MockTask), new AssemblyLoadInfo(typeof(MockTask).Assembly.FullName, null)); Engine engine = new Engine(@"c:\"); loggingHelper = new EngineLoggingServicesHelper(); engine.LoggingServices = loggingHelper; Project project = new Project(engine); taskExecutionModule = new MockTaskExecutionModule(new EngineCallback(engine)); // Set up some "fake data" which will be passed to the Task Execution State object Hashtable[] fakeArray = new Hashtable[1]; fakeArray[0] = new Hashtable(); projectLevelProprtiesForInference = new BuildPropertyGroup(); projectLevelPropertiesForExecution = new BuildPropertyGroup(); inferenceBucketItemsByName = fakeArray; inferenceBucketMetaData = fakeArray; projectLevelItemsForInference = new Hashtable(); executionBucketItemsByName = fakeArray; executionBucketMetaData = fakeArray; projectLevelItemsForExecution = new Hashtable(); hostObject = null; projectFileOfTaskNode = "In Memory"; parentProjectFullFileName = project.FullFileName; nodeProxyId = engine.EngineCallback.CreateTaskContext(project, null, null, taskNode, EngineCallback.inProcNode, new BuildEventContext(BuildEventContext.InvalidNodeId, BuildEventContext.InvalidTargetId, BuildEventContext.InvalidProjectContextId, BuildEventContext.InvalidTaskId)); executionDirectory = Directory.GetCurrentDirectory(); projectId = project.Id; }
public void TestTEMBatchSizeSettings() { Engine e = new Engine(@"C:\binpath"); EngineLoggingServicesHelper loggingServicesHelper = new EngineLoggingServicesHelper(); e.LoggingServices = loggingServicesHelper; EngineCallback engineCallback = new EngineCallback(e); Environment.SetEnvironmentVariable("MSBUILDREQUESTBATCHSIZE", "-4"); TaskExecutionModule TEM = new TaskExecutionModule(engineCallback, TaskExecutionModule.TaskExecutionModuleMode.MultiProcFullNodeMode, false); DualQueue<BuildEventArgs> currentQueue = loggingServicesHelper.GetCurrentQueueBuildEvents(); BuildEventArgs currentEvent = currentQueue.Dequeue(); Assertion.Assert("Expected event to be a warning event", currentEvent is BuildWarningEventArgs); Assertion.Assert(String.Compare(ResourceUtilities.FormatResourceString("BatchRequestSizeOutOfRange", "-4"), ((BuildWarningEventArgs)currentEvent).Message, StringComparison.OrdinalIgnoreCase) == 0); e = new Engine(@"C:\binpath"); loggingServicesHelper = new EngineLoggingServicesHelper(); e.LoggingServices = loggingServicesHelper; engineCallback = new EngineCallback(e); Environment.SetEnvironmentVariable("MSBUILDREQUESTBATCHSIZE", "0"); TEM = new TaskExecutionModule(engineCallback, TaskExecutionModule.TaskExecutionModuleMode.MultiProcFullNodeMode, false); currentQueue = loggingServicesHelper.GetCurrentQueueBuildEvents(); currentEvent = currentQueue.Dequeue(); Assertion.Assert("Expected event to be a warning event", currentEvent is BuildWarningEventArgs); Assertion.Assert(String.Compare(ResourceUtilities.FormatResourceString("BatchRequestSizeOutOfRange", "0"), ((BuildWarningEventArgs)currentEvent).Message, StringComparison.OrdinalIgnoreCase) == 0); e = new Engine(@"C:\binpath"); loggingServicesHelper = new EngineLoggingServicesHelper(); e.LoggingServices = loggingServicesHelper; engineCallback = new EngineCallback(e); Environment.SetEnvironmentVariable("MSBUILDREQUESTBATCHSIZE", int.MaxValue.ToString()); TEM = new TaskExecutionModule(engineCallback, TaskExecutionModule.TaskExecutionModuleMode.MultiProcFullNodeMode, false); currentQueue = loggingServicesHelper.GetCurrentQueueBuildEvents(); Assertion.Assert(currentQueue.Count == 0); e = new Engine(@"C:\binpath"); loggingServicesHelper = new EngineLoggingServicesHelper(); e.LoggingServices = loggingServicesHelper; engineCallback = new EngineCallback(e); Environment.SetEnvironmentVariable("MSBUILDREQUESTBATCHSIZE", "4"); TEM = new TaskExecutionModule(engineCallback, TaskExecutionModule.TaskExecutionModuleMode.MultiProcFullNodeMode, false); currentQueue = loggingServicesHelper.GetCurrentQueueBuildEvents(); Assertion.Assert(currentQueue.Count == 0); e = new Engine(@"C:\binpath"); loggingServicesHelper = new EngineLoggingServicesHelper(); e.LoggingServices = loggingServicesHelper; engineCallback = new EngineCallback(e); Environment.SetEnvironmentVariable("MSBUILDREQUESTBATCHSIZE", "Giberish"); TEM = new TaskExecutionModule(engineCallback, TaskExecutionModule.TaskExecutionModuleMode.MultiProcFullNodeMode, false); currentQueue = loggingServicesHelper.GetCurrentQueueBuildEvents(); currentEvent = currentQueue.Dequeue(); Assertion.Assert("Expected event to be a warning event", currentEvent is BuildWarningEventArgs); Assertion.Assert(String.Compare(ResourceUtilities.FormatResourceString("BatchRequestSizeOutOfRange", "Giberish"), ((BuildWarningEventArgs)currentEvent).Message, StringComparison.OrdinalIgnoreCase) == 0); }
private List <TaskExecutionStateHelper> InitializeTaskState() { BuildPropertyGroup projectLevelProprtiesForInference; BuildPropertyGroup projectLevelPropertiesForExecution; Hashtable[] inferenceBucketItemsByName; Hashtable[] inferenceBucketMetaData; Hashtable projectLevelItemsForInference; Hashtable[] executionBucketItemsByName; Hashtable[] executionBucketMetaData; Hashtable projectLevelItemsForExecution; ITaskHost hostObject; EngineLoggingServicesHelper loggingHelper; string projectFileOfTaskNode; string parentProjectFullFileName; int nodeProxyId; int projectId; string executionDirectory; XmlElement taskNode = new XmlDocument().CreateElement("MockTask"); LoadedType taskClass = new LoadedType(typeof(MockTask), new AssemblyLoadInfo(typeof(MockTask).Assembly.FullName, null)); loggingHelper = new EngineLoggingServicesHelper(); engine.LoggingServices = loggingHelper; Project project = new Project(engine); nodeProxyId = engine.EngineCallback.CreateTaskContext(project, null, null, taskNode, EngineCallback.inProcNode, new BuildEventContext(BuildEventContext.InvalidNodeId, BuildEventContext.InvalidTargetId, BuildEventContext.InvalidProjectContextId, BuildEventContext.InvalidTaskId)); // Set up some "fake data" which will be passed to the Task Execution State object Hashtable[] fakeArray = new Hashtable[1]; fakeArray[0] = new Hashtable(); projectLevelProprtiesForInference = new BuildPropertyGroup(); projectLevelPropertiesForExecution = new BuildPropertyGroup(); inferenceBucketItemsByName = fakeArray; inferenceBucketMetaData = fakeArray; projectLevelItemsForInference = new Hashtable(); executionBucketItemsByName = fakeArray; executionBucketMetaData = fakeArray; projectLevelItemsForExecution = new Hashtable(); hostObject = null; projectFileOfTaskNode = "In Memory"; parentProjectFullFileName = project.FullFileName; executionDirectory = Directory.GetCurrentDirectory(); projectId = project.Id; MockTaskExecutionModule taskExecutionModule = taskExecutionModule = new MockTaskExecutionModule(new EngineCallback(engine)); TaskExecutionMode howToExecuteTask = TaskExecutionMode.InferOutputsOnly; List <TaskExecutionStateHelper> executionStates = new List <TaskExecutionStateHelper>(); TaskExecutionStateHelper executionStateNormal1 = new TaskExecutionStateHelper( howToExecuteTask, LookupHelpers.CreateLookup(projectLevelProprtiesForInference, projectLevelItemsForInference), LookupHelpers.CreateLookup(projectLevelPropertiesForExecution, projectLevelItemsForExecution), taskNode, hostObject, projectFileOfTaskNode, parentProjectFullFileName, executionDirectory, nodeProxyId); executionStateNormal1.LoggingService = loggingHelper; executionStateNormal1.TargetInferenceSuccessful = true; executionStateNormal1.ParentModule = taskExecutionModule; executionStates.Add(executionStateNormal1); TaskExecutionStateHelper executionStateCallBack = new TaskExecutionStateHelper( howToExecuteTask, LookupHelpers.CreateLookup(projectLevelProprtiesForInference, projectLevelItemsForInference), LookupHelpers.CreateLookup(projectLevelPropertiesForExecution, projectLevelItemsForExecution), taskNode, hostObject, projectFileOfTaskNode, parentProjectFullFileName, executionDirectory, nodeProxyId); executionStateCallBack.LoggingService = loggingHelper; executionStateCallBack.TargetInferenceSuccessful = true; executionStates.Add(executionStateCallBack); TaskExecutionStateHelper executionStateNormal2 = new TaskExecutionStateHelper( howToExecuteTask, LookupHelpers.CreateLookup(projectLevelProprtiesForInference, projectLevelItemsForInference), LookupHelpers.CreateLookup(projectLevelPropertiesForExecution, projectLevelItemsForExecution), taskNode, hostObject, projectFileOfTaskNode, parentProjectFullFileName, executionDirectory, nodeProxyId); executionStateNormal2.LoggingService = loggingHelper; executionStateNormal2.TargetInferenceSuccessful = true; executionStateNormal2.ParentModule = taskExecutionModule; executionStates.Add(executionStateNormal2); TaskExecutionStateHelper executionStateNormal3 = new TaskExecutionStateHelper( howToExecuteTask, LookupHelpers.CreateLookup(projectLevelProprtiesForInference, projectLevelItemsForInference), LookupHelpers.CreateLookup(projectLevelPropertiesForExecution, projectLevelItemsForExecution), taskNode, hostObject, projectFileOfTaskNode, parentProjectFullFileName, executionDirectory, nodeProxyId); executionStateNormal3.LoggingService = loggingHelper; executionStateNormal3.TargetInferenceSuccessful = true; executionStateNormal3.ParentModule = taskExecutionModule; executionStates.Add(executionStateNormal3); return(executionStates); }
private List<TaskExecutionStateHelper> InitializeTaskState() { BuildPropertyGroup projectLevelProprtiesForInference; BuildPropertyGroup projectLevelPropertiesForExecution; Hashtable[] inferenceBucketItemsByName; Hashtable[] inferenceBucketMetaData; Hashtable projectLevelItemsForInference; Hashtable[] executionBucketItemsByName; Hashtable[] executionBucketMetaData; Hashtable projectLevelItemsForExecution; ITaskHost hostObject; EngineLoggingServicesHelper loggingHelper; string projectFileOfTaskNode; string parentProjectFullFileName; int nodeProxyId; int projectId; string executionDirectory; XmlElement taskNode = new XmlDocument().CreateElement("MockTask"); LoadedType taskClass = new LoadedType(typeof(MockTask), new AssemblyLoadInfo(typeof(MockTask).Assembly.FullName, null)); loggingHelper = new EngineLoggingServicesHelper(); engine.LoggingServices = loggingHelper; Project project = new Project(engine); nodeProxyId = engine.EngineCallback.CreateTaskContext(project, null, null, taskNode, EngineCallback.inProcNode, new BuildEventContext(BuildEventContext.InvalidNodeId, BuildEventContext.InvalidTargetId, BuildEventContext.InvalidProjectContextId, BuildEventContext.InvalidTaskId)); // Set up some "fake data" which will be passed to the Task Execution State object Hashtable[] fakeArray = new Hashtable[1]; fakeArray[0] = new Hashtable(); projectLevelProprtiesForInference = new BuildPropertyGroup(); projectLevelPropertiesForExecution = new BuildPropertyGroup(); inferenceBucketItemsByName = fakeArray; inferenceBucketMetaData = fakeArray; projectLevelItemsForInference = new Hashtable(); executionBucketItemsByName = fakeArray; executionBucketMetaData = fakeArray; projectLevelItemsForExecution = new Hashtable(); hostObject = null; projectFileOfTaskNode = "In Memory"; parentProjectFullFileName = project.FullFileName; executionDirectory = Directory.GetCurrentDirectory(); projectId = project.Id; MockTaskExecutionModule taskExecutionModule = taskExecutionModule = new MockTaskExecutionModule(new EngineCallback(engine)); TaskExecutionMode howToExecuteTask = TaskExecutionMode.InferOutputsOnly; List<TaskExecutionStateHelper> executionStates = new List<TaskExecutionStateHelper>(); TaskExecutionStateHelper executionStateNormal1 = new TaskExecutionStateHelper( howToExecuteTask, LookupHelpers.CreateLookup(projectLevelProprtiesForInference, projectLevelItemsForInference), LookupHelpers.CreateLookup(projectLevelPropertiesForExecution, projectLevelItemsForExecution), taskNode, hostObject, projectFileOfTaskNode, parentProjectFullFileName, executionDirectory, nodeProxyId); executionStateNormal1.LoggingService = loggingHelper; executionStateNormal1.TargetInferenceSuccessful = true; executionStateNormal1.ParentModule = taskExecutionModule; executionStates.Add(executionStateNormal1); TaskExecutionStateHelper executionStateCallBack = new TaskExecutionStateHelper( howToExecuteTask, LookupHelpers.CreateLookup(projectLevelProprtiesForInference, projectLevelItemsForInference), LookupHelpers.CreateLookup(projectLevelPropertiesForExecution, projectLevelItemsForExecution), taskNode, hostObject, projectFileOfTaskNode, parentProjectFullFileName, executionDirectory, nodeProxyId); executionStateCallBack.LoggingService = loggingHelper; executionStateCallBack.TargetInferenceSuccessful = true; executionStates.Add(executionStateCallBack); TaskExecutionStateHelper executionStateNormal2 = new TaskExecutionStateHelper( howToExecuteTask, LookupHelpers.CreateLookup(projectLevelProprtiesForInference, projectLevelItemsForInference), LookupHelpers.CreateLookup(projectLevelPropertiesForExecution, projectLevelItemsForExecution), taskNode, hostObject, projectFileOfTaskNode, parentProjectFullFileName, executionDirectory, nodeProxyId); executionStateNormal2.LoggingService = loggingHelper; executionStateNormal2.TargetInferenceSuccessful = true; executionStateNormal2.ParentModule = taskExecutionModule; executionStates.Add(executionStateNormal2); TaskExecutionStateHelper executionStateNormal3 = new TaskExecutionStateHelper( howToExecuteTask, LookupHelpers.CreateLookup(projectLevelProprtiesForInference, projectLevelItemsForInference), LookupHelpers.CreateLookup(projectLevelPropertiesForExecution, projectLevelItemsForExecution), taskNode, hostObject, projectFileOfTaskNode, parentProjectFullFileName, executionDirectory, nodeProxyId); executionStateNormal3.LoggingService = loggingHelper; executionStateNormal3.TargetInferenceSuccessful = true; executionStateNormal3.ParentModule = taskExecutionModule; executionStates.Add(executionStateNormal3); return executionStates; }