blob: 40c0df2940c10b5bf5c78dd19499fe8d66f2feb4 [file] [log] [blame]
mbligh34d01172008-06-05 16:26:31 +00001import signal, os
mbligh53da18e2009-01-05 21:13:26 +00002from autotest_lib.client.bin import utils, test
mblighe7a170f2006-12-05 07:48:18 +00003
4class bash_shared_mapping(test.test):
jadmanski0afbb632008-06-06 21:10:57 +00005 version = 3
mblighe7a170f2006-12-05 07:48:18 +00006
jadmanski0afbb632008-06-06 21:10:57 +00007 # http://www.zip.com.au/~akpm/linux/patches/stuff/ext3-tools.tar.gz
8 def setup(self, tarball = 'ext3-tools.tar.gz'):
mbligh8b352852008-06-07 01:07:08 +00009 self.tarball = utils.unmap_url(self.bindir, tarball, self.tmpdir)
mbligh53da18e2009-01-05 21:13:26 +000010 utils.extract_tarball_to_dir(self.tarball, self.srcdir)
mblighe7a170f2006-12-05 07:48:18 +000011
jadmanski0afbb632008-06-06 21:10:57 +000012 os.chdir(self.srcdir)
13 utils.system('make bash-shared-mapping usemem')
mblighe7a170f2006-12-05 07:48:18 +000014
15
jadmanskie80d4712008-10-03 16:15:59 +000016 def initialize(self):
17 self.job.require_gcc()
18
19
jadmanski0afbb632008-06-06 21:10:57 +000020 def execute(self, testdir = None, iterations = 10000):
21 if not testdir:
22 testdir = self.tmpdir
23 os.chdir(testdir)
24 file = os.path.join(testdir, 'foo')
25 # Want to use 3/4 of all memory for each of
26 # bash-shared-mapping and usemem
mbligh53da18e2009-01-05 21:13:26 +000027 kilobytes = (3 * utils.memtotal()) / 4
mblighe7a170f2006-12-05 07:48:18 +000028
jadmanski0afbb632008-06-06 21:10:57 +000029 # Want two usemem -m megabytes in parallel in background.
30 pid = [None, None]
31 usemem = os.path.join(self.srcdir, 'usemem')
32 args = ('usemem', '-N', '-m', '%d' % (kilobytes / 1024))
33 # print_to_tty ('2 x ' + ' '.join(args))
34 for i in (0,1):
35 pid[i] = os.spawnv(os.P_NOWAIT, usemem, args)
mblighe7a170f2006-12-05 07:48:18 +000036
jadmanski0afbb632008-06-06 21:10:57 +000037 cmd = "%s/bash-shared-mapping %s %d -t %d -n %d" % \
mbligh312362c2008-07-03 16:48:23 +000038 (self.srcdir, file, kilobytes,
mbligh53da18e2009-01-05 21:13:26 +000039 utils.count_cpus(), iterations)
jadmanski0afbb632008-06-06 21:10:57 +000040 os.system(cmd)
mblighe7a170f2006-12-05 07:48:18 +000041
mbligh8b352852008-06-07 01:07:08 +000042 for i in (0, 1):
jadmanski0afbb632008-06-06 21:10:57 +000043 os.kill(pid[i], signal.SIGKILL)