mirror of
https://gitlab.com/buildroot.org/buildroot.git
synced 2026-09-19 16:40:46 -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
|
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."""
|
"""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
|
if stdin_data is None:
|
||||||
m_tty, s_tty = os.openpty()
|
# 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,
|
proc = subprocess.Popen(args, cwd=cwd,
|
||||||
stdin=s_tty,
|
stdin=s_tty,
|
||||||
stdout=subprocess.PIPE,
|
stdout=subprocess.PIPE,
|
||||||
stderr=subprocess.PIPE, env=env,
|
stderr=subprocess.PIPE, env=env,
|
||||||
universal_newlines=True)
|
universal_newlines=True)
|
||||||
out, err = proc.communicate()
|
out, err = proc.communicate(**com_opts)
|
||||||
os.close(s_tty)
|
if stdin_data is None:
|
||||||
os.close(m_tty)
|
os.close(s_tty)
|
||||||
|
os.close(m_tty)
|
||||||
return out.splitlines(), err.splitlines(), proc.returncode
|
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."""
|
"""Call get-developers overrinding the default DEVELOPERS file."""
|
||||||
with tempfile.NamedTemporaryFile(buffering=0) as developers_file:
|
with tempfile.NamedTemporaryFile(buffering=0) as developers_file:
|
||||||
developers_file.write(developers_content)
|
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):
|
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.assertIn('git send-email --to buildroot@buildroot.org --cc "dev1"', out)
|
||||||
self.assertEqual(rc, 0)
|
self.assertEqual(rc, 0)
|
||||||
self.assertEqual(len(err), 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