blob: cfd9c1d99f062aa835ec72d93c9a40d31d03aed2 [file] [log] [blame]
import sys
import unittest
from infra_libs import command_line
@unittest.skipUnless(sys.platform == 'linux2', 'Only supported on Linux')
class CommandLineTest(unittest.TestCase):
@classmethod
def read_cmdline(cls): # pragma: no cover
with open('/proc/self/cmdline') as fh:
return fh.read()
@classmethod
def setUpClass(cls): # pragma: no cover
if sys.platform != 'linux2':
return
cls.original = cls.read_cmdline()
cls.original_len = len(cls.original)
@classmethod
def tearDownClass(cls): # pragma: no cover
if sys.platform != 'linux2':
return
command_line.set_command_line(cls.original)
def test_set(self): # pragma: no cover
# Shorter than the original.
cmdline = 'x' * (self.original_len - 1)
command_line.set_command_line(cmdline)
self.assertEqual(cmdline, self.read_cmdline().rstrip('\0'))
# Same length as the original.
cmdline = 'x' * self.original_len
command_line.set_command_line(cmdline)
self.assertEqual(cmdline[:-1], self.read_cmdline().rstrip('\0'))
# Longer than the original.
cmdline = 'x' * (self.original_len + 1)
command_line.set_command_line(cmdline)
self.assertEqual(cmdline[:-2], self.read_cmdline().rstrip('\0'))