mirror of
https://gitlab.com/buildroot.org/buildroot.git
synced 2026-09-08 23:51:08 -09:00
support/testing/utils: check patch on stdin to get-developers
Since commitd10d22221f(utils/get-developers: read patch from stdin when it's not a tty), get-developers accepts to read a patch fromn its stdin when it is not a tty. Add a test for this. Reported-by: Julien Olivain <ju.o@free.fr> Signed-off-by: Yann E. MORIN <yann.morin@orange.com> Signed-off-by: Julien Olivain <ju.o@free.fr> (cherry picked from commit29e1af8430) Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This commit is contained in:
committed by
Peter Korsgaard
parent
f022e05a26
commit
915aba9b25
@@ -13,26 +13,32 @@ import unittest
|
||||
import infra
|
||||
|
||||
|
||||
def call_script(args, env, cwd):
|
||||
def call_script(args, env, cwd, stdin_data=None):
|
||||
"""Call a script and return stdout and stderr as lists and the exit code."""
|
||||
# We need stdin to be a tty, not just a pipe or whatever
|
||||
m_tty, s_tty = os.openpty()
|
||||
if stdin_data is None:
|
||||
# We need stdin to be a tty, not just a pipe or whatever
|
||||
m_tty, s_tty = os.openpty()
|
||||
com_opts = dict()
|
||||
else:
|
||||
s_tty = subprocess.PIPE
|
||||
com_opts = dict([("input", stdin_data)])
|
||||
proc = subprocess.Popen(args, cwd=cwd,
|
||||
stdin=s_tty,
|
||||
stdout=subprocess.PIPE,
|
||||
stderr=subprocess.PIPE, env=env,
|
||||
universal_newlines=True)
|
||||
out, err = proc.communicate()
|
||||
os.close(s_tty)
|
||||
os.close(m_tty)
|
||||
out, err = proc.communicate(**com_opts)
|
||||
if stdin_data is None:
|
||||
os.close(s_tty)
|
||||
os.close(m_tty)
|
||||
return out.splitlines(), err.splitlines(), proc.returncode
|
||||
|
||||
|
||||
def call_get_developers(cmd, args, env, cwd, developers_content):
|
||||
def call_get_developers(cmd, args, env, cwd, developers_content, stdin_data=None):
|
||||
"""Call get-developers overrinding the default DEVELOPERS file."""
|
||||
with tempfile.NamedTemporaryFile(buffering=0) as developers_file:
|
||||
developers_file.write(developers_content)
|
||||
return call_script([cmd, "-d", developers_file.name] + args, env, cwd)
|
||||
return call_script([cmd, "-d", developers_file.name] + args, env, cwd, stdin_data)
|
||||
|
||||
|
||||
class TestGetDevelopers(unittest.TestCase):
|
||||
@@ -174,3 +180,9 @@ class TestGetDevelopers(unittest.TestCase):
|
||||
self.assertIn('git send-email --to buildroot@buildroot.org --cc "dev1"', out)
|
||||
self.assertEqual(rc, 0)
|
||||
self.assertEqual(len(err), 0)
|
||||
with open(abs_file, "r") as fd:
|
||||
patch_data = fd.read()
|
||||
out, err, rc = call_get_developers("./utils/get-developers", [], self.WITH_EMPTY_PATH, topdir, developers, patch_data)
|
||||
self.assertIn('git send-email --to buildroot@buildroot.org --cc "dev1"', out)
|
||||
self.assertEqual(rc, 0)
|
||||
self.assertEqual(len(err), 0)
|
||||
|
||||
Reference in New Issue
Block a user