CORRECTNESS [[total]]
---------------------
-Small files (< 63 kB)
- sm-create: create small file, verify initialization to zeros
- sm-full: write small file in single system call, reread to verify
- sm-seq-block: write small file one block at a time, reread to verify
- sm-seq-random: write small file a random amount at a time, reread to verify
- sm-random: write small file randomly, reread randomly to verify
+Small files (<= 63 kB)
+ -1 sm-create: create small file, verify initialization to zeros
+ -1 sm-full: write small file in single system call, reread to verify
+ -1 sm-seq-block: write small file one block at a time, reread to verify
+ -1 sm-seq-random: write small file a random amount at a time, reread & verify
+ -1 sm-random: write small file randomly, reread randomly to verify
Score: /5
-Large files (>= 63 kB)
- lg-create: create large file, verify initialization to zeros
- lg-full: write large file in single system call, reread to verify
- lg-seq-block: write large file one block at a time, reread to verify
- lg-seq-random: write large file a random amount at a time, reread to verify
- lg-random: write large file randomly, reread randomly to verify
-Score: /
+Large files (> 63 kB)
+ -1 lg-create: create large file, verify initialization to zeros
+ -1 lg-full: write large file in single system call, reread to verify
+ -1 lg-seq-block: write large file one block at a time, reread to verify
+ -1 lg-seq-random: write large file a random amount at a time, reread & verify
+ -1 lg-random: write large file randomly, reread randomly to verify
+Score: /5
File growth
- grow-create: create empty file, verify
- grow-seq-sm: extend empty file sequentially to small size, verify
- grow-seq-lg: extend empty file sequentially to large size, verify
- grow-sparse: create empty file, seek to 128 kB, write byte, verify zeroing
- grow-dir-sm: create 20 small files in a directory,
- grow-dir-lg: create 200 small files in a directory
-Score: /
+ -1 grow-create: create empty file, verify
+ -1 grow-seq-sm: extend empty file sequentially to small size, verify
+ -1 grow-seq-lg: extend empty file sequentially to large size, verify
+ -1 grow-file-size: filesize must return proper value as file grows
+ -1 grow-tell: tell must return proper value as file grows
+ -1 grow-sparse: create empty file, seek past 64 kB, write byte, verify zeros
+ -1 grow-too-big: create empty file, seek past 2 GB, write byte, can't crash
+ -1 grow-root-sm: create 20 small files in root directory
+ -1 grow-root-lg: create 50 small files in root directory
+ -1 grow-dir-lg: create subdirectory, create 50 small files in it
+ -1 grow-two-files: growing two files alternately must work
+Score: /11
Subdirectories and file management
- dir-mkdir: create directory and chdir into it
- dir-rmdir: create directory, remove directory, chdir into it must now fail
- dir-hier: create deep hierarchy of directories
- dir-rel-mkdir: mkdir /a, chdir /a, mkdir b, chdir b, create /a/b/c, open c
- dir-rel-open: mkdir /a, mkdir /a/b, create /a/b/c, chdir /a, open b/c
- dir-rel-rmdir: mkdir a, mkdir /a/b, chdir a, rmdir b
- dir-rel-remove: mkdir a, create /a/b, chdir a, remove b
- dir-abs-mkdir: mkdir /a, chdir /a, mkdir /b, create /b/c, chdir /b, open c
- dir-lsdir: lsdir must do something reasonable
-Score: /
+ -1 dir-mkdir: mkdir a, create a/b, chdir a, open b
+ -1 dir-rmdir: create directory, remove directory, chdir into it must now fail
+ -1 dir-mk-vine: create deep chain of directories, create & check files inside
+ -1 dir-rm-vine: create and remove deep chain of directories
+ -1 dir-mk-tree: create wide, deep directory tree, create & check files in it
+ -1 dir-rm-tree: create and remove wide, deep directory tree
+ -1 dir-lsdir: lsdir must work
+ -1 dir-rm-cwd: removing current directory must not crash
+ -1 dir-rm-cwd-cd: if current directory removable, then cd'ing to it must fail
+ -1 dir-rm-parent: removing current directory and then its parent can't crash
+ -1 dir-rm-root: must not be able to remove root directory
+ -1 dir-over-file: creating a directory named after an existing file must fail
+ -1 dir-under-file: creating file named after existing directory must fail
+ -1 dir-empty-name: creating file named after the empty string must fail
+ -1 dir-open: if directories openable as files, writing them must fail
+Score: /15
Synchronization
- syn-remove: read and write deleted file
- syn-mult-read: one process writes file, many read from it
- syn-mult-write: many processes write different parts of file, then verify
-Score: /
+ -1 syn-remove: read and write deleted file
+ -1 syn-read: one process writes file then many read it
+ -1 syn-write: many processes write different parts of file, then verify
+ -1 syn-rw: one process extends file sequentially as many read it sequentially
+Score: /4