diff options
author | Benoit Foucher <benoit@zeroc.com> | 2016-12-13 17:40:25 +0100 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2016-12-13 17:40:25 +0100 |
commit | be3f1d1fc29f0b13c26149a5e654e335eda75450 (patch) | |
tree | 3a41e2a92b3dfd6606ee212e1a2e476db4c321d3 /cpp/test/ios/testSuiteApp/Classes/TestUtil.h | |
parent | Another fix for Windows bin PATH (diff) | |
download | ice-be3f1d1fc29f0b13c26149a5e654e335eda75450.tar.bz2 ice-be3f1d1fc29f0b13c26149a5e654e335eda75450.tar.xz ice-be3f1d1fc29f0b13c26149a5e654e335eda75450.zip |
Support for C++ iOS Simulator controller
Diffstat (limited to 'cpp/test/ios/testSuiteApp/Classes/TestUtil.h')
-rw-r--r-- | cpp/test/ios/testSuiteApp/Classes/TestUtil.h | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/cpp/test/ios/testSuiteApp/Classes/TestUtil.h b/cpp/test/ios/testSuiteApp/Classes/TestUtil.h new file mode 100644 index 00000000000..30b8dcab2b7 --- /dev/null +++ b/cpp/test/ios/testSuiteApp/Classes/TestUtil.h @@ -0,0 +1,100 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2016 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#ifndef TEST_UTIL_H +#define TEST_UTIL_H + +#include <TestHelper.h> +#include <UIKit/UIKit.h> +#include <Foundation/NSString.h> + +#include <vector> + +@interface TestSuite : NSObject +{ +@private + NSString* testSuiteId; + NSArray* testCases; +} +@property (nonatomic, retain) NSString* testSuiteId; +@property (nonatomic, retain) NSArray* testCases; ++(id) testSuite:(NSString*)testSuiteId testCases:(NSArray*)testCases; +-(BOOL) isIn:(NSArray*)tests; +@end + +@interface TestCase : NSObject +{ +@private + NSString* name; + NSString* client; + NSString* server; + NSArray* args; +} ++(id) testCase:(NSString*)name client:(NSString*)client server:(NSString*)server args:(NSArray*)args; +@property (nonatomic, retain) NSString* name; +@property (nonatomic, retain) NSString* client; +@property (nonatomic, retain) NSString* server; +@property (nonatomic, retain) NSArray* args; +@end + +typedef int (*MAIN_ENTRY_POINT)(int argc, char** argv, Test::MainHelper* helper); +typedef int (*SHUTDOWN_ENTRY_POINT)(); + +enum TestType { TestTypeClient, TestTypeServer }; + +struct TestConfig +{ + std::string protocol; + std::vector<std::string> args; +}; + +class MainHelperI : public Test::MainHelper +{ +public: + + MainHelperI(const std::string&, const std::string&, TestType, TestConfig, id, SEL, SEL); + virtual ~MainHelperI(); + + virtual void run(); + virtual void serverReady(); + virtual void shutdown(); + virtual void waitForCompleted() { }; + virtual bool redirect(); + virtual void print(const std::string&); + + int + status() + { + return _status; + } + +private: + + void + completed(int status) + { + _completed = true; + _status = status; + } + + std::string _name; + std::string _libName; + TestType _type; + TestConfig _config; + CFBundleRef _handle; + SHUTDOWN_ENTRY_POINT _dllTestShutdown; + bool _completed; + int _status; + + id _target; + SEL _ready; + SEL _output; +}; + +#endif |