7c25b53fdf
This was done with a brute-force approach, ensuring no additional warnings from GCC 4.9 under x86_64.
132 lines
3.6 KiB
Objective-C
132 lines
3.6 KiB
Objective-C
/* sogo-tests.m - this file is part of SOGo
|
|
*
|
|
* Copyright (C) 2010 Inverse inc.
|
|
*
|
|
* Author: Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
|
*
|
|
* This file is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2, or (at your option)
|
|
* any later version.
|
|
*
|
|
* This file is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; see the file COPYING. If not, write to
|
|
* the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
* Boston, MA 02111-1307, USA.
|
|
*/
|
|
|
|
#import <Foundation/Foundation.h>
|
|
|
|
#import "SOGoTestRunner.h"
|
|
|
|
static void Usage ()
|
|
{
|
|
/* Print usage and exit */
|
|
NSLog (@"sogo-tests [-h|--help] [-f|--format=text|junit]\n"
|
|
@" -h, --help\t\t\tdisplay this help information\n"
|
|
@" -f, --format=text|junit\treport format. Default: text\n\n");
|
|
exit(0);
|
|
}
|
|
|
|
static SOGoTestOutputFormat ParseArguments (NSArray *args)
|
|
{
|
|
/* Parse arguments from command line */
|
|
BOOL help = NO;
|
|
NSString *arg, *format = nil;
|
|
NSUInteger i, max;
|
|
SOGoTestOutputFormat outFormat;
|
|
|
|
max = [args count];
|
|
/* Skip program name */
|
|
i = 1;
|
|
while (!help && i < max)
|
|
{
|
|
arg = [args objectAtIndex: i];
|
|
if ([arg isEqualToString: @"-f"] || [arg isEqualToString: @"--format"])
|
|
{
|
|
NSArray *validFormats = [NSArray arrayWithObjects: @"text", @"junit", nil];
|
|
i++;
|
|
if (i < max)
|
|
{
|
|
arg = [args objectAtIndex: i];
|
|
if ([validFormats containsObject: arg])
|
|
format = arg;
|
|
else
|
|
{
|
|
help = YES;
|
|
NSLog (@"Invalid format: '%@'. Use 'text' or 'junit'", arg);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
NSLog (@"Missing format argument");
|
|
help = YES;
|
|
}
|
|
}
|
|
else if ([arg isEqualToString: @"-h"]
|
|
|| [arg isEqualToString: @"--help"])
|
|
help = YES;
|
|
else
|
|
{
|
|
NSLog (@"Invalid command line argument: '%@'", arg);
|
|
help = YES;
|
|
}
|
|
i++;
|
|
}
|
|
|
|
|
|
if (help)
|
|
{
|
|
Usage ();
|
|
}
|
|
|
|
if (format)
|
|
{
|
|
if ([format isEqualToString: @"text"])
|
|
outFormat = SOGoTestTextOutputFormat;
|
|
else if ([format isEqualToString: @"junit"])
|
|
outFormat = SOGoTestJUnitOutputFormat;
|
|
}
|
|
else
|
|
outFormat = SOGoTestTextOutputFormat;
|
|
|
|
return outFormat;
|
|
}
|
|
|
|
int main(int argc, char *argv[], char *env[])
|
|
{
|
|
NSAutoreleasePool *pool;
|
|
int rc;
|
|
NSDictionary *defaults;
|
|
NSUserDefaults *ud;
|
|
SOGoTestOutputFormat reportFormat;
|
|
|
|
pool = [NSAutoreleasePool new];
|
|
|
|
defaults = [NSDictionary dictionaryWithObjectsAndKeys:
|
|
[NSNumber numberWithBool: YES],
|
|
@"NGUseUTF8AsURLEncoding",
|
|
nil];
|
|
ud = [NSUserDefaults standardUserDefaults];
|
|
[ud setVolatileDomain: defaults
|
|
forName: @"sogo-tests-volatile"];
|
|
[ud addSuiteNamed: @"sogo-tests-volatile"];
|
|
|
|
/* Process arguments */
|
|
[NSProcessInfo initializeWithArguments: argv
|
|
count: argc
|
|
environment: env];
|
|
|
|
reportFormat = ParseArguments ([[NSProcessInfo processInfo] arguments]);
|
|
|
|
rc = [[SOGoTestRunner testRunnerWithFormat: reportFormat] run];
|
|
[pool release];
|
|
|
|
return rc;
|
|
}
|