mirror of
https://gitlab.com/buildroot.org/buildroot.git
synced 2026-08-08 08:30:47 -09:00
support/testing/utils: check patch on stdin to get-developers
Since commit d10d22221f (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>
This commit is contained in:
committed by
Julien Olivain
parent
3778f704cd
commit
29e1af8430
@@ -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