Files
scan-build-mirror/tests/unit/test_libscanbuild.py
2017-04-27 19:57:31 +10:00

35 lines
1.4 KiB
Python

# -*- coding: utf-8 -*-
# The LLVM Compiler Infrastructure
#
# This file is distributed under the University of Illinois Open Source
# License. See LICENSE.TXT for details.
import libscanbuild as sut
import unittest
class ShellSplitTest(unittest.TestCase):
def test_regular_commands(self):
self.assertEqual([], sut.shell_split(""))
self.assertEqual(['clang', '-c', 'file.c'],
sut.shell_split('clang -c file.c'))
self.assertEqual(['clang', '-c', 'file.c'],
sut.shell_split('clang -c file.c'))
self.assertEqual(['clang', '-c', 'file.c'],
sut.shell_split('clang -c\tfile.c'))
def test_quoted_commands(self):
self.assertEqual(['clang', '-c', 'file.c'],
sut.shell_split('"clang" -c "file.c"'))
self.assertEqual(['clang', '-c', 'file.c'],
sut.shell_split("'clang' -c 'file.c'"))
def test_shell_escaping(self):
self.assertEqual(['clang', '-c', 'file.c', '-Dv=space value'],
sut.shell_split('clang -c file.c -Dv="space value"'))
self.assertEqual(['clang', '-c', 'file.c', '-Dv=\"quote'],
sut.shell_split('clang -c file.c -Dv=\\\"quote'))
self.assertEqual(['clang', '-c', 'file.c', '-Dv=(word)'],
sut.shell_split('clang -c file.c -Dv=\(word\)'))