! infunit.inf - test the test harness infunit.h
! Version 1.0 (19-Sep-2001)
!
! by Matt Albrecht -
[email protected]
!
! (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.
!
Message "Compiling Inform-Unit unit tests";
Include "infunit";
! Not optimized version
Include "fixedpt";
!------------------------------------------------------------------------------
[Main;
! Note: do not follow this testing pattern for your unit tests.
testAssertTrue();
testAssertEquals();
testAssertNotNothing();
testFail();
report();
];
!------------------------------------------------------------------------------
[ testAssertTrue
;
_testIURoutine( __testAssertTrue1, "assertTrue", false );
_testIURoutine( __testAssertTrue2, "assertTrue", true );
];
[ __testAssertTrue1
;
assertTrue( true, "AssertTrue not correct." );
print "Should be reached.^";
];
[ __testAssertTrue2
;
assertTrue( false, "Ignore: assertTrue Correctly working." );
print "** Should not be reached **^";
];
!------------------------------------------------------------------------------
[ testAssertEquals
;
_testIURoutine( __testAssertEquals1, "assertEquals", false );
_testIURoutine( __testAssertEquals2, "assertEquals", true );
];
[ __testAssertEquals1
;
assertEquals( 0, 0, "AssertEquals not correct." );
print "Should be reached.^";
];
[ __testAssertEquals2
;
assertEquals( 1, 0, "Ignore: assertEquals Correctly working." );
print "** Should not be reached **^";
];
!------------------------------------------------------------------------------
[ testAssertNotNothing
;
_testIURoutine( __testAssertNotNothing1, "assertNotNothing", false );
_testIURoutine( __testAssertNotNothing2, "assertNotNothing", true );
];
Object SampleObject;
[ __testAssertNotNothing1
;
assertNotNothing( SampleObject, "AssertNotNothing not correct." );
print "Should be reached.^";
];
[ __testAssertNotNothing2
;
assertNotNothing( nothing, "Ignore: assertNotNothing Correctly working." );
print "** Should not be reached **^";
];
!------------------------------------------------------------------------------
[ testFail
;
_testIURoutine( __testFail1, "fail", true );
];
[ __testFail1
;
fail( "Ignore: fail Correctly working." );
print "** Should not be reached **^";
];
!------------------------------------------------------------------------------
[ _testIURoutine
routine routineName generatesError ! parameters
origTestCount origErrCount; !locals
origTestCount = infunit__testCount;
origErrCount = infunit__errorCount;
++origTestCount;
infunit__testCount = 0;
infunit__errorCount = 0;
StartTest( routine );
if (infunit__testCount ~= 1)
{
print "Error: ",(string)routineName,
" did not increase test count by 1.^";
++origErrCount;
}
if (generatesError == true)
{
if (infunit__errorCount ~= 1)
{
print "Error: ",(string)routineName,
" did not increase error count by 1.^";
++origErrCount;
}
}
else
{
if (infunit__errorCount ~= 0)
{
print "Error: ",(string)routineName,
" did not keep error count the same.^";
++origErrCount;
}
}
infunit__testCount = origTestCount;
infunit__errorCount = origErrCount;
];