From: Stanislav kholmanskikh <[email protected]>

Signed-off-by: Stanislav kholmanskikh <[email protected]>
---
 include/test.h      |   10 +++++++
 lib/tst_fill_file.c |   67 +++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 77 insertions(+), 0 deletions(-)
 create mode 100644 lib/tst_fill_file.c

diff --git a/include/test.h b/include/test.h
index f294b16..d9975a1 100644
--- a/include/test.h
+++ b/include/test.h
@@ -229,6 +229,16 @@ void tst_run_cmd(void (cleanup_fn)(void),
                const char *stdout_path,
                const char *stderr_path);
 
+/* lib/tst_fill_file.c
+ *
+ * Creates/ovewrites a file with specified pattern
+ * @path: path to file
+ * @pattern: pattern
+ * @bs: block size
+ * @bcount: blocks amount
+ */
+int tst_fill_file(const char *path, char pattern, size_t bs, size_t bcount);
+
 #ifdef TST_USE_COMPAT16_SYSCALL
 #define TCID_BIT_SUFFIX "_16"
 #elif  TST_USE_NEWER64_SYSCALL
diff --git a/lib/tst_fill_file.c b/lib/tst_fill_file.c
new file mode 100644
index 0000000..6613330
--- /dev/null
+++ b/lib/tst_fill_file.c
@@ -0,0 +1,67 @@
+/*
+ * Copyright (c) 2013 Oracle and/or its affiliates. All Rights Reserved.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it would be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write the Free Software Foundation,
+ * Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ * Author: Stanislav Kholmanskikh <[email protected]>
+ *
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <fcntl.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+#include "test.h"
+
+int tst_fill_file(const char *path, char pattern, size_t bs, size_t bcount)
+{
+       int fd, counter;
+       char *buf;
+
+       fd = open(path, O_CREAT|O_WRONLY|O_TRUNC, S_IRUSR|S_IWUSR);
+       if (fd < 0)
+               return -1;
+
+       /* Filling a memory buffer with provided pattern */
+       buf = malloc(bs);
+       if (buf == NULL) {
+               close(fd);
+
+               return -1;
+       }
+
+       for (counter = 0; counter < bs; counter++)
+               buf[counter] = pattern;
+
+       /* Filling the file */
+       for (counter = 0; counter < bcount; counter++)
+               if (write(fd, buf, bs) != bs) {
+                       free(buf);
+                       close(fd);
+                       unlink(path);
+
+                       return -1;
+               }
+
+
+       free(buf);
+       if (close(fd) < 0)
+               return -1;
+
+       return 0;
+}
-- 
1.7.1


------------------------------------------------------------------------------
See everything from the browser to the database with AppDynamics
Get end-to-end visibility with application monitoring from AppDynamics
Isolate bottlenecks and diagnose root cause in seconds.
Start your free trial of AppDynamics Pro today!
http://pubads.g.doubleclick.net/gampad/clk?id=48808831&iu=/4140/ostg.clktrk
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to