Welcome to mirror list, hosted at ThFree Co, Russian Federation.

ParseResponseFileLinesTests.cs « Tests « Mono.Linker.Tests « test - github.com/mono/linker.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: e97960359d15ea828820307c9f935ab40ca8307d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
using System.Collections.Generic;
using System.IO;
using NUnit.Framework;

namespace Mono.Linker.Tests
{
	[TestFixture]
	public class ParseResponseFileLinesTests
	{
		[Test]
		public void TestOneArg ()
		{
			TestParseResponseFileLines (@"abc", new string[] { @"abc" });
		}

		[Test]
		public void TestTwoArgsOnOneLine ()
		{
			TestParseResponseFileLines (@"abc def", new string[] { @"abc", @"def" });
		}

		[Test]
		public void TestTwoArgsOnTwoLine ()
		{
			TestParseResponseFileLines (@"abc
def", new string[] { @"abc", @"def" });
		}

		[Test]
		public void TestOneSlashWithoutQuote ()
		{
			TestParseResponseFileLines (@"\", new string[] { @"\" });
		}

		[Test]
		public void TestTwoSlashesWithoutQuote ()
		{
			TestParseResponseFileLines (@"\\", new string[] { @"\\" });
		}

		[Test]
		public void TestOneSlashWithQuote ()
		{
			TestParseResponseFileLines (@"""x \"" y""", new string[] { @"x "" y" });
		}

		[Test]
		public void TestTwoSlashesWithQuote ()
		{
			TestParseResponseFileLines (@"""Slashes \\ In Quote""", new string[] { @"Slashes \\ In Quote" });
		}

		[Test]
		public void TestTwoSlashesAtEndOfQuote ()
		{
			TestParseResponseFileLines (@"""Trailing Slash\\""", new string[] { @"Trailing Slash\" });
		}

		[Test]
		public void TestWindowsPath ()
		{
			TestParseResponseFileLines (@"C:\temp\test.txt", new string[] { @"C:\temp\test.txt" });
		}

		[Test]
		public void TestLinuxPath ()
		{
			TestParseResponseFileLines (@"/tmp/test.txt", new string[] { @"/tmp/test.txt" });
		}

		[Test]
		public void TestEqualsArguments ()
		{
			TestParseResponseFileLines (@"a=b", new string[] { @"a=b" });
		}

		[Test]
		public void TestEqualsArgumentsSpaces ()
		{
			TestParseResponseFileLines (@"a=""b c""", new string[] { @"a=b c" });
		}

		[Test]
		public void TestEqualsKeySpaces ()
		{
			TestParseResponseFileLines (@"""a b""=c", new string[] { @"a b=c" });
		}

		[Test]
		public void TestEscapedQuoteWithBackslash ()
		{
			TestParseResponseFileLines (@"""a \"" b""", new string[] { @"a "" b" });
		}

		[Test]
		public void TestEscapedQuoteSequence ()
		{
			TestParseResponseFileLines (@"""a """" b""", new string[] { @"a "" b" });
		}

		[Test]
		public void TestQuotedNewline ()
		{
			TestParseResponseFileLines (@"""a
b""", new string[] { @"a
b" });
		}

		private void TestParseResponseFileLines (string v1, string[] v2)
		{
			var result = new Queue<string> ();
			using (var reader = new StringReader (v1))
				Driver.ParseResponseFile (reader, result);
			Assert.That (result, Is.EquivalentTo (v2));
		}
	}
}