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;
 }
Exemple #2
0
        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;
        }
Exemple #3
0
        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);
        }
Exemple #4
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;
        }