From 874ace4aa8770e47ebde603a2c088bba5f32964d Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Wed, 1 Aug 2007 21:11:46 +0000 Subject: Copy the portage.spawn() test from trunk. svn path=/main/branches/2.1.2/; revision=7539 --- tests/portage/test_spawn.py | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 tests/portage/test_spawn.py (limited to 'tests') diff --git a/tests/portage/test_spawn.py b/tests/portage/test_spawn.py new file mode 100644 index 000000000..66e8f9ea7 --- /dev/null +++ b/tests/portage/test_spawn.py @@ -0,0 +1,36 @@ +# Copyright 1998-2007 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +import errno, os, sys +from portage.tests import TestCase + +class SpawnTestCase(TestCase): + + def testLogfile(self): + from portage import settings, spawn + from tempfile import mkstemp + logfile = None + try: + fd, logfile = mkstemp() + os.close(fd) + null_fd = os.open('/dev/null', os.O_RDWR) + test_string = 2 * "blah blah blah\n" + spawn("echo -n '%s'" % test_string, settings, logfile=logfile, + fd_pipes={0:sys.stdin.fileno(), 1:null_fd, 2:null_fd}) + os.close(null_fd) + f = open(logfile, 'r') + log_content = f.read() + f.close() + # When logging passes through a pty, it's lines will be separated + # by '\r\n', so use splitlines before comparing results. + self.assertEqual(test_string.splitlines(), + log_content.splitlines()) + finally: + if logfile: + try: + os.unlink(logfile) + except EnvironmentError, e: + if e.errno != errno.ENOENT: + raise + del e -- cgit v1.2.3-1-g7c22