Assert.AreEqual ("/nowarn:A", clbe.ToString (), "A1");
}
+ [Test]
+ public void TestDisabledWarningsComma ()
+ {
+ CscExtended csc = new CscExtended ();
+ CommandLineBuilderExtension clbe = new CommandLineBuilderExtension ();
+
+ csc.DisabledWarnings = "A, B";
+ csc.ARFC (clbe);
+
+ Assert.AreEqual ("/nowarn:A;B", clbe.ToString (), "A1");
+ }
+
[Test]
public void TestDocumentationFile ()
{
CscExtended csc = new CscExtended ();
CommandLineBuilderExtension clbe = new CommandLineBuilderExtension ();
- csc.LangVersion = "A";
+ csc.LangVersion = "A'B";
csc.ARFC (clbe);
- Assert.AreEqual ("/langversion:A", clbe.ToString (), "A1");
+ Assert.AreEqual ("/langversion:\"A'B\"", clbe.ToString (), "A1");
}
[Test]
CscExtended csc = new CscExtended ();
CommandLineBuilderExtension clbe = new CommandLineBuilderExtension ();
- csc.ModuleAssemblyName = "A";
+ csc.ModuleAssemblyName = "A'B";
csc.ARFC (clbe);
- Assert.AreEqual ("/moduleassemblyname:A", clbe.ToString (), "A1");
+ Assert.AreEqual ("/moduleassemblyname:\"A'B\"", clbe.ToString (), "A1");
}
[Test]
CscExtended csc = new CscExtended ();
CommandLineBuilderExtension clbe = new CommandLineBuilderExtension ();
- csc.WarningsAsErrors = "A";
+ csc.WarningsAsErrors = "A'B";
csc.ARFC (clbe);
- Assert.AreEqual ("/warnaserror+:A", clbe.ToString (), "A1");
+ Assert.AreEqual ("/warnaserror+:\"A'B\"", clbe.ToString (), "A1");
}
[Test]
public void TestWarningNotAsErrors ()
CscExtended csc = new CscExtended ();
CommandLineBuilderExtension clbe = new CommandLineBuilderExtension ();
- csc.WarningsNotAsErrors = "A";
+ csc.WarningsNotAsErrors = "A'B";
csc.ARFC (clbe);
- Assert.AreEqual ("/warnaserror-:A", clbe.ToString (), "A1");
+ Assert.AreEqual ("/warnaserror-:\"A'B\"", clbe.ToString (), "A1");
}
#endregion
CommandLineBuilderExtension c1 = new CommandLineBuilderExtension ();
CommandLineBuilderExtension c2 = new CommandLineBuilderExtension ();
- csc.AdditionalLibPaths = new string [2] { "A", "B" };
+ csc.AdditionalLibPaths = new string [2] { "A'Foo", "B" };
csc.ARFC (c1);
csc.ACLC (c2);
- Assert.AreEqual ("/lib:A,B", c1.ToString (), "A1");
+ Assert.AreEqual ("/lib:\"A'Foo\",B", c1.ToString (), "A1");
Assert.AreEqual (String.Empty, c2.ToString (), "A2");
}
+ // Behavior for this intentionally differs from .net .
+ // msbuild doesn't quote the define args, but we do
+ // that to make it easier to copy/paste and execute
+ // compiler command lines, helps in debugging.
+ [Category ("NotDotNet")]
[Test]
public void TestDefineConstants ()
{
CommandLineBuilderExtension c1 = new CommandLineBuilderExtension ();
CommandLineBuilderExtension c2 = new CommandLineBuilderExtension ();
- csc.DefineConstants = "A;B";
+ csc.DefineConstants = "A;B;;CD;;;Foo Bar";
+ csc.ARFC (c1);
+ csc.ACLC (c2);
+
+ Assert.AreEqual ("/define:\"A;B;CD;Foo;Bar\"", c1.ToString (), "A1");
+ Assert.AreEqual (String.Empty, c2.ToString (), "A2");
+ }
+
+ [Test]
+ public void TestDefineConstants2 ()
+ {
+ CscExtended csc = new CscExtended ();
+ CommandLineBuilderExtension c1 = new CommandLineBuilderExtension ();
+ CommandLineBuilderExtension c2 = new CommandLineBuilderExtension ();
+
+ csc.DefineConstants = ";;;";
csc.ARFC (c1);
csc.ACLC (c2);
- Assert.AreEqual ("/define:A;B", c1.ToString (), "A1");
+ Assert.AreEqual (String.Empty, c1.ToString (), "A1");
Assert.AreEqual (String.Empty, c2.ToString (), "A2");
}
CommandLineBuilderExtension c1 = new CommandLineBuilderExtension ();
CommandLineBuilderExtension c2 = new CommandLineBuilderExtension ();
- csc.MainEntryPoint = "A";
+ csc.MainEntryPoint = "A;B";
csc.ARFC (c1);
csc.ACLC (c2);
- Assert.AreEqual ("/main:A", c1.ToString (), "A1");
+ Assert.AreEqual ("/main:\"A;B\"", c1.ToString (), "A1");
Assert.AreEqual (String.Empty, c2.ToString (), "A2");
}
CommandLineBuilderExtension c1 = new CommandLineBuilderExtension ();
CommandLineBuilderExtension c2 = new CommandLineBuilderExtension ();
- csc.References = new ITaskItem [2] { new TaskItem ("A"), new TaskItem ("B") };
+ csc.References = new ITaskItem [2] { new TaskItem ("A;C"), new TaskItem ("B") };
csc.ARFC (c1);
csc.ACLC (c2);
- Assert.AreEqual ("/reference:A /reference:B", c1.ToString (), "A1");
+ Assert.AreEqual ("/reference:\"A;C\" /reference:B", c1.ToString (), "A1");
Assert.AreEqual (String.Empty, c2.ToString (), "A2");
}
CommandLineBuilderExtension c1 = new CommandLineBuilderExtension ();
CommandLineBuilderExtension c2 = new CommandLineBuilderExtension ();
- csc.ResponseFiles = new ITaskItem [2] { new TaskItem ("A"), new TaskItem ("B") };
+ csc.ResponseFiles = new ITaskItem [2] { new TaskItem ("A\'Foo"), new TaskItem ("B") };
csc.ARFC (c1);
csc.ACLC (c2);
- Assert.AreEqual ("@A @B", c1.ToString (), "A1");
+ Assert.AreEqual ("@\"A'Foo\" @B", c1.ToString (), "A1");
Assert.AreEqual (String.Empty, c2.ToString (), "A2");
}