public void TestTargetBatching5() { string projectString = @"<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003""> <Target Name=""foo"" Inputs=""@(List1)"" Outputs=""%(Culture).foo""> <Message Text=""TargetStarted""/> </Target> </Project>" ; Engine engine = new Engine(Consts.BinPath); Project project = engine.CreateNewProject(); TestMessageLogger testLogger = new TestMessageLogger(); engine.RegisterLogger(testLogger); project.LoadXml(projectString); bool res = project.Build("foo"); if (!res) { testLogger.DumpMessages(); Assert.Fail("A1: Build failed"); } Assert.AreEqual(1, testLogger.CheckAny("TargetStarted", MessageImportance.Normal), "A2: Target should've been skipped because of no inputs"); CheckEngineEventCounts(testLogger, 1, 1, 0, 0); }
void CheckLoggedMessageAny(TestMessageLogger logger, string expected, string id) { if (logger.CheckAny(expected, MessageImportance.Normal) == 1) { Assert.Fail("{0}: Expected message '{1}' was not emitted.", id, expected); } }
public void TestExecution() { string documentString = @" <Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003""> <Target Name='1'> <Message Text='Text1' Importance='Low'/> <Message Text='Text2' Importance='Normal'/> <Message Text='Text3' Importance='High'/> <Message Text='Text4' Importance='low'/> <Message Text='Text5' Importance='normal'/> <Message Text='Text6' Importance='high'/> <Message Text='Text7' /> <Message Text='%22abc test%22 123 %22def%22' /> <Message Text='Text8' Importance='weird_importance'/> </Target> </Project> " ; engine = new Engine(Consts.BinPath); testLogger = new TestMessageLogger(); engine.RegisterLogger(testLogger); project = engine.CreateNewProject(); project.LoadXml(documentString); if (project.Build("1")) { testLogger.DumpMessages(); Assert.Fail("Build should have failed"); } Assert.AreEqual(0, testLogger.CheckAny("Text1", MessageImportance.Low), "A1"); Assert.AreEqual(0, testLogger.CheckAny("Text2", MessageImportance.Normal), "A2"); Assert.AreEqual(0, testLogger.CheckAny("Text3", MessageImportance.High), "A3"); Assert.AreEqual(0, testLogger.CheckAny("Text4", MessageImportance.Low), "A4"); Assert.AreEqual(0, testLogger.CheckAny("Text5", MessageImportance.Normal), "A5"); Assert.AreEqual(0, testLogger.CheckAny("Text6", MessageImportance.High), "A6"); Assert.AreEqual(0, testLogger.CheckAny("Text7", MessageImportance.Normal), "A7"); Assert.AreEqual(0, testLogger.CheckAny("\"abc test\" 123 \"def\"", MessageImportance.Normal), "A8"); Assert.AreEqual(1, testLogger.CheckAny("Text8", MessageImportance.Normal), "A9"); }
void CheckLoggedMessageAny (TestMessageLogger logger, string expected, string id) { if (logger.CheckAny (expected, MessageImportance.Normal) == 1) Assert.Fail ("{0}: Expected message '{1}' was not emitted.", id, expected); }
public void TestTargetBatching5 () { string projectString = @"<Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003""> <Target Name=""foo"" Inputs=""@(List1)"" Outputs=""%(Culture).foo""> <Message Text=""TargetStarted""/> </Target> </Project>"; Engine engine = new Engine (Consts.BinPath); Project project = engine.CreateNewProject (); TestMessageLogger testLogger = new TestMessageLogger (); engine.RegisterLogger (testLogger); project.LoadXml (projectString); bool res = project.Build ("foo"); if (!res) { testLogger.DumpMessages (); Assert.Fail ("A1: Build failed"); } Assert.AreEqual (1, testLogger.CheckAny ("TargetStarted", MessageImportance.Normal), "A2: Target should've been skipped because of no inputs"); CheckEngineEventCounts (testLogger, 1, 1, 0, 0); }
public void TestExecution () { string documentString = @" <Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003""> <Target Name='1'> <Message Text='Text1' Importance='Low'/> <Message Text='Text2' Importance='Normal'/> <Message Text='Text3' Importance='High'/> <Message Text='Text4' Importance='low'/> <Message Text='Text5' Importance='normal'/> <Message Text='Text6' Importance='high'/> <Message Text='Text7' /> <Message Text='Text8' Importance='weird_importance'/> </Target> </Project> "; engine = new Engine (Consts.BinPath); testLogger = new TestMessageLogger (); engine.RegisterLogger (testLogger); project = engine.CreateNewProject (); project.LoadXml (documentString); if (project.Build ("1")) { testLogger.DumpMessages (); Assert.Fail ("Build should have failed"); } Assert.AreEqual (0, testLogger.CheckAny ("Text1", MessageImportance.Low), "A1"); Assert.AreEqual (0, testLogger.CheckAny ("Text2", MessageImportance.Normal), "A2"); Assert.AreEqual (0, testLogger.CheckAny ("Text3", MessageImportance.High), "A3"); Assert.AreEqual (0, testLogger.CheckAny ("Text4", MessageImportance.Low), "A4"); Assert.AreEqual (0, testLogger.CheckAny ("Text5", MessageImportance.Normal), "A5"); Assert.AreEqual (0, testLogger.CheckAny ("Text6", MessageImportance.High), "A6"); Assert.AreEqual (0, testLogger.CheckAny ("Text7", MessageImportance.Normal), "A7"); Assert.AreEqual (1, testLogger.CheckAny ("Text8", MessageImportance.Normal), "A8"); }