teuthology.feed_many_stdins_and_close(conf_fp, writes)
run.wait(writes)
-def get_valgrind_args(testdir, name, preamble, v, exit_on_first_error=True):
+def get_valgrind_args(testdir, name, preamble, v, exit_on_first_error=True, cd=True):
"""
Build a command line for running valgrind.
'--exit-on-first-error=yes',
'--error-exitcode=42',
])
- args = [
- 'cd', testdir,
- run.Raw('&&'),
- ] + preamble + extra_args + v
+ args = []
+ if cd:
+ args += ['cd', testdir, run.Raw('&&')]
+ args += preamble + extra_args + v
log.debug('running %s under valgrind with args %s', name, args)
return args
stderr = StringIO()
try:
self.client_remote.run(args=script, timeout=(15*60),
- cwd=self.test_dir, stderr=StringIO())
+ stderr=StringIO())
except CommandFailedError:
if 'file exists' not in stderr.getvalue().lower():
raise
fuse_cmd += mntopts
fuse_cmd.append(self.hostfs_mntpt)
- cwd = self.test_dir
if self.client_config.get('valgrind') is not None:
run_cmd = get_valgrind_args(
self.test_dir,
'client.{id}'.format(id=self.client_id),
run_cmd,
self.client_config.get('valgrind'),
+ cd=False
)
- cwd = None # get_valgrind_args chdir for us
netns_prefix = ['sudo', 'nsenter',
'--net=/var/run/netns/{0}'.format(self.netns_name)]
mountcmd_stdout, mountcmd_stderr = StringIO(), StringIO()
self.fuse_daemon = self.client_remote.run(
args=run_cmd,
- cwd=cwd,
logger=log.getChild('ceph-fuse.{id}'.format(id=self.client_id)),
stdin=run.PIPE,
stdout=mountcmd_stdout,
'--',
self.hostfs_mntpt,
],
- cwd=self.test_dir,
stdout=StringIO(),
stderr=StringIO(),
wait=False,
stderr = StringIO()
self.client_remote.run(args=['sudo', 'chmod', '1777',
self.hostfs_mntpt],
- timeout=(15*60), cwd=self.test_dir,
+ timeout=(15*60),
stderr=stderr, omit_sudo=False)
break
except run.CommandFailedError:
raise
def _mountpoint_exists(self):
- return self.client_remote.run(args=["ls", "-d", self.hostfs_mntpt], check_status=False, cwd=self.test_dir, timeout=(15*60)).exitstatus == 0
+ return self.client_remote.run(args=["ls", "-d", self.hostfs_mntpt], check_status=False, timeout=(15*60)).exitstatus == 0
def umount(self, cleanup=True):
"""
stderr = StringIO()
self.client_remote.run(args=['sudo', 'fusermount', '-u',
self.hostfs_mntpt],
- cwd=self.test_dir, stderr=stderr,
+ stderr=stderr,
timeout=(30*60), omit_sudo=False)
except run.CommandFailedError:
if "mountpoint not found" in stderr.getvalue():