177f0c6c143bb062d1a976fcf710d8007f008d6edmbligh# This requires aio headers to build. 24b089663460063b638124ff665f38d2fe7427648mbligh# Should work automagically out of deps now. 377f0c6c143bb062d1a976fcf710d8007f008d6edmbligh 40afbb6369aa5aa9a75ea67dd9e95ec4b21c0c181jadmanski# NOTE - this should also have the ability to mount a filesystem, 577f0c6c143bb062d1a976fcf710d8007f008d6edmbligh# run the tests, unmount it, then fsck the filesystem 634d0117395947490dbeed9bb1368bb360919266dmblighimport os 753da18eddf69243ca175d9a4603cba5b55300726mblighfrom autotest_lib.client.bin import test, utils 89f8579202a07a123a3f73c1eb2211d8fe9553b11mbligh 9aa0e569908d465a9f4958fca7a35e6a21e92e286mbligh 1077f0c6c143bb062d1a976fcf710d8007f008d6edmblighclass fsx(test.test): 11bfcf5706bb05eb508c8764c2e90df79c2b21f643Gwendal Grignou """Test to run fsx-linux.""" 120afbb6369aa5aa9a75ea67dd9e95ec4b21c0c181jadmanski version = 3 130afbb6369aa5aa9a75ea67dd9e95ec4b21c0c181jadmanski 14c5ddfd1f71caef9ec0c84c53ef7db42fcdc33e1cmbligh def initialize(self): 15c5ddfd1f71caef9ec0c84c53ef7db42fcdc33e1cmbligh self.job.require_gcc() 16c5ddfd1f71caef9ec0c84c53ef7db42fcdc33e1cmbligh 17c5ddfd1f71caef9ec0c84c53ef7db42fcdc33e1cmbligh 180afbb6369aa5aa9a75ea67dd9e95ec4b21c0c181jadmanski # http://www.zip.com.au/~akpm/linux/patches/stuff/ext3-tools.tar.gz 190afbb6369aa5aa9a75ea67dd9e95ec4b21c0c181jadmanski def setup(self, tarball = 'ext3-tools.tar.gz'): 208b352856e457518fde6bab947d8fcdb3f53a39admbligh self.tarball = utils.unmap_url(self.bindir, tarball, self.tmpdir) 2153da18eddf69243ca175d9a4603cba5b55300726mbligh utils.extract_tarball_to_dir(self.tarball, self.srcdir) 220afbb6369aa5aa9a75ea67dd9e95ec4b21c0c181jadmanski 230afbb6369aa5aa9a75ea67dd9e95ec4b21c0c181jadmanski os.chdir(self.srcdir) 24bfcf5706bb05eb508c8764c2e90df79c2b21f643Gwendal Grignou for p in ['0001-Minor-fixes-to-PAGE_SIZE-handling.patch', 25bfcf5706bb05eb508c8764c2e90df79c2b21f643Gwendal Grignou '0002-Enable-cross-compiling-for-fsx.patch', 26bfcf5706bb05eb508c8764c2e90df79c2b21f643Gwendal Grignou '0003-Fix-Link-Options.patch']: 27bfcf5706bb05eb508c8764c2e90df79c2b21f643Gwendal Grignou utils.system('patch -p1 < ../%s' % p) 28bfcf5706bb05eb508c8764c2e90df79c2b21f643Gwendal Grignou utils.system('make fsx-linux') 290afbb6369aa5aa9a75ea67dd9e95ec4b21c0c181jadmanski 300afbb6369aa5aa9a75ea67dd9e95ec4b21c0c181jadmanski 315664cff2355c18e3b694ff4e76ca621d32b0d0afjadmanski def run_once(self, dir=None, repeat=100000): 325664cff2355c18e3b694ff4e76ca621d32b0d0afjadmanski args = '-N %s' % repeat 335664cff2355c18e3b694ff4e76ca621d32b0d0afjadmanski if not dir: 345664cff2355c18e3b694ff4e76ca621d32b0d0afjadmanski dir = self.tmpdir 355664cff2355c18e3b694ff4e76ca621d32b0d0afjadmanski os.chdir(dir) 36bfcf5706bb05eb508c8764c2e90df79c2b21f643Gwendal Grignou utils.system(' '.join([os.path.join(self.srcdir,'/fsx-linux'), 37bfcf5706bb05eb508c8764c2e90df79c2b21f643Gwendal Grignou args, 'poo'])) 38