main.lua 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. PROJECT = "os_test"
  2. VERSION = "1.0.0"
  3. local function test_os_remove()
  4. log.info("os.remove", "测试开始")
  5. -- 先创建一个测试文件
  6. local testFile = "/test_remove.txt"
  7. local f = io.open(testFile, "w")
  8. if f then
  9. f:write("test content")
  10. f:close()
  11. log.info("os.remove", "测试文件创建成功")
  12. else
  13. log.error("os.remove", "无法创建测试文件")
  14. return
  15. end
  16. -- 测试删除文件
  17. local result, err = os.remove(testFile)
  18. if result then
  19. log.info("os.remove", "文件删除成功")
  20. else
  21. log.error("os.remove", "文件删除失败", err)
  22. end
  23. -- 测试删除不存在的文件
  24. result, err = os.remove("/nonexistent.txt")
  25. if not result then
  26. log.info("os.remove", "删除不存在文件返回预期结果", err)
  27. end
  28. end
  29. -- 测试 os.rename() 文件重命名功能
  30. local function test_os_rename()
  31. log.info("os.rename", "测试开始")
  32. -- 创建源文件
  33. local srcFile = "/test_rename_src.txt"
  34. local f = io.open(srcFile, "w")
  35. if f then
  36. f:write("test content")
  37. f:close()
  38. log.info("os.rename", "源文件创建成功")
  39. else
  40. log.error("os.rename", "无法创建源文件")
  41. return
  42. end
  43. -- 目标文件路径
  44. local dstFile = "/test_rename_dst.txt"
  45. -- 测试重命名
  46. local result, err = os.rename(srcFile, dstFile)
  47. if result then
  48. log.info("os.rename", "文件重命名成功")
  49. -- 验证新文件是否存在
  50. if io.open(dstFile, "r") then
  51. log.info("os.rename", "验证新文件存在")
  52. os.remove(dstFile)
  53. end
  54. else
  55. log.error("os.rename", "文件重命名失败", err)
  56. os.remove(srcFile)
  57. end
  58. -- 测试重命名不存在的文件
  59. result, err = os.rename("/nonexistent_src.txt", "/nonexistent_dst.txt")
  60. if not result then
  61. log.info("os.rename", "重命名不存在文件返回预期结果", err)
  62. end
  63. end
  64. -- 测试 os.date() 和 os.time() 功能
  65. local function test_os_date_time()
  66. log.info("os.date/time", "测试开始")
  67. -- 获取当前时间戳
  68. local currentTimestamp = os.time()
  69. log.info("os.time", "当前时间戳", currentTimestamp)
  70. -- 测试 os.date() 各种格式
  71. log.info("os.date", "默认格式本地时间", os.date())
  72. log.info("os.date", "默认格式UTC时间", os.date("!%c"))
  73. log.info("os.date", "自定义格式本地时间", os.date("%Y-%m-%d %H:%M:%S"))
  74. log.info("os.date", "自定义格式UTC时间", os.date("!%Y-%m-%d %H:%M:%S"))
  75. -- 测试特定时间
  76. local testTime = {year=2000, mon=1, day=1, hour=0, min=0, sec=0}
  77. local testTimestamp = os.time(testTime)
  78. log.info("os.time", "2000-01-01 00:00:00 时间戳", testTimestamp)
  79. log.info("os.date", "格式化特定时间", os.date("!%Y-%m-%d %H:%M:%S", testTimestamp))
  80. -- 测试获取时间表
  81. local localTimeTable = os.date("*t")
  82. log.info("os.date", "本地时间表", json.encode(localTimeTable))
  83. local utcTimeTable = os.date("!*t")
  84. log.info("os.date", "UTC时间表", json.encode(utcTimeTable))
  85. -- 测试 os.difftime()
  86. local time1 = os.time()
  87. sys.wait(1000) -- 等待1秒
  88. local time2 = os.time()
  89. local diff = os.difftime(time2, time1)
  90. log.info("os.difftime", "时间差(应该约等于1)", diff)
  91. end
  92. -- 主测试函数
  93. local function test_all()
  94. log.info("OS接口测试", "===== 开始测试 =====")
  95. test_os_remove()
  96. test_os_rename()
  97. test_os_date_time()
  98. log.info("OS接口测试", "===== 测试完成 =====")
  99. end
  100. -- 启动测试
  101. sys.taskInit(function()
  102. sys.wait(1000) -- 等待系统初始化
  103. test_all()
  104. end)
  105. -- 用户代码已结束---------------------------------------------
  106. -- 结尾总是这一句
  107. sys.run()
  108. -- sys.run()之后后面不要加任何语句!!!!!