README 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. This directory contains tests for several parts of the compiler and RTL
  2. --------------------------------------------------------------------
  3. Code generator
  4. --------------------------------------------------------------------
  5. These tests should be considered unitary, as they only verify
  6. simple cases of the code generator. Used for porting to other
  7. architectures. Tries to validate all possible Location types
  8. valid for that node.
  9. 'Natural type' is a signed 32-bit value on 32-bit architectures.
  10. 'Natural type' is a signed 64-bit value on 64-bit architectures.
  11. secondadd() ........... /cg/taddbool.pp Boolean arithmetic operations
  12. secondadd() ........... /cg/taddcard.pp Cardinal arithmetic operations
  13. secondadd() ........... /cg/taddreal.pp Real arithmetic operations
  14. secondadd() ........... /cg/taddlong.pp Longint arithmetic operations
  15. secondadd() ........... /cg/tadint64.pp 64-bit integer arithmeric operations
  16. secondload()........... /cg/tldparam.pp Load subroutine parameters
  17. secondload()........... /cg/tldlocal.pp Load subroutine local variables
  18. secondshlshr()......... /cg/tshlshr.pp Shift routines on natural compiler types
  19. secondunaryminus()..... /cg/tneg.pp Negate on natural compiler types
  20. secondnot() ........... /cg/tnot.pp NOT operator node
  21. secondmoddiv() ........ /cg/tmoddiv.pp Division and module node
  22. secondtypeconv() ...... /cg/tstrcnv1.pp String -> String conversion
  23. secondtypeconv() ......
  24. secondis() ............
  25. secondas() ............
  26. secondfor() ...........
  27. secondexitn() .........
  28. secondraise() .........
  29. secondtryexcept() .....
  30. secondtryfinally() ....
  31. secondon() ............
  32. secondinline() ........
  33. secondload() ..........
  34. secondassignment() ....
  35. secondarrayconstruct().
  36. secondloadvmt()........
  37. secondnewn()...........
  38. secondhdisposen() .....
  39. secondsimplenewdispose().
  40. secondaddr() ..........
  41. seconddoubleaddr() ....
  42. secondderef() .........
  43. secondvecn() ..........
  44. secondwith() ..........
  45. secondsetelement() ....
  46. secondin() ............
  47. secondcase() ..........
  48. --------------------------------------------------------------------
  49. Compiler
  50. --------------------------------------------------------------------
  51. Shortstrings .......... tstring1.pp compatibility and speed of shortstrings
  52. tstring2.pp some misc. tests mainly collected
  53. from bug reports
  54. tstring3.pp Typed Constant string loading from
  55. other constants
  56. tstring4.pp Ansistring #1
  57. tstring5.pp Ansistring #2
  58. Classes ............... tclass1.pp AfterConstruction
  59. tclass2.pp BeforeDestruction
  60. Objects ............... tobject1.pp Fail in constructor
  61. Exceptions ............ texception1.pp
  62. texception2.pp
  63. texception3.pp
  64. texception4.pp Math exceptions
  65. Procedure Variable .... tprocvar1.pp
  66. tprocvar2.pp
  67. Libraries ............. testlib.pp a very primitive test
  68. Parameter passing ..... tpara1.pp Out Parameter
  69. Units ................. testu1.pp tests init. & finalization and halt
  70. testu2.pp in finalization
  71. testu3.pp a type redefining problem
  72. testu4.pp
  73. testu5.pp
  74. case .................. tcase1.pp tests case statements with byte and word
  75. sized decision variables
  76. tcase2.pp tests case with sub enum types
  77. Arrays ................ tarray1.pp open arrays with classes
  78. tarray2.pp Array of const
  79. tarray3.pp Array of Char #1 (Known bug)
  80. tarray4.pp Array of Char #2 (Known bug)
  81. Enumerations .......... tenum1.pp tests assignments of subrange
  82. enumerations
  83. Codegenerration ....... tcg1.pp i386 pushw
  84. tcg2.pp saveregisters
  85. Inline ................ tinline1.pp tests recursive inlining, inlining
  86. a procedure multiple times and
  87. inlining procedures in other
  88. inline procedures.
  89. tinlin64.pp tests for a problem in pushing 64bit parameters
  90. by value.
  91. TypeInfo .............. trtti2.pp test the function system.typeinfo
  92. trtti3.pp tests the procedure system.finalize
  93. Resourcestrings ....... tresstr.pp tests a simple resource string
  94. Range checking ........ trange1.pp range checking when converting int64/
  95. qword to longint/cardinal
  96. trange2.pp range checking when converting
  97. between longint and cardinal
  98. trange3.pp range checking for array
  99. trange4.pp range checking when assigning
  100. values to int64/qword
  101. Floating Point ........ tfpu1.pp
  102. tfpu2.pp
  103. Assembler readers.......tasmread.pp tests for support of unit or program specifier
  104. testmovd.pp testspecial issues about MOVD instruction
  105. --------------------------------------------------------------------
  106. RTL
  107. --------------------------------------------------------------------
  108. SYSTEM
  109. ------
  110. str/write(real_type) .. tstrreal1.pp test correct rounding
  111. tstrreal2.pp test correct writing of 10 till 1e-24
  112. Heap .................. theap.pp Heap manager test
  113. input/output .......... /units/system/tiorte.pp tests inoutres values of invalid operations
  114. Random ................ /units/system/trandom.pp tests random (interactive)
  115. DOS
  116. ---
  117. General .............. /units/dos/tdos.pp (interactive)
  118. General .............. /units/dos/testdos.pas (interactive)
  119. FExpand .............. /units/dos/tfexpand.pp
  120. CRT
  121. ---
  122. General .............. /units/crt/tcrt.pp tests most crt unit functions (interactive)