aboutsummaryrefslogtreecommitdiffstats
path: root/src/tests/klaar/pfs-writer.c
diff options
context:
space:
mode:
authorklaar36 <klas.arvidsson@liu.se>2016-05-09 18:10:23 +0200
committerklaar36 <klas.arvidsson@liu.se>2016-05-09 18:10:23 +0200
commitc4e42961e885612ca2b84dd0246d09b86aad2b97 (patch)
tree3fd5665708f3ddf6a534d1dde53a3773b58d4013 /src/tests/klaar/pfs-writer.c
parentc71baf223e8de56d8cef3814952d704987125ce2 (diff)
downloadpintos-rs-c4e42961e885612ca2b84dd0246d09b86aad2b97.tar.gz
pfs test
Diffstat (limited to 'src/tests/klaar/pfs-writer.c')
-rw-r--r--src/tests/klaar/pfs-writer.c52
1 files changed, 52 insertions, 0 deletions
diff --git a/src/tests/klaar/pfs-writer.c b/src/tests/klaar/pfs-writer.c
new file mode 100644
index 0000000..34d9685
--- /dev/null
+++ b/src/tests/klaar/pfs-writer.c
@@ -0,0 +1,52 @@
+/* Part of pfs.c suite.
+
+ Write on the disk. Each time the buffer is filled with same
+ character. Different character every time!
+ */
+
+#include <syscall.h>
+#include <stdio.h>
+#include <string.h>
+
+#include "../lib.h"
+#include "pfs.h"
+
+static void fill_buffer(char* buf, int size, char c)
+{
+ for (int i = 0; i < size; i++)
+ {
+ buf[i] = c;
+ }
+}
+
+char buffer[BIG];
+
+int main (int argc, char *argv[])
+{
+ test_name = argv[0];
+ quiet = true;
+
+ if (argc != 3 || strlen(argv[1]) != 1 || strlen(argv[2]) != 1)
+ return 1;
+
+ char start = argv[1][0];
+ char end = argv[2][0];
+
+ char c = start;
+ for (int i = 0; i < TIMES; ++i)
+ {
+ fill_buffer(buffer, BIG, c);
+
+ int id = open ("file.1");
+ CHECK ( id > 1, "open \"file.1\"");
+ int bytes = write(id, buffer, BIG);
+ CHECK ( bytes == BIG, "write \"file.1\"");
+ close(id);
+
+ c = c + 1;
+
+ if ( c > end )
+ c = start;
+ }
+ return 0;
+}