testFs2sysperform.lua 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. --- 模块功能:文件操作功能测试.
  2. -- @author openLuat
  3. -- @module fs.testFs
  4. -- @license MIT
  5. -- @copyright openLuat
  6. -- @release 2018.03.27
  7. module(...,package.seeall)
  8. local USER_DIR1,USER_DIR11 = "/dir1","/dir11"
  9. local USER_DIR2,USER_DIR21,USER_DIR211 = "/dir2","/dir21","/dir211"
  10. local USER_DIR3 = "/dir3"
  11. local rt = true
  12. --[[该demo提供四种接口,第一种readfile(filename)读文件,第二种writevala(filename,value),写文件内容,附加模式,
  13. 第三种function writevalw(filename,value),写文件内容,覆盖模式,第四种deletefile(filename),删除文件。--]]
  14. --[[
  15. 函数名:readfile(filename)
  16. 功能:打开所输入文件名的文件,并输出储存在里面额内容
  17. 参数:文件名
  18. 返回值:无 ]]
  19. local function readfile(filename)--打开指定文件并输出内容
  20. local filehandle=io.open(filename,"r")--第一个参数是文件名,第二个是打开方式,'r'读模式,'w'写模式,对数据进行覆盖,'a'附加模式,'b'加在模式后面表示以二进制形式打开
  21. if filehandle then --判断文件是否存在
  22. local fileval=filehandle:read("*all")--读出文件内容
  23. if fileval then
  24. print(filename) --如果文件存在,打印文件内容
  25. filehandle:close()--关闭文件
  26. else
  27. print("The file is empty")--文件不存在
  28. end
  29. else
  30. print("文件不存在或文件输入格式不正确") --打开失败
  31. end
  32. end
  33. --[[
  34. 函数名: writevala(filename,value)
  35. 功能:向输入的文件中添加内容,内容附加在原文件内容之后
  36. 参数:第一个文件名,第二个需要添加的内容
  37. 返回值:无 --]]
  38. local function writevala(filename,value)--在指定文件中添加内容,函数名最后一位就是打开的模式
  39. local filehandle = io.open(filename,"a+")--第一个参数是文件名,后一个是打开模式'r'读模式,'w'写模式,对数据进行覆盖,'a'附加模式,'b'加在模式后面表示以二进制形式打开
  40. if filehandle then
  41. rt = filehandle:write(value)--写入要写入的内容
  42. print("writevala rt",rt)
  43. filehandle:close()
  44. else
  45. print("文件不存在或文件输入格式不正确") --打开失败
  46. end
  47. end
  48. --[[
  49. 函数名:writevalw(filename,value)
  50. 功能:向输入文件中添加内容,新添加的内容会覆盖掉原文件中的内容
  51. 参数:同上
  52. 返回值:无 --]]
  53. local function writevalw(filename,value)--在指定文件中添加内容
  54. local filehandle = io.open(filename,"w")--第一个参数是文件名,后一个是打开模式'r'读模式,'w'写模式,对数据进行覆盖,'a'附加模式,'b'加在模式后面表示以二进制形式打开
  55. if filehandle then
  56. rt = filehandle:write(value)--写入要写入的内容
  57. print("writevalw rt",rt)
  58. filehandle:close()
  59. else
  60. print("文件不存在或文件输入格式不正确") --打开失败
  61. end
  62. end
  63. --[[函数名:deletefile(filename)
  64. 功能:删除指定文件中的所有内容
  65. 参数:文件名
  66. 返回值:无 --]]
  67. local function deletefile(filename)--删除指定文件夹中的所有内容
  68. local filehandle = io.open(filename,"w")
  69. if filehandle then
  70. filehandle:write()--写入空的内容
  71. print("successfully delete")
  72. filehandle:close()
  73. else
  74. print("文件不存在或文件输入格式不正确") --打开失败
  75. end
  76. end
  77. --打印文件系统的剩余空间
  78. print("get_fs_free_size: "..rtos.get_fs_free_size().." Bytes")
  79. --成功创建一个目录(目录已存在,也返回true表示创建成功)
  80. local function dir1test()
  81. if rtos.make_dir(USER_DIR1) then
  82. if rtos.make_dir(USER_DIR11) then
  83. readfile(USER_DIR11.."/file11.txt")
  84. writevala(USER_DIR11.."/file11.txt","file11 test")
  85. readfile(USER_DIR11.."/file11.txt")
  86. writevalw(USER_DIR11.."/file11.txt","file11 test2")
  87. deletefile(USER_DIR11.."/file11.txt")
  88. readfile(USER_DIR11.."/file11.txt")
  89. readfile(USER_DIR11.."/file12.txt")
  90. writevala(USER_DIR11.."/file12.txt","file11 test")
  91. readfile(USER_DIR11.."/file12.txt")
  92. writevalw(USER_DIR11.."/file12.txt","file11 test2")
  93. deletefile(USER_DIR11.."/file12.txt")
  94. readfile(USER_DIR11.."/file12.txt")
  95. end
  96. end
  97. end
  98. local function dir2test()
  99. if rtos.make_dir(USER_DIR2) then
  100. if rtos.make_dir(USER_DIR21) then
  101. rtos.make_dir(USER_DIR211)
  102. readfile(USER_DIR21.."/file21.txt")
  103. writevala(USER_DIR21.."/file21.txt","file21 test")
  104. readfile(USER_DIR21.."/file21.txt")
  105. writevalw(USER_DIR21.."/file21.txt","file21 test2")
  106. deletefile(USER_DIR21.."/file21.txt")
  107. readfile(USER_DIR21.."/file21.txt")
  108. readfile(USER_DIR21.."/file3.txt")
  109. writevala(USER_DIR21.."/file3.txt","file3 test")
  110. readfile(USER_DIR21.."/file3.txt")
  111. writevalw(USER_DIR21.."/file3.txt","file3 test2")
  112. deletefile(USER_DIR21.."/file3.txt")
  113. readfile(USER_DIR21.."/file3.txt")
  114. end
  115. end
  116. end
  117. local function file1test()
  118. readfile("/file1.txt")
  119. writevala("/file1.txt","file1 test")
  120. readfile("/file1.txt")
  121. writevalw("/file1.txt","file1 test2")
  122. deletefile("/file1.txt")
  123. readfile("/file1.txt")
  124. end
  125. local function file3test()
  126. readfile("/file3.txt")
  127. writevala("/file3.txt","file3 test")
  128. readfile("/file3.txt")
  129. writevalw("/file3.txt","file3 test2")
  130. deletefile("/file3.txt")
  131. readfile("/file3.txt")
  132. end
  133. local function file4test()
  134. readfile("/file4.txt")
  135. writevala("/file4.txt","file4 test")
  136. readfile("/file4.txt")
  137. writevalw("/file4.txt","file4 test2")
  138. deletefile("/file4.txt")
  139. readfile("/file4.txt")
  140. end
  141. local function dir3test()
  142. if rtos.make_dir(USER_DIR3) then
  143. print("MAKE DIR3 SUCC")
  144. else
  145. print("MAKE DIR3 FAIL")
  146. end
  147. end
  148. local cnt,tick1,tick2,tick3,size,size1,perc = 0
  149. local str512 = "12345678901234567890123456789012345678901234567890123456789012345678901234567890abcdefghkkll111122222ffssssss33334444455566666777812345678901234567890123456789012345678901234567890123456789012345678901234567890abcdefghkkll111122222ffssssss33334444455566666777812345678901234567890123456789012345678901234567890123456789A012345678901234567890abcdefghkkll111122222ffssssss33334444455566666777812345678901234567890123456789012345678901234567890123456789012345678901234567890abcdefghkkll111122222ffssssss333344444555666667778"
  150. local str = str512..str512..str512..str512
  151. size1 = rtos.get_fs_free_size()
  152. local function test()
  153. size = rtos.get_fs_free_size()
  154. --perc = cnt*2*100/962
  155. perc = size*100/size1
  156. print("get_fs_free_size: "..size.." Bytes",size1,perc)
  157. if rt then
  158. cnt = cnt + 1
  159. end
  160. print("cnt: ",cnt)
  161. tick1 = rtos.tick()
  162. readfile("/file1.txt")
  163. tick2 = rtos.tick()
  164. print("readfile perc tick",perc,tick2 - tick1)
  165. writevala("/file"..cnt..".txt",str)
  166. tick3 = rtos.tick()
  167. print("writevala perc tick",perc,tick3 - tick2)
  168. if perc == 50 then
  169. tick1 = rtos.tick()
  170. for i = 1,10 do
  171. readfile("/file1.txt")
  172. end
  173. tick2 = rtos.tick()
  174. print("50% readfile",tick2 - tick1)
  175. for i = 1,10 do
  176. writevalw("/file1.txt",str)
  177. end
  178. tick3 = rtos.tick()
  179. print("50% writevalw",tick3 - tick2)
  180. end
  181. end
  182. sys.timerLoopStart(test,1000)