1 using System;
2 using NUnit.Framework;
3 using Premake.Tests.Framework;
4 
5 namespace Premake.Tests.Vs2002.Cs
6 {
7 	[TestFixture]
8 	public class Test_BuildFlags
9 	{
10 		Script  _script;
11 		Project _expects;
12 		Parser  _parser;
13 
14 		#region Setup and Teardown
15 		[SetUp]
Test_Setup()16 		public void Test_Setup()
17 		{
18 			_script = Script.MakeBasic("exe", "c#");
19 
20 			_expects = new Project();
21 			_expects.Package.Add(1);
22 			_expects.Package[0].Config.Add(2);
23 
24 			_parser = new Vs2002Parser();
25 		}
26 
Run()27 		public void Run()
28 		{
29 			TestEnvironment.Run(_script, _parser, _expects, null);
30 		}
31 		#endregion
32 
33 		[Test]
Test_SetFlagOnPackage()34 		public void Test_SetFlagOnPackage()
35 		{
36 			_script.Append("package.buildflags = { 'unsafe' }");
37 			_expects.Package[0].Config[0].BuildFlags = new string[] { "unsafe" };
38 			_expects.Package[0].Config[1].BuildFlags = new string[] { "unsafe", "optimize", "no-symbols" };
39 			Run();
40 		}
41 
42 		[Test]
Test_SetFlagOnConfig()43 		public void Test_SetFlagOnConfig()
44 		{
45 			_script.Append("package.config['Debug'].buildflags = { 'unsafe' }");
46 			_expects.Package[0].Config[0].BuildFlags = new string[] { "unsafe" };
47 			_expects.Package[0].Config[1].BuildFlags = new string[] { "optimize", "no-symbols" };
48 			Run();
49 		}
50 
Test_SetFlagOnPackageAndConfig()51 		public void Test_SetFlagOnPackageAndConfig()
52 		{
53 			_script.Append("package.buildflags = { 'unsafe' }");
54 			_script.Append("package.config['Release'].buildflags = { 'fatal-warnings' }");
55 			_expects.Package[0].Config[0].BuildFlags = new string[] { "unsafe" };
56 			_expects.Package[0].Config[1].BuildFlags = new string[] { "unsafe", "fatal-warnings" };
57 			Run();
58 		}
59 
60 		[Test]
Test_FatalWarnings()61 		public void Test_FatalWarnings()
62 		{
63 			_script.Append("package.buildflags = { 'fatal-warnings' }");
64 			_expects.Package[0].Config[0].BuildFlags = new string[] { "fatal-warnings" };
65 			_expects.Package[0].Config[1].BuildFlags = new string[] { "fatal-warnings", "optimize", "no-symbols" };
66 			Run();
67 		}
68 
69 		[Test]
Test_NoSymbols()70 		public void Test_NoSymbols()
71 		{
72 			_script.Append("package.buildflags = { 'no-symbols' }");
73 			_expects.Package[0].Config[0].BuildFlags = new string[] { "no-symbols" };
74 			_expects.Package[0].Config[1].BuildFlags = new string[] { "optimize", "no-symbols" };
75 			Run();
76 		}
77 
78 		[Test]
Test_Optimize()79 		public void Test_Optimize()
80 		{
81 			_script.Append("package.buildflags = { 'optimize' }");
82 			_expects.Package[0].Config[0].BuildFlags = new string[] { "optimize" };
83 			_expects.Package[0].Config[1].BuildFlags = new string[] { "optimize", "no-symbols" };
84 			Run();
85 		}
86 
87 		[Test]
Test_Unsafe()88 		public void Test_Unsafe()
89 		{
90 			_script.Append("package.buildflags = { 'unsafe' }");
91 			_expects.Package[0].Config[0].BuildFlags = new string[] { "unsafe" };
92 			_expects.Package[0].Config[1].BuildFlags = new string[] { "unsafe", "optimize", "no-symbols" };
93 			Run();
94 		}
95 	}
96 }
97