On Fri, 2010-05-07 at 07:03 -0700, Martin Bligh wrote: > LGTM Thank you, applied:
http://autotest.kernel.org/changeset/4484 > On Fri, May 7, 2010 at 6:53 AM, Lucas Meneghel Rodrigues <[email protected]> > wrote: > > * Makefile: Get rid of -static flag on disktest's Makefile (fixing > > Subrata's > > problem with it running inside F12 KVM guests) > > * C program: Fix a compiler warning by using the right format string on > > printf > > * Remove an unneeded Makefile at the top of the test's module > > * Python module: Added docstring documentation > > * Python module: Made tests for 'is None' explicitly as per coding style > > * Python module: Log the disktest commands we're running > > > > Signed-off-by: Lucas Meneghel Rodrigues <[email protected]> > > --- > > client/tests/disktest/Makefile | 2 - > > client/tests/disktest/disktest.py | 62 > > ++++++++++++++++++++++++++-------- > > client/tests/disktest/src/Makefile | 2 +- > > client/tests/disktest/src/disktest.c | 4 +- > > 4 files changed, 51 insertions(+), 19 deletions(-) > > delete mode 100644 client/tests/disktest/Makefile > > > > diff --git a/client/tests/disktest/Makefile b/client/tests/disktest/Makefile > > deleted file mode 100644 > > index b93f66c..0000000 > > --- a/client/tests/disktest/Makefile > > +++ /dev/null > > @@ -1,2 +0,0 @@ > > -disktest: disktest.c > > - cc disktest.c -Wall -D_FILE_OFFSET_BITS=64 -D _GNU_SOURCE -static > > -o disktest > > diff --git a/client/tests/disktest/disktest.py > > b/client/tests/disktest/disktest.py > > index f432dc3..c46a2b6 100644 > > --- a/client/tests/disktest/disktest.py > > +++ b/client/tests/disktest/disktest.py > > @@ -4,50 +4,84 @@ from autotest_lib.client.common_lib import error > > > > > > class disktest(test.test): > > - version = 1 > > + """ > > + Autotest module for disktest. > > + > > + Pattern test of the disk, using unique signatures for each block and > > each > > + iteration of the test. Designed to check for data corruption issues in > > the > > + disk and disk controller. > > + > > + It writes 50MB/s of 500KB size ops. > > + > > + @author: Martin Bligh ([email protected]) > > + """ > > + version = 2 > > preserve_srcdir = True > > > > def setup(self): > > + """ > > + Compiles disktest. > > + """ > > os.chdir(self.srcdir) > > utils.system('make clean') > > utils.system('make') > > > > > > def initialize(self): > > + """ > > + Verifies if we have gcc to compile disktest. > > + """ > > self.job.require_gcc() > > > > > > def test_one_disk_chunk(self, disk, chunk): > > - logging.info("testing %d MB files on %s in %d MB memory", > > - self.chunk_mb, disk, self.memory_mb) > > - cmd = "%s/disktest -m %d -f %s/testfile.%d -i -S" % \ > > - (self.srcdir, self.chunk_mb, disk, chunk) > > + """ > > + Tests one part of the disk by spawning a disktest instance. > > + > > + @param disk: Directory (usually a mountpoint). > > + @param chunk: Portion of the disk used. > > + """ > > + logging.info("Testing %d MB files on %s in %d MB memory, chunk %s", > > + self.chunk_mb, disk, self.memory_mb, chunk) > > + cmd = ("%s/disktest -m %d -f %s/testfile.%d -i -S" % > > + (self.srcdir, self.chunk_mb, disk, chunk)) > > + logging.debug("Running '%s'", cmd) > > p = subprocess.Popen(cmd, shell=True) > > return(p.pid) > > > > > > - def execute(self, disks = None, gigabytes = None, > > - chunk_mb = utils.memtotal() / 1024): > > - os.chdir(self.srcdir) > > + def run_once(self, disks=None, gigabytes=None, chunk_mb=None): > > + """ > > + Runs one iteration of disktest. > > > > - if not disks: > > + @param disks: List of directories (usually mountpoints) to be > > passed > > + to the test. > > + @param gigabytes: Disk space that will be used for the test to run. > > + @param chunk_mb: Size of the portion of the disk used to run the > > test. > > + Cannot be larger than the total amount of free RAM. > > + """ > > + os.chdir(self.srcdir) > > + if chunk_mb is None: > > + chunk_mb = utils.memtotal() / 1024 > > + if disks is None: > > disks = [self.tmpdir] > > - if not gigabytes: > > - free = 100 # cap it at 100GB by default > > + if gigabytes is None: > > + free = 100 # cap it at 100GB by default > > for disk in disks: > > free = min(utils.freespace(disk) / 1024**3, free) > > gigabytes = free > > - logging.info("resizing to %s GB", gigabytes) > > + logging.info("Resizing to %s GB", gigabytes) > > sys.stdout.flush() > > > > self.chunk_mb = chunk_mb > > self.memory_mb = utils.memtotal()/1024 > > if self.memory_mb > chunk_mb: > > - e_msg = "Too much RAM (%dMB) for this test to work" % > > self.memory_mb > > - raise error.TestError(e_msg) > > + raise error.TestError("Too much RAM (%dMB) for this test to > > work" % > > + self.memory_mb) > > > > chunks = (1024 * gigabytes) / chunk_mb > > > > + logging.info("Total of disk chunks that will be used: %s", chunks) > > for i in range(chunks): > > pids = [] > > for disk in disks: > > diff --git a/client/tests/disktest/src/Makefile > > b/client/tests/disktest/src/Makefile > > index 40c4d7e..8a20c57 100644 > > --- a/client/tests/disktest/src/Makefile > > +++ b/client/tests/disktest/src/Makefile > > @@ -1,4 +1,4 @@ > > -CFLAGS = -O2 -Wall -D_FILE_OFFSET_BITS=64 -D _GNU_SOURCE -static > > +CFLAGS = -O2 -Wall -D_FILE_OFFSET_BITS=64 -D _GNU_SOURCE > > TARGET = disktest > > > > > > diff --git a/client/tests/disktest/src/disktest.c > > b/client/tests/disktest/src/disktest.c > > index c7659e9..d2dbec7 100644 > > --- a/client/tests/disktest/src/disktest.c > > +++ b/client/tests/disktest/src/disktest.c > > @@ -116,13 +116,13 @@ int verify_block(int fd, unsigned int block, struct > > pattern *buffer, char *err) > > } > > } > > if (sector_errors) > > - printf("Block %d (from %d to %d) sector %08x has > > wrong sector number %08x (%d/%d) filename %s %s\n", > > + printf("Block %d (from %d to %d) sector %08x has > > wrong sector number %08x (%d/%lu) filename %s %s\n", > > block, start_block, > > start_block+blocks, > > sector, read_sector, > > sector_errors, PATTERN_PER_SECTOR, > > filename, err); > > if (signature_errors) > > - printf("Block %d (from %d to %d) sector %08x > > signature is %08x should be %08x (%d/%d) filename %s %s\n", > > + printf("Block %d (from %d to %d) sector %08x > > signature is %08x should be %08x (%d/%lu) filename %s %s\n", > > block, start_block, start_block+blocks, > > sector, read_signature, signature, > > signature_errors, PATTERN_PER_SECTOR, > > -- > > 1.7.0.1 > > > > _______________________________________________ Autotest mailing list [email protected] http://test.kernel.org/cgi-bin/mailman/listinfo/autotest
