[Ocfs2-test-devel] [PATCH 07/59] ocfs2-test: fix in splice test
Junxiao Bi
junxiao.bi at oracle.com
Sun Sep 13 19:43:53 PDT 2015
From: Tiger Yang <tiger.yang at oracle.com>
Signed-off-by: Tiger Yang <tiger.yang at oracle.com>
Signed-off-by: Junxiao Bi <junxiao.bi at oracle.com>
---
programs/splice/splice_test.py | 5 +++--
programs/splice/splice_write.c | 21 +++++++++++++++------
2 files changed, 18 insertions(+), 8 deletions(-)
diff --git a/programs/splice/splice_test.py b/programs/splice/splice_test.py
index a5dca4c..c3637b0 100644
--- a/programs/splice/splice_test.py
+++ b/programs/splice/splice_test.py
@@ -70,8 +70,9 @@ def SpliceWrite():
from os import access, F_OK
if access(os.path.join(directory, filename), F_OK) ==1:
os.system('rm -fr ' + os.path.join(directory, filename))
- os.system('cat %s | %s %s' % (os.path.join('/tmp', filename), \
- SPLICEWRITE_BIN, os.path.join(directory, filename)))
+ os.system('cat %s | %s %s %i' % (os.path.join('/tmp', filename), \
+ SPLICEWRITE_BIN, os.path.join(directory, filename), \
+ os.stat(os.path.join('/tmp', filename)).st_size))
TEMPMD5SUM=getoutput('%s %s|cut -f1 -d" "' % \
(MD5SUM, os.path.join(directory, filename)))
if BASEMD5SUM == TEMPMD5SUM:
diff --git a/programs/splice/splice_write.c b/programs/splice/splice_write.c
index e273fbc..4f08369 100644
--- a/programs/splice/splice_write.c
+++ b/programs/splice/splice_write.c
@@ -11,7 +11,8 @@
int main(int argc, char *argv[])
{
int fd;
- int slen;
+ long int slen = 0;
+ long int to_write = 1000000;
if (argc < 2) {
printf("Usage: ls | ./splice_write out\n");
@@ -22,11 +23,19 @@ int main(int argc, char *argv[])
printf("open file failed.\n");
exit(-1);
}
- slen = splice(STDIN_FILENO, NULL, fd, NULL, 10000000, 0);
- if (slen < 0)
- fprintf(stderr, "splice failed.\n");
- else
- fprintf(stderr, "spliced length = %d\n",slen);
+ if (argc == 3)
+ to_write = atol(argv[2]);
+ while (to_write > 0) {
+ slen = splice(STDIN_FILENO, NULL, fd, NULL, to_write, 0);
+ if (slen < 0)
+ fprintf(stderr, "splice failed.\n");
+ else if (slen == 0)
+ break;
+ else {
+ to_write -= slen;
+ fprintf(stderr, "spliced length = %ld\n",slen);
+ }
+ }
close(fd);
if (slen < 0)
exit(-1);
--
1.7.9.5
More information about the Ocfs2-test-devel
mailing list