/red-system/tests/run-all.r

http://github.com/dockimbel/Red · R · 159 lines · 133 code · 26 blank · 0 comment · 6 complexity · 4a892737ff51fde14d1a4a9fb91b9187 MD5 · raw file

  1. REBOL [
  2. Title: "Builds and Runs the Red/System Tests"
  3. File: %run-all.r
  4. Author: "Peter W A Wood"
  5. Version: 0.7.0
  6. License: "BSD-3 - https://github.com/dockimbel/Red/blob/master/BSD-3-License.txt"
  7. ]
  8. make-if-needed?: func [
  9. auto-test-file [file!]
  10. make-file [file!]
  11. /lib-test
  12. /local
  13. stored-length ; the length of the make... .r file used to build auto tests
  14. stored-file-length
  15. digit
  16. number
  17. rule
  18. ][
  19. stored-file-length: does [
  20. parse/all read auto-test-file rule
  21. stored-length
  22. ]
  23. digit: charset [#"0" - #"9"]
  24. number: [some digit]
  25. rule: [
  26. thru ";make-length:"
  27. copy stored-length number (stored-length: to integer! stored-length)
  28. to end
  29. ]
  30. if not exists? make-file [return]
  31. if any [
  32. not exists? auto-test-file
  33. stored-file-length <> length? read make-file
  34. (modified? make-file) > (modified? auto-test-file)
  35. ][
  36. print ["Making" auto-test-file " - it will take a while"]
  37. do make-file
  38. ]
  39. ]
  40. ;; supress script messages
  41. store-quiet-mode: system/options/quiet
  42. system/options/quiet: true
  43. do %../../quick-test/quick-test.r
  44. qt/tests-dir: system/script/path
  45. ;; make auto files if needed
  46. make-if-needed? %source/units/auto-tests/byte-auto-test.reds
  47. %source/units/make-byte-auto-test.r
  48. make-if-needed? %source/units/auto-tests/integer-auto-test.reds
  49. %source/units/make-integer-auto-test.r
  50. make-if-needed? %source/units/auto-tests/maths-auto-test.reds
  51. %source/units/make-maths-auto-test.r
  52. ;; make lib-test file if needed
  53. lib-test-len: length? read %source/units/lib-test-source.reds
  54. save-len: either exists? %source/units/len-lib-test.dat [
  55. load %source/units/len-lib-test.dat
  56. ][
  57. -1
  58. ]
  59. if any [
  60. not exists? %source/units/auto-tests/lib-auto-test.reds
  61. lib-test-len <> save-len
  62. ][
  63. save %source/units/len-lib-test.dat lib-test-len
  64. print "Making lib-test-auto.reds - shouldn't take long"
  65. do %source/units/make-lib-auto-test.r
  66. ]
  67. ;; run the tests
  68. print rejoin ["Quick-Test v" qt/version]
  69. print rejoin ["REBOL " system/version]
  70. start-time: now/precise
  71. ;; any .reds test with more than one space between --run-test-file-quiet and
  72. ;; the filename will be excluded from the ARM tests
  73. ***start-run-quiet*** "Red/System Test Suite"
  74. ===start-group=== "Datatype tests"
  75. --run-test-file-quiet %source/units/logic-test.reds
  76. ; --run-test-file-quiet %source/units/integer-test.reds ;; excluded from ARM tests
  77. --run-test-file-quiet %source/units/byte-test.reds
  78. --run-test-file-quiet %source/units/c-string-test.reds
  79. --run-test-file-quiet %source/units/struct-test.reds
  80. --run-test-file-quiet %source/units/pointer-test.reds
  81. --run-test-file-quiet %source/units/cast-test.reds
  82. --run-test-file-quiet %source/units/alias-test.reds
  83. --run-test-file-quiet %source/units/length-test.reds
  84. --run-test-file-quiet %source/units/null-test.reds
  85. ===end-group===
  86. ===start-group=== "Native functions tests"
  87. --run-test-file-quiet %source/units/not-test.reds
  88. --run-test-file-quiet %source/units/size-test.reds
  89. --run-test-file-quiet %source/units/function-test.reds
  90. --run-test-file-quiet %source/units/case-test.reds
  91. --run-test-file-quiet %source/units/switch-test.reds
  92. ===end-group===
  93. ===start-group=== "Special natives tests"
  94. --run-test-file-quiet %source/units/exit-test.reds
  95. --run-test-file-quiet %source/units/return-test.reds
  96. ===end-group===
  97. ===start-group=== "Math operators tests"
  98. --run-test-file-quiet %source/units/modulo-test.reds
  99. --run-test-file-quiet %source/units/math-mixed-test.reds
  100. ===end-group===
  101. ===start-group=== "Infix syntax for functions"
  102. --run-test-file-quiet %source/units/infix-test.reds
  103. ===end-group===
  104. ===start-group=== "Conditional tests"
  105. --run-test-file-quiet %source/units/conditional-test.reds
  106. ===end-group===
  107. ===start-group=== "Auto-tests"
  108. --run-test-file-quiet %source/units/auto-tests/byte-auto-test.reds
  109. --run-test-file-quiet %source/units/auto-tests/integer-auto-test.reds
  110. --run-test-file-quiet %source/units/auto-tests/maths-auto-test.reds
  111. --run-test-file-quiet %source/units/auto-tests/lib-auto-test.reds ;; excluded from ARM tests
  112. ===end-group===
  113. ===start-group=== "Compiler Tests"
  114. --run-script-quiet %source/compiler/alias-test.r
  115. --run-script-quiet %source/compiler/cast-test.r
  116. --run-script-quiet %source/compiler/comp-err-test.r
  117. --run-script-quiet %source/compiler/exit-test.r
  118. --run-script-quiet %source/compiler/int-literals-test.r
  119. --run-script-quiet %source/compiler/output-test.r
  120. --run-script-quiet %source/compiler/return-test.r
  121. --run-script-quiet %source/compiler/cond-expr-test.r
  122. --run-script-quiet %source/compiler/inference-test.r
  123. --run-script-quiet %source/compiler/callback-test.r
  124. --run-script-quiet %source/compiler/infix-test.r
  125. --run-script-quiet %source/compiler/not-test.r
  126. --run-script-quiet %source/compiler/print-test.r
  127. ===end-group===
  128. ***end-run-quiet***
  129. end-time: now/precise
  130. print [" in" difference end-time start-time newline]
  131. system/options/quiet: store-quiet-mode
  132. ask "hit enter to finish"
  133. print ""