peter fd759e521f * saveregisters calling convention is obsolete %!s(int64=21) %!d(string=hai) anos
..
cg fd759e521f * saveregisters calling convention is obsolete %!s(int64=21) %!d(string=hai) anos
opt 952e80a72f * old logs removed and tabs fixed %!s(int64=23) %!d(string=hai) anos
units 4222f35ae3 * 64bit fixes %!s(int64=22) %!d(string=hai) anos
.cvsignore 47758ec9fc + explicit .cvsignore files added %!s(int64=24) %!d(string=hai) anos
README d3e1891eea + added submitter, machine and comment field to sql version %!s(int64=22) %!d(string=hai) anos
talign.pp 6fa306abd7 * missing mode objfpc added %!s(int64=23) %!d(string=hai) anos
talign1.pp e8a8374e77 * resource string table simple compilation test %!s(int64=23) %!d(string=hai) anos
talign2.pp 0f3fbdf989 * 64 bit fixes %!s(int64=22) %!d(string=hai) anos
tarray1.pp e7d12a5de3 * renamed test suite %!s(int64=25) %!d(string=hai) anos
tarray2.pp 952e80a72f * old logs removed and tabs fixed %!s(int64=23) %!d(string=hai) anos
tarray3.pp 487408c8da + known problems described %!s(int64=23) %!d(string=hai) anos
tarray4.pp 487408c8da + known problems described %!s(int64=23) %!d(string=hai) anos
tasmread.pp 5953d974c2 *** empty log message *** %!s(int64=21) %!d(string=hai) anos
tasout.pp 0f0eedba0a * nasm required note added %!s(int64=23) %!d(string=hai) anos
tcase1.pp 952e80a72f * old logs removed and tabs fixed %!s(int64=23) %!d(string=hai) anos
tcase2.pp e7d12a5de3 * renamed test suite %!s(int64=25) %!d(string=hai) anos
tcg1.pp 952e80a72f * old logs removed and tabs fixed %!s(int64=23) %!d(string=hai) anos
tcg2.pp 952e80a72f * old logs removed and tabs fixed %!s(int64=23) %!d(string=hai) anos
tcint64.pp 26c0a0a3f3 * qword(longint) test %!s(int64=22) %!d(string=hai) anos
tclass1.pp a78099a64f * extended the tests with inherited call %!s(int64=23) %!d(string=hai) anos
tclass2.pp 4aec360876 * fix calling of to1.destroy from to2.destroy %!s(int64=23) %!d(string=hai) anos
tclass3.pp e7d12a5de3 * renamed test suite %!s(int64=25) %!d(string=hai) anos
tclass4.pp 697b015e3f * fixed %!s(int64=23) %!d(string=hai) anos
tclass5.pp 0f3fbdf989 * 64 bit fixes %!s(int64=22) %!d(string=hai) anos
tclass6.pp 91dfe9bec5 * compile time class check %!s(int64=23) %!d(string=hai) anos
tclass7.pp 6939e0e4d4 * removed knowncompilererror10 %!s(int64=22) %!d(string=hai) anos
tclass8.pp ea6715c207 * methodtable test %!s(int64=21) %!d(string=hai) anos
tenum1.pp e7d12a5de3 * renamed test suite %!s(int64=25) %!d(string=hai) anos
testcmem.pp a04210006e * test for cmem unit %!s(int64=22) %!d(string=hai) anos
testda1.pp 5400c36e4f *** empty log message *** %!s(int64=23) %!d(string=hai) anos
testfpuc.pp b52a962e00 * test fpu with c %!s(int64=21) %!d(string=hai) anos
testmovd.pp e7b757fb32 * mmx is 1.0.x only %!s(int64=22) %!d(string=hai) anos
tests.pp 8f41503f9f no message %!s(int64=22) %!d(string=hai) anos
testsse2.pp 645310a071 * restrict to i386 %!s(int64=22) %!d(string=hai) anos
testv1.pp 371661e332 * 1.1 only %!s(int64=23) %!d(string=hai) anos
testv2.pp fa14d04d88 *** empty log message *** %!s(int64=23) %!d(string=hai) anos
testv3.pp 371661e332 * 1.1 only %!s(int64=23) %!d(string=hai) anos
testv4.pp 371661e332 * 1.1 only %!s(int64=23) %!d(string=hai) anos
testv5.pp 371661e332 * 1.1 only %!s(int64=23) %!d(string=hai) anos
testv6.pp 371661e332 * 1.1 only %!s(int64=23) %!d(string=hai) anos
testv7.pp 371661e332 * 1.1 only %!s(int64=23) %!d(string=hai) anos
testv8.pp 371661e332 * 1.1 only %!s(int64=23) %!d(string=hai) anos
texception1.pp c37cdcf4e8 * Improved output %!s(int64=22) %!d(string=hai) anos
texception2.pp 952e80a72f * old logs removed and tabs fixed %!s(int64=23) %!d(string=hai) anos
texception3.pp fa934bd43f * more info on memory holes %!s(int64=23) %!d(string=hai) anos
texception4.pp 952e80a72f * old logs removed and tabs fixed %!s(int64=23) %!d(string=hai) anos
texception5.pp 3bd0c0f4b5 no message %!s(int64=22) %!d(string=hai) anos
texception6.pp 7d9ec3978d + Fixed exit code %!s(int64=22) %!d(string=hai) anos
texception7.pp 7d9ec3978d + Fixed exit code %!s(int64=22) %!d(string=hai) anos
texception8.pp 3bd0c0f4b5 no message %!s(int64=22) %!d(string=hai) anos
texception9.pp 3bd0c0f4b5 no message %!s(int64=22) %!d(string=hai) anos
tfillchr.pp a2dc1e7a9d + fillchar test %!s(int64=22) %!d(string=hai) anos
tfpu1.pp 952e80a72f * old logs removed and tabs fixed %!s(int64=23) %!d(string=hai) anos
tfpu2.pp 952e80a72f * old logs removed and tabs fixed %!s(int64=23) %!d(string=hai) anos
tfpu3.pp cc47536e71 fsub check enhanced %!s(int64=23) %!d(string=hai) anos
tfpu4.pp 2608db056d * win32 also has as instead of asw in 1.1 %!s(int64=22) %!d(string=hai) anos
tfpu5.pp cc47536e71 fsub check enhanced %!s(int64=23) %!d(string=hai) anos
tfpuover.pp 4a4d7cd40d test for fpu overflow %!s(int64=24) %!d(string=hai) anos
tgoto.pp e7d12a5de3 * renamed test suite %!s(int64=25) %!d(string=hai) anos
theap.pp 785d22af8d * minor update %!s(int64=21) %!d(string=hai) anos
thintdir.pp 952e80a72f * old logs removed and tabs fixed %!s(int64=23) %!d(string=hai) anos
timplprog.pp 6a694bf11f * test should fail now %!s(int64=25) %!d(string=hai) anos
tinivar.pp 780b31cdb3 + Test for locally initialized variables %!s(int64=23) %!d(string=hai) anos
tinlin64.pp 42035e7283 + new test for in64 value parameter push inlined %!s(int64=25) %!d(string=hai) anos
tinline1.pp e7d12a5de3 * renamed test suite %!s(int64=25) %!d(string=hai) anos
tinline2.pp 952e80a72f * old logs removed and tabs fixed %!s(int64=23) %!d(string=hai) anos
tint641.pp e7d12a5de3 * renamed test suite %!s(int64=25) %!d(string=hai) anos
tint642.pp b193cd19ad * added missing double() typecasts %!s(int64=21) %!d(string=hai) anos
tint643.pp 5c36a38290 + qword multiplication and overflow test %!s(int64=22) %!d(string=hai) anos
tinterface1.pp b564b4751f + added MacOS to SKIPTARGETS %!s(int64=22) %!d(string=hai) anos
tinterface2.pp b9a0b3108a * update %!s(int64=25) %!d(string=hai) anos
tinterface3.pp b9a0b3108a * update %!s(int64=25) %!d(string=hai) anos
tinterrupt.pp 952e80a72f * old logs removed and tabs fixed %!s(int64=23) %!d(string=hai) anos
tintuint.pp d298043d6b * 0->nil %!s(int64=22) %!d(string=hai) anos
tlibrary1.pp 405bc99c16 * renamed tlibrary to tlibrary1 so it'll be compiled before tlibrary2 %!s(int64=23) %!d(string=hai) anos
tlibrary2.pp 3897bcb765 * avoid failure on dummy test %!s(int64=23) %!d(string=hai) anos
tmath1.pp 952e80a72f * old logs removed and tabs fixed %!s(int64=23) %!d(string=hai) anos
tmmx1.pp 1ebb3ad3a5 * MMX is 1.0.x only %!s(int64=22) %!d(string=hai) anos
tmove.pp 41a008a3bc + test for move() procedure %!s(int64=22) %!d(string=hai) anos
tmt1.pp 190c8e4d3c * cthreads for unix %!s(int64=22) %!d(string=hai) anos
tobject1.pp e7d12a5de3 * renamed test suite %!s(int64=25) %!d(string=hai) anos
tobject2.pp 952e80a72f * old logs removed and tabs fixed %!s(int64=23) %!d(string=hai) anos
tobject3.pp 6b3159d30e * Return runerror 219 %!s(int64=23) %!d(string=hai) anos
toperator1.pp 952e80a72f * old logs removed and tabs fixed %!s(int64=23) %!d(string=hai) anos
toperator2.pp 952e80a72f * old logs removed and tabs fixed %!s(int64=23) %!d(string=hai) anos
toperator3.pp 952e80a72f * old logs removed and tabs fixed %!s(int64=23) %!d(string=hai) anos
toperator4.pp 952e80a72f * old logs removed and tabs fixed %!s(int64=23) %!d(string=hai) anos
toperator5.pp cf6c0a1a54 * ucomplex will be delivered with 1.1 %!s(int64=23) %!d(string=hai) anos
tover1.pp 1dea3ef6b5 * overloaded string routines testing %!s(int64=23) %!d(string=hai) anos
tpackrec.pp ff064bf580 * pakcrecords test %!s(int64=22) %!d(string=hai) anos
tpara1.pp e2719218f8 * several fixes to run also with kylix %!s(int64=24) %!d(string=hai) anos
tpara2.pp bb4fa3dcf0 * simple test for alignment of parameters on stack %!s(int64=21) %!d(string=hai) anos
tprocvar1.pp 952e80a72f * old logs removed and tabs fixed %!s(int64=23) %!d(string=hai) anos
tprocvar2.pp d3e1891eea + added submitter, machine and comment field to sql version %!s(int64=22) %!d(string=hai) anos
tprop1.pp a42f9109c0 * global properties %!s(int64=22) %!d(string=hai) anos
tprop2.pp a42f9109c0 * global properties %!s(int64=22) %!d(string=hai) anos
trange1.pp e2719218f8 * several fixes to run also with kylix %!s(int64=24) %!d(string=hai) anos
trange2.pp 11ab2b888a * compiles with 1.1 %!s(int64=25) %!d(string=hai) anos
trange3.pp 952e80a72f * old logs removed and tabs fixed %!s(int64=23) %!d(string=hai) anos
trange4.pp 952e80a72f * old logs removed and tabs fixed %!s(int64=23) %!d(string=hai) anos
trange5.pp 6f8c7b37c4 * fix trange5 for big endian machines %!s(int64=23) %!d(string=hai) anos
tresstr.pp e7d12a5de3 * renamed test suite %!s(int64=25) %!d(string=hai) anos
trtti1.pp b9a0b3108a * update %!s(int64=25) %!d(string=hai) anos
trtti2.pp 7aae5f99f1 * runs now with 1.0.x as well %!s(int64=25) %!d(string=hai) anos
trtti3.pp 5a37581b29 *** empty log message *** %!s(int64=21) %!d(string=hai) anos
tset1.pp e7d12a5de3 * renamed test suite %!s(int64=25) %!d(string=hai) anos
tset2.pp 992fe2b52c * test now returns exitcode 1 in case something went wrong %!s(int64=23) %!d(string=hai) anos
tstack.pp 6f2a3683f8 * check that an infinite recursion generates RTE 202 or at least 216 %!s(int64=23) %!d(string=hai) anos
tstprocv.pp 010beefd28 * procvar types checks for strings args should be stricter %!s(int64=23) %!d(string=hai) anos
tstring1.pp e7d12a5de3 * renamed test suite %!s(int64=25) %!d(string=hai) anos
tstring2.pp e7d12a5de3 * renamed test suite %!s(int64=25) %!d(string=hai) anos
tstring3.pp e7d12a5de3 * renamed test suite %!s(int64=25) %!d(string=hai) anos
tstring4.pp 4222f35ae3 * 64bit fixes %!s(int64=22) %!d(string=hai) anos
tstring5.pp 952e80a72f * old logs removed and tabs fixed %!s(int64=23) %!d(string=hai) anos
tstring6.pp 94aebf36f1 * updated for new refcnt %!s(int64=21) %!d(string=hai) anos
tstring7.pp 16bd288cae * simple test that failed for m68k %!s(int64=24) %!d(string=hai) anos
tstrreal1.pp e7d12a5de3 * renamed test suite %!s(int64=25) %!d(string=hai) anos
tstrreal2.pp bfd9c1f91c * fixed for processors where sizeof extended = sizeof(double) %!s(int64=22) %!d(string=hai) anos
tsubdecl.pp 375eca81ae + initial version %!s(int64=23) %!d(string=hai) anos
tunit1.pp 1b28fe0e03 * more type redefining tests %!s(int64=25) %!d(string=hai) anos
tunit2.pp 093c0c3921 * 1.1 update %!s(int64=24) %!d(string=hai) anos
tunit3.pp 1b28fe0e03 * more type redefining tests %!s(int64=25) %!d(string=hai) anos
uimpluni1.pp 7c067cef8a * renamed %!s(int64=25) %!d(string=hai) anos
uimpluni2.pp 7c067cef8a * renamed %!s(int64=25) %!d(string=hai) anos
utasout.pp 9c95811fc0 * Renamefest %!s(int64=23) %!d(string=hai) anos
uunit1.pp 1b28fe0e03 * more type redefining tests %!s(int64=25) %!d(string=hai) anos
uunit2a.pp 1b28fe0e03 * more type redefining tests %!s(int64=25) %!d(string=hai) anos
uunit2b.pp 1b28fe0e03 * more type redefining tests %!s(int64=25) %!d(string=hai) anos
uunit3a.pp 1b28fe0e03 * more type redefining tests %!s(int64=25) %!d(string=hai) anos
uunit3b.pp 1b28fe0e03 * more type redefining tests %!s(int64=25) %!d(string=hai) anos
uunit3c.pp 1b28fe0e03 * more type redefining tests %!s(int64=25) %!d(string=hai) anos

README

This directory contains tests for several parts of the compiler and RTL


--------------------------------------------------------------------
Code generator
--------------------------------------------------------------------
These tests should be considered unitary, as they only verify
simple cases of the code generator. Used for porting to other
architectures. Tries to validate all possible Location types
valid for that node. They are based on tests on these
reference platforms:
Borland Pascal v7.01
Delphi 3.0
Delphi 4.0
Delphi 6.0 Personal Edition

'Natural type' is a signed 32-bit value on 32-bit architectures.
'Natural type' is a signed 64-bit value on 64-bit architectures.


--------------------------------------------------------------------
Compiler
--------------------------------------------------------------------


Shortstrings .......... tstring1.pp compatibility and speed of shortstrings
tstring2.pp some misc. tests mainly collected
from bug reports
tstring3.pp Typed Constant string loading from
other constants
tstring4.pp Ansistring #1
tstring5.pp Ansistring #2
Classes ............... tclass1.pp AfterConstruction
tclass2.pp BeforeDestruction
Objects ............... tobject1.pp Fail in constructor
Exceptions ............ texception1.pp
texception2.pp
texception3.pp
texception4.pp Math exceptions
Procedure Variable .... tprocvar1.pp
tprocvar2.pp
Libraries ............. testlib.pp a very primitive test
Parameter passing ..... tpara1.pp Out Parameter

Units ................. testu1.pp tests init. & finalization and halt
testu2.pp in finalization
testu3.pp a type redefining problem
testu4.pp
testu5.pp
case .................. tcase1.pp tests case statements with byte and word
sized decision variables
tcase2.pp tests case with sub enum types
Arrays ................ tarray1.pp open arrays with classes
tarray2.pp Array of const
tarray3.pp Array of Char #1 (Known bug)
tarray4.pp Array of Char #2 (Known bug)
Enumerations .......... tenum1.pp tests assignments of subrange
enumerations
Codegenerration ....... tcg1.pp i386 pushw
tcg2.pp saveregisters
tinivar.pp initial values for local variables (1.1)
Inline ................ tinline1.pp tests recursive inlining, inlining
a procedure multiple times and
inlining procedures in other
inline procedures.
tinlin64.pp tests for a problem in pushing 64bit parameters
by value.
TypeInfo .............. trtti2.pp test the function system.typeinfo
trtti3.pp tests the procedure system.finalize
Resourcestrings ....... tresstr.pp tests a simple resource string
Range checking ........ trange1.pp range checking when converting int64/
qword to longint/cardinal
trange2.pp range checking when converting
between longint and cardinal
trange3.pp range checking for array
trange4.pp range checking when assigning
values to int64/qword
Floating Point ........ tfpu1.pp
tfpu2.pp
Assembler readers...... tasmread.pp tests for support of unit or program specifier
testmovd.pp testspecial issues about MOVD instruction
<<<<<<< README
Variants............... tvariant.pp tests the variant support of FPC
=======
tasout.pp tests a problem if a unit is compiled with nasm
>>>>>>> 1.13

--------------------------------------------------------------------
RTL
--------------------------------------------------------------------

SYSTEM
------
str/write(real_type) .. tstrreal1.pp test correct rounding
tstrreal2.pp test correct writing of 10 till 1e-24
Heap .................. theap.pp Heap manager test
input/output .......... /units/system/tiorte.pp tests inoutres values of invalid operations
Random ................ /units/system/trandom.pp tests random (interactive)

DOS
---
General .............. /units/dos/tdos.pp (interactive)
General .............. /units/dos/testdos.pas (interactive)
FExpand .............. /units/dos/tfexpand.pp

CRT
---
General .............. /units/crt/tcrt.pp tests most crt unit functions (interactive)