CORRECTNESS [[total]] --------------------- 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) -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 -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 -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 -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