summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pym/portage/tests/__init__.py3
-rw-r--r--pym/portage/tests/ebuild/__init__.py3
-rw-r--r--pym/portage/tests/ebuild/test_spawn.py36
3 files changed, 41 insertions, 1 deletions
diff --git a/pym/portage/tests/__init__.py b/pym/portage/tests/__init__.py
index 60a19de6c..e3702e08e 100644
--- a/pym/portage/tests/__init__.py
+++ b/pym/portage/tests/__init__.py
@@ -7,7 +7,8 @@ import os, sys, time, unittest
import portage.tests
def main():
- testDirs = ["bin", "util","versions", "dep", "xpak", "env/config"]
+ testDirs = ["bin", "dep", "ebuild",
+ "env/config", "util", "versions", "xpak"]
suite = unittest.TestSuite()
basedir = os.path.dirname(__file__)
for mydir in testDirs:
diff --git a/pym/portage/tests/ebuild/__init__.py b/pym/portage/tests/ebuild/__init__.py
new file mode 100644
index 000000000..d67b0cd85
--- /dev/null
+++ b/pym/portage/tests/ebuild/__init__.py
@@ -0,0 +1,3 @@
+# Copyright 1998-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
diff --git a/pym/portage/tests/ebuild/test_spawn.py b/pym/portage/tests/ebuild/test_spawn.py
new file mode 100644
index 000000000..66e8f9ea7
--- /dev/null
+++ b/pym/portage/tests/ebuild/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