diff options
author | Zac Medico <zmedico@gentoo.org> | 2007-09-08 07:01:39 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2007-09-08 07:01:39 +0000 |
commit | ef3d4aa1eefd0798a49372903415f7aa779bf718 (patch) | |
tree | f6d84e1c8f13def1362e55d7784a7b04cb7667eb | |
parent | 3fb006dccb20a74d301d45812f6410ce57a9991f (diff) | |
download | portage-ef3d4aa1eefd0798a49372903415f7aa779bf718.tar.gz portage-ef3d4aa1eefd0798a49372903415f7aa779bf718.tar.bz2 portage-ef3d4aa1eefd0798a49372903415f7aa779bf718.zip |
Bug #190268 - Avoid unwanted sandbox violations in src_test().
- Allow SANDBOX_* variables to pass through.
- Don't try to create an sandbox instance inside a test case in order to
interaction with SANDBOX_* variables in src_test(). (trunk r7759)
svn path=/main/branches/2.1.2/; revision=7760
-rw-r--r-- | pym/portage.py | 3 | ||||
-rw-r--r-- | tests/portage/test_spawn.py | 10 |
2 files changed, 10 insertions, 3 deletions
diff --git a/pym/portage.py b/pym/portage.py index a4fb9a9e5..28e54af7b 100644 --- a/pym/portage.py +++ b/pym/portage.py @@ -1313,8 +1313,7 @@ class config: # Blacklist vars that could interfere with portage internals. for blacklisted in "CATEGORY", "PKGUSE", "PORTAGE_CONFIGROOT", \ - "ROOT", "SANDBOX_DENY", "SANDBOX_PREDICT", "SANDBOX_READ", \ - "SANDBOX_WRITE": + "ROOT": for cfg in self.lookuplist: cfg.pop(blacklisted, None) del blacklisted, cfg diff --git a/tests/portage/test_spawn.py b/tests/portage/test_spawn.py index a2a2571c7..5a8010621 100644 --- a/tests/portage/test_spawn.py +++ b/tests/portage/test_spawn.py @@ -16,8 +16,16 @@ class SpawnTestCase(TestCase): os.close(fd) null_fd = os.open('/dev/null', os.O_RDWR) test_string = 2 * "blah blah blah\n" + # Test cases are unique because they run inside src_test() which + # may or may not already be running within a sandbox. Interaction + # with SANDBOX_* variables may trigger unwanted sandbox violations + # that are only reproducible with certain combinations of sandbox, + # usersandbox, and userpriv FEATURES. Attempts to filter SANDBOX_* + # variables can interfere with a currently running sandbox + # instance. Therefore, use free=1 here to avoid potential + # interactions (see bug #190268). spawn("echo -n '%s'" % test_string, settings, logfile=logfile, - fd_pipes={0:sys.stdin.fileno(), 1:null_fd, 2:null_fd}) + free=1, fd_pipes={0:sys.stdin.fileno(), 1:null_fd, 2:null_fd}) os.close(null_fd) f = open(logfile, 'r') log_content = f.read() |