svn commit: r226309 - projects/stress2/testcases/lockf2
Peter Holm
pho at FreeBSD.org
Wed Oct 12 15:59:29 UTC 2011
Author: pho
Date: Wed Oct 12 15:59:29 2011
New Revision: 226309
URL: http://svn.freebsd.org/changeset/base/226309
Log:
Added reservation of disk space. Added check for test done.
Modified:
projects/stress2/testcases/lockf2/lockf2.c
Modified: projects/stress2/testcases/lockf2/lockf2.c
==============================================================================
--- projects/stress2/testcases/lockf2/lockf2.c Wed Oct 12 15:56:15 2011 (r226308)
+++ projects/stress2/testcases/lockf2/lockf2.c Wed Oct 12 15:59:29 2011 (r226309)
@@ -50,13 +50,39 @@ __FBSDID("$FreeBSD$");
char file[128];
int fd;
+int freespace;
int
setup(int nb)
{
+ int64_t bl;
+ int64_t in;
+ int64_t reserve_bl;
+ int64_t reserve_in;
int i;
char buf[1024];
+ if (nb == 0) {
+ getdf(&bl, &in);
+
+ /* Resource requirements: */
+ reserve_in = 1 * op->incarnations + 2;
+ reserve_bl = 1064960 * op->incarnations + 2048;
+ freespace = (reserve_bl <= bl && reserve_in <= in);
+ if (!freespace)
+ reserve_bl = reserve_in = 0;
+
+ if (op->verbose > 1)
+ printf("lockf2(incarnations=%d). Free(%jdk, %jd), reserve(%jdk, %jd)\n",
+ op->incarnations, bl/1024, in, reserve_bl/1024, reserve_in);
+ reservedf(reserve_bl, reserve_in);
+ putval(freespace);
+ } else {
+ freespace = getval();
+ }
+ if (!freespace)
+ _exit (0);
+
sprintf(file, "lockf.%d", getpid());
if ((fd = open(file,O_CREAT | O_TRUNC | O_RDWR, 0600)) == -1)
err(1, "creat(%s)", file);
@@ -84,7 +110,7 @@ test(void)
if ((fd = open(file, O_RDWR, 0600)) == -1)
err(1, "open(%s)", file);
- for (i = 0; i < 1024; i++) {
+ for (i = 0; i < 1024 && done_testing == 0; i++) {
pos = random_int(0, 1024 * 1024 - 1);
if (lseek(fd, pos, SEEK_SET) == -1)
err(1, "lseek");
More information about the svn-src-projects
mailing list