You've already forked linux-packaging-mono
Imported Upstream version 5.18.0.207
Former-commit-id: 3b152f462918d427ce18620a2cbe4f8b79650449
This commit is contained in:
parent
8e12397d70
commit
eb85e2fc17
112
external/llvm/utils/lit/tests/unit/ShUtil.py
vendored
112
external/llvm/utils/lit/tests/unit/ShUtil.py
vendored
@ -1,112 +0,0 @@
|
||||
# RUN: %{python} %s
|
||||
|
||||
import unittest
|
||||
|
||||
from lit.ShUtil import Command, Pipeline, Seq, ShLexer, ShParser
|
||||
|
||||
|
||||
class TestShLexer(unittest.TestCase):
|
||||
def lex(self, str, *args, **kwargs):
|
||||
return list(ShLexer(str, *args, **kwargs).lex())
|
||||
|
||||
def test_basic(self):
|
||||
self.assertEqual(self.lex('a|b>c&d<e;f'),
|
||||
['a', ('|',), 'b', ('>',), 'c', ('&',), 'd',
|
||||
('<',), 'e', (';',), 'f'])
|
||||
|
||||
def test_redirection_tokens(self):
|
||||
self.assertEqual(self.lex('a2>c'),
|
||||
['a2', ('>',), 'c'])
|
||||
self.assertEqual(self.lex('a 2>c'),
|
||||
['a', ('>',2), 'c'])
|
||||
|
||||
def test_quoting(self):
|
||||
self.assertEqual(self.lex(""" 'a' """),
|
||||
['a'])
|
||||
self.assertEqual(self.lex(""" "hello\\"world" """),
|
||||
['hello"world'])
|
||||
self.assertEqual(self.lex(""" "hello\\'world" """),
|
||||
["hello\\'world"])
|
||||
self.assertEqual(self.lex(""" "hello\\\\world" """),
|
||||
["hello\\world"])
|
||||
self.assertEqual(self.lex(""" he"llo wo"rld """),
|
||||
["hello world"])
|
||||
self.assertEqual(self.lex(""" a\\ b a\\\\b """),
|
||||
["a b", "a\\b"])
|
||||
self.assertEqual(self.lex(""" "" "" """),
|
||||
["", ""])
|
||||
self.assertEqual(self.lex(""" a\\ b """, win32Escapes = True),
|
||||
['a\\', 'b'])
|
||||
|
||||
class TestShParse(unittest.TestCase):
|
||||
def parse(self, str):
|
||||
return ShParser(str).parse()
|
||||
|
||||
def test_basic(self):
|
||||
self.assertEqual(self.parse('echo hello'),
|
||||
Pipeline([Command(['echo', 'hello'], [])], False))
|
||||
self.assertEqual(self.parse('echo ""'),
|
||||
Pipeline([Command(['echo', ''], [])], False))
|
||||
self.assertEqual(self.parse("""echo -DFOO='a'"""),
|
||||
Pipeline([Command(['echo', '-DFOO=a'], [])], False))
|
||||
self.assertEqual(self.parse('echo -DFOO="a"'),
|
||||
Pipeline([Command(['echo', '-DFOO=a'], [])], False))
|
||||
|
||||
def test_redirection(self):
|
||||
self.assertEqual(self.parse('echo hello > c'),
|
||||
Pipeline([Command(['echo', 'hello'],
|
||||
[((('>'),), 'c')])], False))
|
||||
self.assertEqual(self.parse('echo hello > c >> d'),
|
||||
Pipeline([Command(['echo', 'hello'], [(('>',), 'c'),
|
||||
(('>>',), 'd')])], False))
|
||||
self.assertEqual(self.parse('a 2>&1'),
|
||||
Pipeline([Command(['a'], [(('>&',2), '1')])], False))
|
||||
|
||||
def test_pipeline(self):
|
||||
self.assertEqual(self.parse('a | b'),
|
||||
Pipeline([Command(['a'], []),
|
||||
Command(['b'], [])],
|
||||
False))
|
||||
|
||||
self.assertEqual(self.parse('a | b | c'),
|
||||
Pipeline([Command(['a'], []),
|
||||
Command(['b'], []),
|
||||
Command(['c'], [])],
|
||||
False))
|
||||
|
||||
def test_list(self):
|
||||
self.assertEqual(self.parse('a ; b'),
|
||||
Seq(Pipeline([Command(['a'], [])], False),
|
||||
';',
|
||||
Pipeline([Command(['b'], [])], False)))
|
||||
|
||||
self.assertEqual(self.parse('a & b'),
|
||||
Seq(Pipeline([Command(['a'], [])], False),
|
||||
'&',
|
||||
Pipeline([Command(['b'], [])], False)))
|
||||
|
||||
self.assertEqual(self.parse('a && b'),
|
||||
Seq(Pipeline([Command(['a'], [])], False),
|
||||
'&&',
|
||||
Pipeline([Command(['b'], [])], False)))
|
||||
|
||||
self.assertEqual(self.parse('a || b'),
|
||||
Seq(Pipeline([Command(['a'], [])], False),
|
||||
'||',
|
||||
Pipeline([Command(['b'], [])], False)))
|
||||
|
||||
self.assertEqual(self.parse('a && b || c'),
|
||||
Seq(Seq(Pipeline([Command(['a'], [])], False),
|
||||
'&&',
|
||||
Pipeline([Command(['b'], [])], False)),
|
||||
'||',
|
||||
Pipeline([Command(['c'], [])], False)))
|
||||
|
||||
self.assertEqual(self.parse('a; b'),
|
||||
Seq(Pipeline([Command(['a'], [])], False),
|
||||
';',
|
||||
Pipeline([Command(['b'], [])], False)))
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
Reference in New Issue
Block a user