mirror of
https://github.com/rizsotto/scan-build.git
synced 2025-12-16 12:00:08 +01:00
35 lines
1.4 KiB
Python
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\)'))
|