"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
[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 ();
logger.DumpMessages ();
Assert.Fail("Build failed");
}
+
+ return logger;
}
private string GetProjectXmlWithItemGroupInsideATarget ()
</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]