tools-make/TestFramework/example3.m
Richard Frith-MacDonald 21c545b319 Important change to the START_SET and END_SET macros to stop their use
being confusing.  They now both take a simple C-string argument which
names the set, and the macros check that each end matches a start of
the same name.  Since tis means that a START_SET no longer takes an
argument sayng whether or notthe set is to be skipped, we now have a
SKIP macro to be used inside a set to skip to the end of it.  This
is actually more versatile as we can have multiple SKIP macros in the
same set, each providing a different reason for the set being skipped.
Also removed a few obsolete/unused functions and macros.


git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/tools/make/trunk@32355 72102866-910b-0410-8b05-ffd578937521
2011-02-24 16:26:01 +00:00

41 lines
1.1 KiB
Objective-C

#import "Testing.h"
/* A third test ... using test macros.
*
* If you run the test with 'gnustep-tests example3.m' it should
* report two test passes, and a test fail.
*/
/* Import a header because we want to use a method from it.
*/
#import <Foundation/NSDictionary.h>
int
main()
{
/* We start a set here ...
* Having a set means we do not need to bother creating an autorelease pool.
*/
START_SET("example set")
/* We use a macro here so that any exception in the expression we use
* will not break out of the set, and the two remaining tests will be
* run.
*/
PASS([(NSDictionary*)@"abc" objectForKey: @"xxx"],
"sending a bad message")
pass(1 == 1, "integer equality works");
/* And let's use a macro here too ... the expression is not going to
* raise an exception unless NSObject is somehow broken, and even if
* it did, this is the last test in the set, so it wouldn't matter,
* but it's good practice to code safely in case we move the code
* around in a later version of the program.
*/
PASS([[NSObject new] autorelease] != nil, "+new creates an object")
END_SET("example set")
return 0;
}