diff options
author | Andres G. Aragoneses <knocte@gmail.com> | 2012-09-17 15:27:35 +0400 |
---|---|---|
committer | Andres G. Aragoneses <knocte@gmail.com> | 2012-09-17 15:27:35 +0400 |
commit | 8ed93b10f0f4f977cee3dfe4d2ca957c6ebe8a3d (patch) | |
tree | e5bf95ecf7f17bfe3330bf0a7c96be8cd0ffe112 /mcs/class/Microsoft.Build.Engine | |
parent | 93df61b31500d81e709b6f8ab5dc8f3f600f0b91 (diff) |
[Microsoft.Build.Engine] Add a testcase for bxc#1862
Marking the test as [Category("NotWorking")]
Diffstat (limited to 'mcs/class/Microsoft.Build.Engine')
-rw-r--r-- | mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/Target.cs | 3 | ||||
-rw-r--r-- | mcs/class/Microsoft.Build.Engine/Test/Microsoft.Build.BuildEngine/TargetTest.cs | 33 |
2 files changed, 35 insertions, 1 deletions
diff --git a/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/Target.cs b/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/Target.cs index 64da760c9a9..378348c1f4a 100644 --- a/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/Target.cs +++ b/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/Target.cs @@ -77,7 +77,8 @@ namespace Microsoft.Build.BuildEngine { "The element <OnError> must be last under element <Target>. Found element <Error> instead."); #if NET_3_5 else if (xe.Name == "ItemGroup") { - //allow ItemGroups inside Targets in >= 3.5 + //don't blow up for ItemGroups inside Targets in >= 3.5 + // TODO: evaluate them (see https://bugzilla.xamarin.com/show_bug.cgi?id=1862 and test in TargetTest.cs ) continue; } #endif diff --git a/mcs/class/Microsoft.Build.Engine/Test/Microsoft.Build.BuildEngine/TargetTest.cs b/mcs/class/Microsoft.Build.Engine/Test/Microsoft.Build.BuildEngine/TargetTest.cs index dc5a56b024b..9a40fd342a8 100644 --- a/mcs/class/Microsoft.Build.Engine/Test/Microsoft.Build.BuildEngine/TargetTest.cs +++ b/mcs/class/Microsoft.Build.Engine/Test/Microsoft.Build.BuildEngine/TargetTest.cs @@ -352,6 +352,10 @@ namespace MonoTests.Microsoft.Build.BuildEngine { [Test] public void BuildProjectWithItemGroupInsideTarget() { + ItemGroupInsideATarget (); + } + + private MonoTests.Microsoft.Build.Tasks.TestMessageLogger ItemGroupInsideATarget() { var engine = new Engine(Consts.BinPath); var project = engine.CreateNewProject(); var projectXml = GetProjectXmlWithItemGroupInsideATarget (); @@ -367,6 +371,8 @@ namespace MonoTests.Microsoft.Build.BuildEngine { logger.DumpMessages (); Assert.Fail("Build failed"); } + + return logger; } private string GetProjectXmlWithItemGroupInsideATarget () @@ -386,6 +392,33 @@ namespace MonoTests.Microsoft.Build.BuildEngine { </Target> </Project>"; } + + [Test] + [Category ("NotWorking")] //https://bugzilla.xamarin.com/show_bug.cgi?id=1862 + public void BuildProjectOutputWithItemGroupInsideTarget() + { + var logger = ItemGroupInsideATarget (); + + try + { + Assert.AreEqual(3, logger.NormalMessageCount, "Expected number of messages"); + logger.CheckLoggedMessageHead("apple", "A1"); + logger.CheckLoggedMessageHead("apricot", "A2"); + logger.CheckLoggedMessageHead("raspberry", "A3"); + Assert.AreEqual(0, logger.NormalMessageCount, "Extra messages found"); + + Assert.AreEqual(1, logger.TargetStarted, "TargetStarted count"); + Assert.AreEqual(1, logger.TargetFinished, "TargetFinished count"); + Assert.AreEqual(3, logger.TaskStarted, "TaskStarted count"); + Assert.AreEqual(3, logger.TaskFinished, "TaskFinished count"); + + } + catch (AssertionException) + { + logger.DumpMessages(); + throw; + } + } #endif [Test] |