| ! infunit.h - An outline test harness for Inform, based on jUnit. | |
| ! Version 1.0 (19-Sep-2001) | |
| ! | |
| ! by Matt Albrecht - groboclown@users.sourceforge.net | |
| ! | |
| ! (If you need to edit this file, note that indentations are 4 spaces | |
| ! and tabs are not used.) | |
| ! | |
| ! This has been donated to the Public Domain. Use, abuse, and don't blame me. | |
| ! | |
| System_file; | |
| Message "Adding Inform Unit Test library"; | |
| ! You must provide your own Main method to execute each of your tests. | |
| Global infunit__errorCount = 0; | |
| Global infunit__testCount = 0; | |
| Global infunit__exception; | |
| !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
| ! At the end of the Main, you should call this routine. | |
| [ report | |
| k; ! locals | |
| print "*************************^ | |
| * infUnit test results:^ | |
| * number of tests run: ",infunit__testCount,"^ | |
| * number of successful tests: ", | |
| (infunit__testCount - infunit__errorCount),"^ | |
| * number of errors: ",infunit__errorCount,"^ | |
| *************************^"; | |
| print "Press any key to continue."; | |
| @read_char 1 -> k; | |
| ""; | |
| ]; | |
| !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
| ! At the start of each test method, this should be called. | |
| [ StartTest | |
| testRoutine; ! parameter | |
| ++infunit__testCount; | |
| @catch -> infunit__exception; | |
| testRoutine(); | |
| rfalse; | |
| ]; | |
| !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
| ! Ensure that the 1st parameter is true. If not, report the error with the | |
| ! optional text in the second parameter. | |
| ! | |
| ! Returns true if the assertion failed (indicating the test should exit), or | |
| ! false if the assertion is good. | |
| [ assertTrue | |
| isTrue optErrorText ! parameters | |
| doContinue ! optional parameter | |
| ; | |
| if (infunit__assertTrue( isTrue, optErrorText, false )) | |
| { | |
| infunit__throw( doContinue ); | |
| rtrue; | |
| } | |
| ! else | |
| rfalse; | |
| ]; | |
| !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
| ! Asserts that the first two parameters are equal. | |
| [ assertEquals | |
| first second optErrorText ! parameters | |
| doContinue ! optional parameter | |
| ; | |
| !print "[[ first = ",first,", second = ",second,"; first == second = ",(first == second),"]]^"; | |
| if (infunit__assertTrue( first == second, optErrorText, true )) | |
| { | |
| print "[ expected ",first,", but found ",second,"]^"; | |
| infunit__throw( doContinue ); | |
| rtrue; | |
| } | |
| ! else | |
| rfalse; | |
| ]; | |
| !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
| ! Asserts that the first parameter is not equal to nothing | |
| [ assertNotNothing | |
| first optErrorText ! parameters | |
| doContinue ! optional parameter | |
| ; | |
| if (infunit__assertTrue( first ~= nothing, optErrorText, true )) | |
| { | |
| print "[value is nothing]^"; | |
| infunit__throw( doContinue ); | |
| rtrue; | |
| } | |
| ! else | |
| rfalse; | |
| ]; | |
| !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
| ! Sends a failure signal. | |
| [ fail | |
| optErrorText ! parameters | |
| doContinue ! optional parameter | |
| ; | |
| infunit__assertTrue( false, optErrorText, true ); | |
| print "[failure]^"; | |
| infunit__throw( doContinue ); | |
| rtrue; | |
| ]; | |
| !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
| ! Internal method to handle basic assertions. | |
| [ infunit__assertTrue | |
| isTrue optErrorText ! parameters | |
| dontPrintEOL ! hidden parameter | |
| ; | |
| if (isTrue == false) | |
| { | |
| ++infunit__errorCount; | |
| print "** Error: an assertion failed!"; | |
| if (optErrorText ~= nothing) | |
| { | |
| print " ",(string)optErrorText; | |
| } | |
| if (dontPrintEOL == false) | |
| print "^"; | |
| else | |
| print " "; | |
| rtrue; | |
| } | |
| ! else | |
| rfalse; | |
| ]; | |
| !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | |
| ! Internal method to throw exceptions. | |
| [ infunit__throw | |
| doContinue; ! parameters | |
| if (doContinue == false) | |
| { | |
| @throw "Assert failed" infunit__exception; | |
| } | |
| ]; | |
Xet Storage Details
- Size:
- 4.14 kB
- Xet hash:
- e0615e63aaf25f523c78e88f00ed2bd2c5004e6898e3558bef240969be1dc3f0
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.