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 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: / 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-file-size: filesize must return proper value as file grows grow-tell: tell must return proper value as file grows grow-sparse: create empty file, seek past 64 kB, write byte, verify zeroing grow-too-big: create empty file, seek past 2 GB, write byte, must not crash grow-root-sm: create 20 small files in root directory grow-root-lg: create 50 small files in root directory grow-dir-lg: create subdirectory, create 50 small files in it grow-two-files: growing two files alternately must work Score: / Subdirectories and file management dir-mkdir: mkdir a, create a/b, chdir a, open b dir-rmdir: create directory, remove directory, chdir into it must now fail dir-mk-vine: create deep chain of directories, create & check files in them dir-rm-vine: create and remove deep chain of directories dir-mk-tree: create wide, deep directory tree, create & check files in it dir-rm-tree: create and remove wide, deep directory tree dir-lsdir: lsdir must work dir-rm-cwd: removing current directory must not crash dir-rm-cwd-cd: if current directory removable, then cd'ing to it must fail dir-rm-parent: removing current directory and then its parent must not crash dir-rm-root: must not be able to remove root directory dir-over-file: creating a directory named after an existing file must fail dir-under-file: creating a file named after an existing directory must fail dir-empty-name: creating a file named after the empty string must fail dir-open: if directories can be opened as files, then writing them must fail Score: / Synchronization syn-remove: read and write deleted file syn-read: one process writes file then many read it syn-write: many processes write different parts of file, then verify syn-rw: one process extends file sequentially as many read it sequentially Score: /