filewrite.c 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #include <u.h>
  2. #include <libc.h>
  3. #define NUM_FILES 100
  4. #define FILE_SIZE 3000
  5. const char *contents = "Test File";
  6. char* dir;
  7. void
  8. main(int argc, char **argv){
  9. char filename[1024];
  10. int i,j,filesize;
  11. Dir *resultFile;
  12. if (argc < 2){
  13. print("Please specify a directory\n");
  14. print("FAIL\n");
  15. exits("FAIL");
  16. }
  17. dir = argv[1];
  18. for (i = 0; i < NUM_FILES; i++){
  19. sprint(filename, "%s/file%d", dir, i);
  20. print("creating %s\n", filename);
  21. int fd = create(filename, OWRITE, 0777);
  22. if (fd < 0) {
  23. print("FAIL could not open file %s %r\n", filename);
  24. exits("FAIL");
  25. }
  26. filesize = 0;
  27. for(j = 0; j < FILE_SIZE; j++) {
  28. filesize += strlen(contents);
  29. int ret = write(fd, contents, strlen(contents));
  30. if (ret != strlen(contents)) {
  31. print("FAIL write failed ret=%d\n", ret);
  32. exits("FAIL");
  33. }
  34. }
  35. close(fd);
  36. resultFile = dirstat(filename);
  37. if (resultFile->length != filesize) {
  38. print("FAIL file size %s incorrect expected %d actual %d\n", filename, filesize, resultFile->length);
  39. exits("FAIL");
  40. }
  41. free(resultFile);
  42. }
  43. for (i = 0; i < NUM_FILES; i++){
  44. sprint(filename, "%s/file%d", dir, i);
  45. if (remove(filename) < 0){
  46. print("FAIL unable to remove file\n");
  47. exits("FAIL");
  48. }
  49. }
  50. print("PASS\n");
  51. exits("PASS");
  52. }