test_entries.sh 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  1. #!/bin/bash
  2. set -eu
  3. # Note: These tests are intended for 512 byte inline size at different
  4. # inline sizes they should still pass, but won't be testing anything
  5. echo "=== Directory tests ==="
  6. function read_file {
  7. cat << TEST
  8. size = $2;
  9. lfs_file_open(&lfs, &file[0], "$1", LFS_O_RDONLY) => 0;
  10. lfs_file_read(&lfs, &file[0], rbuffer, size) => size;
  11. memcmp(rbuffer, wbuffer, size) => 0;
  12. lfs_file_close(&lfs, &file[0]) => 0;
  13. TEST
  14. }
  15. function write_file {
  16. cat << TEST
  17. size = $2;
  18. lfs_file_open(&lfs, &file[0], "$1",
  19. LFS_O_WRONLY | LFS_O_CREAT | LFS_O_TRUNC) => 0;
  20. memset(wbuffer, 'c', size);
  21. lfs_file_write(&lfs, &file[0], wbuffer, size) => size;
  22. lfs_file_close(&lfs, &file[0]) => 0;
  23. TEST
  24. }
  25. echo "--- Entry grow test ---"
  26. tests/test.py << TEST
  27. lfs_format(&lfs, &cfg) => 0;
  28. lfs_mount(&lfs, &cfg) => 0;
  29. $(write_file "hi0" 20)
  30. $(write_file "hi1" 20)
  31. $(write_file "hi2" 20)
  32. $(write_file "hi3" 20)
  33. $(read_file "hi1" 20)
  34. $(write_file "hi1" 200)
  35. $(read_file "hi0" 20)
  36. $(read_file "hi1" 200)
  37. $(read_file "hi2" 20)
  38. $(read_file "hi3" 20)
  39. lfs_unmount(&lfs) => 0;
  40. TEST
  41. echo "--- Entry shrink test ---"
  42. tests/test.py << TEST
  43. lfs_format(&lfs, &cfg) => 0;
  44. lfs_mount(&lfs, &cfg) => 0;
  45. $(write_file "hi0" 20)
  46. $(write_file "hi1" 200)
  47. $(write_file "hi2" 20)
  48. $(write_file "hi3" 20)
  49. $(read_file "hi1" 200)
  50. $(write_file "hi1" 20)
  51. $(read_file "hi0" 20)
  52. $(read_file "hi1" 20)
  53. $(read_file "hi2" 20)
  54. $(read_file "hi3" 20)
  55. lfs_unmount(&lfs) => 0;
  56. TEST
  57. echo "--- Entry spill test ---"
  58. tests/test.py << TEST
  59. lfs_format(&lfs, &cfg) => 0;
  60. lfs_mount(&lfs, &cfg) => 0;
  61. $(write_file "hi0" 200)
  62. $(write_file "hi1" 200)
  63. $(write_file "hi2" 200)
  64. $(write_file "hi3" 200)
  65. $(read_file "hi0" 200)
  66. $(read_file "hi1" 200)
  67. $(read_file "hi2" 200)
  68. $(read_file "hi3" 200)
  69. lfs_unmount(&lfs) => 0;
  70. TEST
  71. echo "--- Entry push spill test ---"
  72. tests/test.py << TEST
  73. lfs_format(&lfs, &cfg) => 0;
  74. lfs_mount(&lfs, &cfg) => 0;
  75. $(write_file "hi0" 200)
  76. $(write_file "hi1" 20)
  77. $(write_file "hi2" 200)
  78. $(write_file "hi3" 200)
  79. $(read_file "hi1" 20)
  80. $(write_file "hi1" 200)
  81. $(read_file "hi0" 200)
  82. $(read_file "hi1" 200)
  83. $(read_file "hi2" 200)
  84. $(read_file "hi3" 200)
  85. lfs_unmount(&lfs) => 0;
  86. TEST
  87. echo "--- Entry push spill two test ---"
  88. tests/test.py << TEST
  89. lfs_format(&lfs, &cfg) => 0;
  90. lfs_mount(&lfs, &cfg) => 0;
  91. $(write_file "hi0" 200)
  92. $(write_file "hi1" 20)
  93. $(write_file "hi2" 200)
  94. $(write_file "hi3" 200)
  95. $(write_file "hi4" 200)
  96. $(read_file "hi1" 20)
  97. $(write_file "hi1" 200)
  98. $(read_file "hi0" 200)
  99. $(read_file "hi1" 200)
  100. $(read_file "hi2" 200)
  101. $(read_file "hi3" 200)
  102. $(read_file "hi4" 200)
  103. lfs_unmount(&lfs) => 0;
  104. TEST
  105. echo "--- Entry drop test ---"
  106. tests/test.py << TEST
  107. lfs_format(&lfs, &cfg) => 0;
  108. lfs_mount(&lfs, &cfg) => 0;
  109. $(write_file "hi0" 200)
  110. $(write_file "hi1" 200)
  111. $(write_file "hi2" 200)
  112. $(write_file "hi3" 200)
  113. lfs_remove(&lfs, "hi1") => 0;
  114. lfs_stat(&lfs, "hi1", &info) => LFS_ERR_NOENT;
  115. $(read_file "hi0" 200)
  116. $(read_file "hi2" 200)
  117. $(read_file "hi3" 200)
  118. lfs_remove(&lfs, "hi2") => 0;
  119. lfs_stat(&lfs, "hi2", &info) => LFS_ERR_NOENT;
  120. $(read_file "hi0" 200)
  121. $(read_file "hi3" 200)
  122. lfs_remove(&lfs, "hi3") => 0;
  123. lfs_stat(&lfs, "hi3", &info) => LFS_ERR_NOENT;
  124. $(read_file "hi0" 200)
  125. lfs_remove(&lfs, "hi0") => 0;
  126. lfs_stat(&lfs, "hi0", &info) => LFS_ERR_NOENT;
  127. lfs_unmount(&lfs) => 0;
  128. TEST
  129. echo "--- Create too big ---"
  130. tests/test.py << TEST
  131. lfs_format(&lfs, &cfg) => 0;
  132. lfs_mount(&lfs, &cfg) => 0;
  133. memset(buffer, 'm', 200);
  134. buffer[200] = '\0';
  135. size = 400;
  136. lfs_file_open(&lfs, &file[0], (char*)buffer,
  137. LFS_O_WRONLY | LFS_O_CREAT | LFS_O_TRUNC) => 0;
  138. memset(wbuffer, 'c', size);
  139. lfs_file_write(&lfs, &file[0], wbuffer, size) => size;
  140. lfs_file_close(&lfs, &file[0]) => 0;
  141. size = 400;
  142. lfs_file_open(&lfs, &file[0], (char*)buffer, LFS_O_RDONLY) => 0;
  143. lfs_file_read(&lfs, &file[0], rbuffer, size) => size;
  144. memcmp(rbuffer, wbuffer, size) => 0;
  145. lfs_file_close(&lfs, &file[0]) => 0;
  146. lfs_unmount(&lfs) => 0;
  147. TEST
  148. echo "--- Resize too big ---"
  149. tests/test.py << TEST
  150. lfs_format(&lfs, &cfg) => 0;
  151. lfs_mount(&lfs, &cfg) => 0;
  152. memset(buffer, 'm', 200);
  153. buffer[200] = '\0';
  154. size = 40;
  155. lfs_file_open(&lfs, &file[0], (char*)buffer,
  156. LFS_O_WRONLY | LFS_O_CREAT | LFS_O_TRUNC) => 0;
  157. memset(wbuffer, 'c', size);
  158. lfs_file_write(&lfs, &file[0], wbuffer, size) => size;
  159. lfs_file_close(&lfs, &file[0]) => 0;
  160. size = 40;
  161. lfs_file_open(&lfs, &file[0], (char*)buffer, LFS_O_RDONLY) => 0;
  162. lfs_file_read(&lfs, &file[0], rbuffer, size) => size;
  163. memcmp(rbuffer, wbuffer, size) => 0;
  164. lfs_file_close(&lfs, &file[0]) => 0;
  165. size = 400;
  166. lfs_file_open(&lfs, &file[0], (char*)buffer,
  167. LFS_O_WRONLY | LFS_O_CREAT | LFS_O_TRUNC) => 0;
  168. memset(wbuffer, 'c', size);
  169. lfs_file_write(&lfs, &file[0], wbuffer, size) => size;
  170. lfs_file_close(&lfs, &file[0]) => 0;
  171. size = 400;
  172. lfs_file_open(&lfs, &file[0], (char*)buffer, LFS_O_RDONLY) => 0;
  173. lfs_file_read(&lfs, &file[0], rbuffer, size) => size;
  174. memcmp(rbuffer, wbuffer, size) => 0;
  175. lfs_file_close(&lfs, &file[0]) => 0;
  176. lfs_unmount(&lfs) => 0;
  177. TEST
  178. echo "--- Results ---"
  179. tests/stats.py