From 5b811a79c40014c0dc4455036c2c39e4453ebdb1 Mon Sep 17 00:00:00 2001 From: olle Date: Tue, 27 Apr 2004 23:17:27 +0000 Subject: [PATCH] + added LinkRunDir which handles one directory * LinkRunTests now is the main program, handles all tests * Lot of small changes --- tests/utils/macos/LinkRunDir | 186 +++++++++++++++++++++++++++++++++ tests/utils/macos/LinkRunTests | 182 +++++++------------------------- 2 files changed, 221 insertions(+), 147 deletions(-) create mode 100644 tests/utils/macos/LinkRunDir diff --git a/tests/utils/macos/LinkRunDir b/tests/utils/macos/LinkRunDir new file mode 100644 index 0000000000..5b17cc5f97 --- /dev/null +++ b/tests/utils/macos/LinkRunDir @@ -0,0 +1,186 @@ +#Assembles, links and run tests of FreePascal +#Param 1, the directory with the tests to perform. +#Note versions can be either 2 or 3 fields, e g 1.1 1.0.10 + +Export nrOfSucceded +Export nrOfFailed + +#Iterate through tests +Set Exit 0 # To handle the case, in the for stmt, when there is no match +For sourceWithExt In {1}tÅ.log #only test files, which begins with a 't' + Set Exit 1 #Revert error handling + + (Evaluate "{sourceWithExt}" =~ /(([Â.])*)¨1Å/) > Dev:Null + Set apppath {¨1} + + (Evaluate {apppath} =~ /Å:([Â:]*)¨1/) > Dev:Null + Set appname {¨1} + + If `Exists {apppath}.elg` + Continue + End + + Set testdirectives "" + Set testdirectives "`StreamEdit {apppath}.pp ¶ + -d -e "/¶{[ ¶t]*(%Å*)¨1[ ¶t]*¶}/ Print ¨1"`" > Dev:Null + Echo "=============================================================" + + If {debugverbose} + Echo {testdirectives} + End + + If `Evaluate "{testdirectives}" =~ /Å%CPU=([,_0-9A-Za-z]*)¨1Å/` + If `Evaluate "{¨1}" !~ /ÅpowerpcÅ/` + Echo Skipped {apppath}. Test only for CPU: "{¨1}" + Continue + End + End + + If `Evaluate "{testdirectives}" =~ /Å%SKIPCPU=([,_0-9A-Za-z]*)¨1Å/` + If `Evaluate "{¨1}" =~ /ÅpowerpcÅ/` + Echo Skipped {apppath}. Test not for CPU: {¨1} + Continue + End + End + + If `Evaluate "{testdirectives}" =~ /Å%TARGET=([,_0-9A-Za-z]*)¨1Å/` + If `Evaluate "{¨1}" !~ /ÅmacosÅ/` + Echo Skipped {apppath}. Test only for target: {¨1} + Continue + End + End + + If `Evaluate "{testdirectives}" =~ /Å%SKIPTARGET=([,_0-9A-Za-z]*)¨1Å/` + If `Evaluate "{¨1}" =~ /ÅmacosÅ/` + Echo Skipped {apppath}. Test not for target: {¨1} + Continue + End + End + + If `Evaluate "{testdirectives}" =~ /Å%VERSION=([0-9.]*)¨1Å/` + Set minver {¨1} + If `Evaluate "{minver}" !~ /([0-9]*)¨1.([0-9]*)¨2.([0-9]*)¨3/` + If `Evaluate "{minver}" !~ /([0-9]*)¨1.([0-9]*)¨2/` + Echo Skipped {apppath}. Error in version no: {minver} + Continue + Else + Set ¨3 0 + End + End + + If Â(({cv1}> {¨1}) || (({cv1}=={¨1}) && ¶ + (({cv2}> {¨2}) || (({cv2}=={¨2}) && ¶ + ({cv3}>={¨3}))))) + Echo Skipped {apppath}. Compiler too old, test requires at least: {minver} + Continue + End + End + + If `Evaluate "{testdirectives}" =~ /Å%MAXVERSION=([0-9.]*)¨1Å/` + Set maxver {¨1} + If `Evaluate "{maxver}" !~ /([0-9]*)¨1.([0-9]*)¨2.([0-9]*)¨3/` + If `Evaluate "{maxver}" !~ /([0-9]*)¨1.([0-9]*)¨2/` + Echo Skipped {apppath}. Error in version no: {maxver} + Continue + Else + Set ¨3 0 + End + End + + If Â(({cv1}< {¨1}) || (({cv1}=={¨1}) && ¶ + (({cv2}< {¨2}) || (({cv2}=={¨2}) && ¶ + ({cv3}<={¨3}))))) + Echo Skipped {apppath}. Compiler too new, test requires no more than: {maxver} + Continue + End + End + + If `Evaluate "{testdirectives}" =~ /Å%NOTE=([Â%]*)¨1Å/` + Echo Note: {¨1} + End + + # Start compiling + Echo Start compiling "{apppath}" + + + Set Exit 0 + SetFile -c 'MPS ' -t 'TEXT' {appname}_ppas + + If {debugverbose} + Execute {appname}_ppas | Tee {apppath}.log + Else + Execute {appname}_ppas > {apppath}.log + End + + If "{Status}" != 0 + Set Exit 1 + Echo Compiling of "{apppath}" failed + Set -e nrOfFailed `Evaluate {nrOfFailed}+1` + If {debugverbose} + StreamEdit {apppath}.pp -d -e "1,15 Print" + End + Continue + Else + Set Exit 1 + Echo Compiling of "{apppath}" succeded + End + + If `Evaluate "{testdirectives}" =~ /Å%NORUNÅ/` + Echo Skipped running of {apppath} due to option NORUN + Continue + End + + If `Evaluate "{testdirectives}" =~ /Å%INTERACTIVEÅ/` + Echo Skipped running of {apppath} due to option INTERACTIVE + Continue + End + + If Not `Exists {apppath}` + # Should this be counted as a failed test ? + # Or perhaps files is to be checked for if they are units ? + Echo Skipped running du to non existing executable + Continue + End + + If 1 + If `Evaluate "{testdirectives}" =~ /Å%RESULT=([0-9]*)¨1Å/` + Set expectedresult {¨1} + Else + Set expectedresult 0 + End + + #Execute test program + Echo "Xxx" > "{apppath}.elg" #Needed, to continue if test app crashes + Set Exit 0 + If {debugverbose} + {apppath} | Tee {apppath}.elg + Else + {apppath} > {apppath}.elg + End + Set actualresult {Status} + Set Exit 1 + + If {actualresult} != 0 + Echo Running of "{apppath}" failed + Else + Echo Running of "{apppath}" succeded + End + + Echo "Exit code was {actualresult}, expected {expectedresult}" + If "{actualresult}" != "{expectedresult}" + Echo -n "Failed to run {apppath}¶r" >> log #¶r gives a linefeed + Echo Failed test "{apppath}" + Set -e nrOfFailed `Evaluate {nrOfFailed}+1` + If {debugverbose} + StreamEdit {apppath}.pp -d -e "1,15 Print" + End + Else + Echo -n "Successfully run {apppath}¶r" >> log #¶r gives a linefeed + Echo Succeded test "{apppath}" + Set -e nrOfSucceded `Evaluate {nrOfSucceded}+1` + End + + End + Set Exit 0 # To handle the case, in the for stmt, when there is no match +End +Set Exit 1 #Revert error handling diff --git a/tests/utils/macos/LinkRunTests b/tests/utils/macos/LinkRunTests index 13c12f46bc..74bda8bb4f 100644 --- a/tests/utils/macos/LinkRunTests +++ b/tests/utils/macos/LinkRunTests @@ -2,13 +2,15 @@ #Param 1, the directory with the tests to perform. #Note versions can be either 2 or 3 fields, e g 1.1 1.0.10 -Set debugverbose 1 -Directory {1} -Echo "** Assembles, links and run tests in "{1}" **" +(Evaluate {0} =~ /(Å:)¨1[Â:]*/) > Dev:Null +Set mydir {¨1} + +Set -e debugverbose 1 +Echo "** Assembles, links and run tests for MacOS **" #Delete -i Å.o -Set nrOfSucceded 0 -Set nrOfFailed 0 +Set -e nrOfSucceded 0 +Set -e nrOfFailed 0 #Set compiler version Set compver '1.9' #Must be at least two fields @@ -20,154 +22,40 @@ If `Evaluate "{compver}" !~ /([0-9]*) Set ¨3 0 End End -Set cv1 {¨1};Set cv2 {¨2}; Set cv3 {¨3} +Set -e cv1 {¨1};Set -e cv2 {¨2}; Set -e cv3 {¨3} -#Iterate through tests +Directory {1}units: + +#Iterate through files in :units: +Set Exit 0 # To handle the case, in the for stmt, when there is no match For sourceWithExt In Å.s + Set Exit 1 #Revert error handling (Evaluate "{sourceWithExt}" =~ /(([Â.])*)¨1Å/) > Dev:Null - Set appname {¨1} - Set testdirectives "" - Set testdirectives "`StreamEdit {appname}.pp ¶ - -d -e "/¶{[ ¶t]*(%Å*)¨1[ ¶t]*¶}/ Print ¨1"`" > Dev:Null - Echo "=============================================================" - - If {debugverbose} - Echo {testdirectives} - End - - If `Evaluate "{testdirectives}" =~ /Å%CPU=([,_0-9A-Za-z]*)¨1Å/` - If `Evaluate "{¨1}" !~ /ÅpowerpcÅ/` - Echo Skipped {appname}. Test only for CPU: "{¨1}" - Continue - End - End - - If `Evaluate "{testdirectives}" =~ /Å%SKIPCPU=([,_0-9A-Za-z]*)¨1Å/` - If `Evaluate "{¨1}" =~ /ÅpowerpcÅ/` - Echo Skipped {appname}. Test not for CPU: {¨1} - Continue - End - End - - If `Evaluate "{testdirectives}" =~ /Å%TARGET=([,_0-9A-Za-z]*)¨1Å/` - If `Evaluate "{¨1}" !~ /ÅmacosÅ/` - Echo Skipped {appname}. Test only for target: {¨1} - Continue - End - End - - If `Evaluate "{testdirectives}" =~ /Å%SKIPTARGET=([,_0-9A-Za-z]*)¨1Å/` - If `Evaluate "{¨1}" =~ /ÅmacosÅ/` - Echo Skipped {appname}. Test not for target: {¨1} - Continue - End - End - - If `Evaluate "{testdirectives}" =~ /Å%VERSION=([0-9.]*)¨1Å/` - Set minver {¨1} - If `Evaluate "{minver}" !~ /([0-9]*)¨1.([0-9]*)¨2.([0-9]*)¨3/` - If `Evaluate "{minver}" !~ /([0-9]*)¨1.([0-9]*)¨2/` - Echo Skipped {appname}. Error in version no: {minver} - Continue - Else - Set ¨3 0 - End - End - - If Â(({cv1}> {¨1}) || (({cv1}=={¨1}) && ¶ - (({cv2}> {¨2}) || (({cv2}=={¨2}) && ¶ - ({cv3}>={¨3}))))) - Echo Skipped {appname}. Compiler too old, test requires at least: {minver} - Continue - End - End - - If `Evaluate "{testdirectives}" =~ /Å%MAXVERSION=([0-9.]*)¨1Å/` - Set maxver {¨1} - If `Evaluate "{maxver}" !~ /([0-9]*)¨1.([0-9]*)¨2.([0-9]*)¨3/` - If `Evaluate "{maxver}" !~ /([0-9]*)¨1.([0-9]*)¨2/` - Echo Skipped {appname}. Error in version no: {maxver} - Continue - Else - Set ¨3 0 - End - End - - If Â(({cv1}< {¨1}) || (({cv1}=={¨1}) && ¶ - (({cv2}< {¨2}) || (({cv2}=={¨2}) && ¶ - ({cv3}<={¨3}))))) - Echo Skipped {appname}. Compiler too new, test requires no more than: {maxver} - Continue - End - End - - If `Evaluate "{testdirectives}" =~ /Å%NOTE=([Â%]*)¨1Å/` - Echo Note: {¨1} - End - - # Start compiling - Echo Start compiling "{appname}" - - SetFile -c 'MPS ' -t 'TEXT' {appname}_ppas - - Set Exit 0 - Execute {appname}_ppas - - If "{Status}" != 0 - Set Exit 1 - Echo Compiling of "{appname}" failed - Set nrOfFailed `Evaluate {nrOfFailed}+1` - If {debugverbose} - StreamEdit {appname}.pp -d -e "1,15 Print" - End - Continue - Else - Set Exit 1 - Echo Compiling of "{appname}" succeded - End - - If `Evaluate "{testdirectives}" =~ /Å%NORUNÅ/` - Echo Skipped running of {appname} due to option NORUN + Set unitname {¨1} + If `Exists {unitname}.o` Continue End - - If `Evaluate "{testdirectives}" =~ /Å%INTERACTIVEÅ/` - Echo Skipped running of {appname} due to option INTERACTIVE - Continue - End - - If 1 - If `Evaluate "{testdirectives}" =~ /Å%RESULT=([0-9]*)¨1Å/` - Set expectedresult {¨1} - Else - Set expectedresult 0 - End - - #Execute test program - Set Exit 0 - {appname} - Set actualresult {Status} - Set Exit 1 - - If {actualresult} != 0 - Echo Running of "{appname}" failed - Else - Echo Running of "{appname}" succeded - End - - Echo "Exit code was {actualresult}, expected {expectedresult}" - If "{actualresult}" != "{expectedresult}" - Echo Failed test "{appname}" - Set nrOfFailed `Evaluate {nrOfFailed}+1` - If {debugverbose} - StreamEdit {appname}.pp -d -e "1,15 Print" - End - Else - Echo Succeded test "{appname}" - Set nrOfSucceded `Evaluate {nrOfSucceded}+1` - End - End + SetFile -c 'MPS ' -t 'TEXT' {unitname}_ppas + Execute {unitname}_ppas + Set Exit 0 # To handle the case, in the for stmt, when there is no match End +Set Exit 1 #Revert error handling + +Directory {1} + +{mydir}LinkRunDir ':test:' +{mydir}LinkRunDir ':test:cg:' +{mydir}LinkRunDir ':test:cg:cdecl:' +{mydir}LinkRunDir ':test:units:system:' +{mydir}LinkRunDir ':test:units:strings:' +{mydir}LinkRunDir ':test:units:objects:' +{mydir}LinkRunDir ':test:units:math:' +{mydir}LinkRunDir ':test:opt:' +{mydir}LinkRunDir ':tbs:' +{mydir}LinkRunDir ':tbf:' +{mydir}LinkRunDir ':webtbs:' +{mydir}LinkRunDir ':webtbf:' + Echo "=============================================================" Echo '** Test session finished. **' Echo "No of succeded tests: {nrOfSucceded}"