From a3552fba39cf2c055e6390b48fe25fc95a9b8f94 Mon Sep 17 00:00:00 2001 From: Gautier Pelloux-Prayer Date: Wed, 20 Jan 2016 10:31:09 +0100 Subject: [PATCH] logs: use new liblinphone logs API --- Classes/LinphoneManager.m | 5 +- Classes/Log.h | 15 ++- Classes/Utils/Log.m | 76 ++++++++------- Default-568h@2x.png | Bin 0 -> 18594 bytes .../Base.lproj/Main_iPad.storyboard | 17 ++-- .../Base.lproj/Main_iPhone.storyboard | 12 +-- .../{DetailView.h => DetailTableView.h} | 2 +- .../{DetailView.m => DetailTableView.m} | 12 ++- LiblinphoneTester/LinphoneTester-Info.plist | 2 + LiblinphoneTester/MasterView.h | 4 +- LiblinphoneTester/MasterView.m | 13 ++- .../TesterImages.xcassets/Contents.json | 6 ++ .../TestAppIcon.appiconset/Contents.json | 15 +++ .../TestLaunchImage.launchimage/Contents.json | 89 ------------------ LiblinphoneTester/test_failed.png | Bin 0 -> 1209 bytes LiblinphoneTester/test_inprogress.png | Bin 0 -> 1182 bytes LiblinphoneTester/test_passed.png | Bin 0 -> 1172 bytes TestsLiblinphone/LinphoneTester_Tests.m | 7 +- TestsUI/LinphoneTestCase.m | 1 - linphone.xcodeproj/project.pbxproj | 40 ++++++-- submodules/linphone | 2 +- 21 files changed, 139 insertions(+), 179 deletions(-) create mode 100644 Default-568h@2x.png rename LiblinphoneTester/{DetailView.h => DetailTableView.h} (92%) rename LiblinphoneTester/{DetailView.m => DetailTableView.m} (95%) create mode 100644 LiblinphoneTester/TesterImages.xcassets/Contents.json delete mode 100644 LiblinphoneTester/TesterImages.xcassets/TestLaunchImage.launchimage/Contents.json create mode 100644 LiblinphoneTester/test_failed.png create mode 100644 LiblinphoneTester/test_inprogress.png create mode 100644 LiblinphoneTester/test_passed.png diff --git a/Classes/LinphoneManager.m b/Classes/LinphoneManager.m index 288d2b11b..da5da9c57 100644 --- a/Classes/LinphoneManager.m +++ b/Classes/LinphoneManager.m @@ -573,10 +573,10 @@ static void dump_section(const char *section, void *data) { #pragma mark - Logs Functions handlers static void linphone_iphone_log_user_info(struct _LinphoneCore *lc, const char *message) { - linphone_iphone_log_handler(ORTP_MESSAGE, message, NULL); + linphone_iphone_log_handler(NULL, ORTP_MESSAGE, message, NULL); } static void linphone_iphone_log_user_warning(struct _LinphoneCore *lc, const char *message) { - linphone_iphone_log_handler(ORTP_WARNING, message, NULL); + linphone_iphone_log_handler(NULL, ORTP_WARNING, message, NULL); } #pragma mark - Display Status Functions @@ -1439,7 +1439,6 @@ static BOOL libStarted = FALSE; LOGI(@"linphonecore is already created"); return; } - linphone_core_set_log_collection_path([[LinphoneManager cacheDirectory] UTF8String]); [Log enableLogs:[self lpConfigBoolForKey:@"debugenable_preference"]]; connectivity = none; diff --git a/Classes/Log.h b/Classes/Log.h index c1d98b0c4..fabc9a4d5 100644 --- a/Classes/Log.h +++ b/Classes/Log.h @@ -19,13 +19,12 @@ #import "LinphoneManager.h" -#define APP_LVL 1 << 7 -#define LOGV(level, ...) [Log log:APP_LVL & level file:__FILE__ line:__LINE__ format:__VA_ARGS__] -#define LOGD(...) LOGV(APP_LVL | ORTP_DEBUG, __VA_ARGS__) -#define LOGI(...) LOGV(APP_LVL | ORTP_MESSAGE, __VA_ARGS__) -#define LOGW(...) LOGV(APP_LVL | ORTP_WARNING, __VA_ARGS__) -#define LOGE(...) LOGV(APP_LVL | ORTP_ERROR, __VA_ARGS__) -#define LOGF(...) LOGV(APP_LVL | ORTP_FATAL, __VA_ARGS__) +#define LOGV(level, ...) [Log log:level file:__FILE__ line:__LINE__ format:__VA_ARGS__] +#define LOGD(...) LOGV(ORTP_DEBUG, __VA_ARGS__) +#define LOGI(...) LOGV(ORTP_MESSAGE, __VA_ARGS__) +#define LOGW(...) LOGV(ORTP_WARNING, __VA_ARGS__) +#define LOGE(...) LOGV(ORTP_ERROR, __VA_ARGS__) +#define LOGF(...) LOGV(ORTP_FATAL, __VA_ARGS__) @interface Log : NSObject { } @@ -33,5 +32,5 @@ + (void)log:(OrtpLogLevel)severity file:(const char *)file line:(int)line format:(NSString *)format, ...; + (void)enableLogs:(BOOL)enabled; -void linphone_iphone_log_handler(int lev, const char *fmt, va_list args); +void linphone_iphone_log_handler(const char *domain, OrtpLogLevel lev, const char *fmt, va_list args); @end \ No newline at end of file diff --git a/Classes/Utils/Log.m b/Classes/Utils/Log.m index 4a81cff07..d77a9d128 100644 --- a/Classes/Utils/Log.m +++ b/Classes/Utils/Log.m @@ -21,42 +21,45 @@ @implementation Log +#define FILESIZE 17 +#define DOMAIN_SIZE 3 + ++ (NSString *)cacheDirectory { + NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); + NSString *cachePath = [paths objectAtIndex:0]; + BOOL isDir = NO; + NSError *error; + // cache directory must be created if not existing + if (![[NSFileManager defaultManager] fileExistsAtPath:cachePath isDirectory:&isDir] && isDir == NO) { + [[NSFileManager defaultManager] createDirectoryAtPath:cachePath + withIntermediateDirectories:NO + attributes:nil + error:&error]; + } + return cachePath; +} + + (void)log:(OrtpLogLevel)severity file:(const char *)file line:(int)line format:(NSString *)format, ... { va_list args; va_start(args, format); NSString *str = [[NSString alloc] initWithFormat:format arguments:args]; const char *utf8str = [str cStringUsingEncoding:NSString.defaultCStringEncoding]; - int filesize = 20; const char *filename = strchr(file, '/') ? strrchr(file, '/') + 1 : file; - char levelC = 'U'; // undefined - if ((severity & ORTP_FATAL) != 0) { - levelC = 'F'; - } else if ((severity & ORTP_ERROR) != 0) { - levelC = 'E'; - } else if ((severity & ORTP_WARNING) != 0) { - levelC = 'W'; - } else if ((severity & ORTP_MESSAGE) != 0) { - levelC = 'I'; - } else if ((severity & ORTP_DEBUG) != 0) { - levelC = 'D'; - } - if ((severity & ORTP_DEBUG) != 0) { // lol: ortp_debug(XXX) can be disabled at compile time, but ortp_log(ORTP_DEBUG, xxx) will always be valid even // not in debug build... - ortp_debug("%c %*s:%3d - %s", levelC, filesize, filename + MAX((int)strlen(filename) - filesize, 0), line, - utf8str); + ortp_debug("%*s:%-4d/%s", FILESIZE, filename + MAX((int)strlen(filename) - FILESIZE, 0), line, utf8str); } else { - // we want application logs to be always enabled (except debug ones) so use | ORTP_ERROR extra mask - ortp_log(severity | ORTP_ERROR, "%c %*s:%3d - %s", levelC, filesize, - filename + MAX((int)strlen(filename) - filesize, 0), line, utf8str); + ortp_log(severity, "%*s:%-4d/%s", FILESIZE, filename + MAX((int)strlen(filename) - FILESIZE, 0), line, utf8str); } va_end(args); } + (void)enableLogs:(BOOL)enabled { - linphone_core_enable_logs_with_cb((OrtpLogFunc)linphone_iphone_log_handler); + linphone_core_set_log_collection_path([self cacheDirectory].UTF8String); + linphone_core_enable_log_collection(enabled); + linphone_core_enable_logs_with_cb(linphone_iphone_log_handler); if (enabled) { NSLog(@"Enabling debug logs"); linphone_core_set_log_level(ORTP_DEBUG); @@ -64,30 +67,33 @@ NSLog(@"Disabling debug logs"); linphone_core_set_log_level(ORTP_ERROR); } - linphone_core_enable_log_collection(enabled); + ortp_set_log_level_mask("ios", ORTP_DEBUG | ORTP_MESSAGE | ORTP_WARNING | ORTP_ERROR | ORTP_FATAL); } #pragma mark - Logs Functions callbacks -void linphone_iphone_log_handler(int lev, const char *fmt, va_list args) { +void linphone_iphone_log_handler(const char *domain, OrtpLogLevel lev, const char *fmt, va_list args) { NSString *format = [[NSString alloc] initWithUTF8String:fmt]; NSString *formatedString = [[NSString alloc] initWithFormat:format arguments:args]; NSString *lvl = @""; - if ((lev & APP_LVL) == 0) { - if ((lev & ORTP_FATAL) != 0) { - lvl = @"F "; - } else if ((lev & ORTP_ERROR) != 0) { - lvl = @"E "; - } else if ((lev & ORTP_WARNING) != 0) { - lvl = @"W "; - } else if ((lev & ORTP_MESSAGE) != 0) { - lvl = @"I "; - } else if (((lev & ORTP_TRACE) != 0) || ((lev & ORTP_DEBUG) != 0)) { - lvl = @"D "; - } + if ((lev & ORTP_FATAL) != 0) { + lvl = @"F"; + } else if ((lev & ORTP_ERROR) != 0) { + lvl = @"E"; + } else if ((lev & ORTP_WARNING) != 0) { + lvl = @"W"; + } else if ((lev & ORTP_MESSAGE) != 0) { + lvl = @"I"; + } else if (((lev & ORTP_TRACE) != 0) || ((lev & ORTP_DEBUG) != 0)) { + lvl = @"D"; } + if (!domain) + domain = "liblinphone"; // since \r are interpreted like \n, avoid double new lines when logging network packets (belle-sip) - NSLog(@"%@%@", lvl, [formatedString stringByReplacingOccurrencesOfString:@"\r\n" withString:@"\n"]); + // output format is like: I/ios/some logs. We truncate domain to **exactly** DOMAIN_SIZE characters to have + // fixed-length aligned logs + NSLog(@"%@/%*.*s/%@", lvl, DOMAIN_SIZE, DOMAIN_SIZE, domain, + [formatedString stringByReplacingOccurrencesOfString:@"\r\n" withString:@"\n"]); } @end diff --git a/Default-568h@2x.png b/Default-568h@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0891b7aabfcf3422423b109c8beed2bab838c607 GIT binary patch literal 18594 zcmeI4X;f257Jx&9fS`ixvS;&$x8J@slQFSel)6zJN=?13FB7H(lQjRkSy8x_-S~tvu2gzn1oS+dLcF#eqtq$ z%tf9TTvX?`)R@}3uBI;jzS-=ZR-Td&MHaS&;!0?Ni*#$#`n*~CcQK)Q9vAQ~TUpnI!j)a2biYK^R)M~A5wUDZhx?ULMX z3x1P&qt=trOY6P2U67L=m=U?F|5#Uj(eCueNTZaHs_ceWiHeET+j+tp3Jt9g(ekqP z2WOvfR{qV+9r+o4J5?qK>7;;^+I7tGv-i)es$X_D=EoKF+S?zsyj^oRFElP}c}JT< zd8SUs-?O?}2YD#ngKbnHgzHBcboxK_2r9l(?eNCl-pEzkJm}fY?WC*jnS?VBE4EpY zO$fEejz6fU;W2Kl>JeQBZBl-%Irg`obSlg*@4QB;Dd1H7^Oi5wvt4d{RZ!8Og?^aE z)k0$1g+V3fd(gdQ3d&q2q-FL*uy#}|bc^=VhFsl0jBgUGJ+-s3U8MK9A!YJJMxpci z5hJ%|{DwV48fZn0{n5l$N_KcSb#NKE4plB`9I6Zt=Z!~-zw0{9tg$L&Ju1F0X)Cy8 zKF;(&lJ>x)Jw(=;p~sF(Sd9VWGwFE2rnyS9!f^DZ8+aCLq zQ};>lcJ1GDLqjm6Hd>|Eabno@P`~Bn(~6^aD_#yoEH(a?Nm1S<;S+hSxI5d16^<1lEM3NPFi zkqPrpL)+ zgnseFikg`gJVBha1&7C4;O6>h=dt~`ND+;Zd?W(4v2JIb7Pt>Td42%M-Ju-XAH#Pns762L}K3 zDhvsRqN0Ni(1UrishD2YvV?4*h2iFj$+&N||Fn$4n|^NSU+o?~jq`0jVQt8T9l{7b zXiwwODFh2V!Q6sqP9S>WH$oOf$N~=d0-bqTlD61!=`&0eAP-F>XN?*|gtOXX{ zQVTWyYo4ZK0GAw!GHf|pz9`D;-bbb*5LBX*{bnz|+)$@&P9|ORM2o?95{;ejvo&r- zq8cBhTN6nn)7~W>54U)%-F_-b?YKdfk5I8MHcuzBD5)!;yv#Z&R&^y=@=>VTIMy#r zX&U<=BsPkdqcMe<_}2+>H%XKyrr5ZR8_KVe>ZqYN z^=^~TFD};;rHJ$U;{~w^hYojl4hRI@SH$^K{YEo=sg)WY87r!*7blQK&qnpDo0`Vn zkl)9u9g=mCh&ZCJS(L4yN3k0kQ zuvg$h2KEEk51T+O0JQ+r0`R>g{jvqM0Mr6d3qUOZwE!?PI7HY@CE|dr sfw?Q;rAv?G4&^^8-z_>&sWXMxvD*gPOU4CBe-*@OtE+wfmVJNyHv)PfH~;_u literal 0 HcmV?d00001 diff --git a/LiblinphoneTester/Base.lproj/Main_iPad.storyboard b/LiblinphoneTester/Base.lproj/Main_iPad.storyboard index a8dad803a..583e3d8f8 100644 --- a/LiblinphoneTester/Base.lproj/Main_iPad.storyboard +++ b/LiblinphoneTester/Base.lproj/Main_iPad.storyboard @@ -1,7 +1,8 @@ - + - + + @@ -22,13 +23,13 @@ - + - + @@ -36,7 +37,7 @@ + @@ -125,9 +127,4 @@ - - - - - diff --git a/LiblinphoneTester/Base.lproj/Main_iPhone.storyboard b/LiblinphoneTester/Base.lproj/Main_iPhone.storyboard index c9b353c45..f4b35eabc 100644 --- a/LiblinphoneTester/Base.lproj/Main_iPhone.storyboard +++ b/LiblinphoneTester/Base.lproj/Main_iPhone.storyboard @@ -1,7 +1,8 @@ - + - + + @@ -65,7 +66,7 @@ - + @@ -97,9 +98,4 @@ - - - - - diff --git a/LiblinphoneTester/DetailView.h b/LiblinphoneTester/DetailTableView.h similarity index 92% rename from LiblinphoneTester/DetailView.h rename to LiblinphoneTester/DetailTableView.h index 945535107..d005ec2b7 100644 --- a/LiblinphoneTester/DetailView.h +++ b/LiblinphoneTester/DetailTableView.h @@ -21,7 +21,7 @@ typedef NS_ENUM(int, TestState) { TestStateIdle, TestStatePassed, TestStateInPro @end -@interface DetailView : UITableViewController +@interface DetailTableView : UITableViewController @property(strong, nonatomic) NSString *detailItem; diff --git a/LiblinphoneTester/DetailView.m b/LiblinphoneTester/DetailTableView.m similarity index 95% rename from LiblinphoneTester/DetailView.m rename to LiblinphoneTester/DetailTableView.m index e2e0445eb..2aca75e78 100644 --- a/LiblinphoneTester/DetailView.m +++ b/LiblinphoneTester/DetailTableView.m @@ -6,7 +6,7 @@ // // -#import "DetailView.h" +#import "DetailTableView.h" #import "MasterView.h" #import "LogsView.h" #include "linphone/liblinphone_tester.h" @@ -36,7 +36,7 @@ static NSString *const kAllTestsName = @"Run All tests"; @end -@interface DetailView () { +@interface DetailTableView () { NSMutableArray *_tests; BOOL in_progress; } @@ -44,7 +44,7 @@ static NSString *const kAllTestsName = @"Run All tests"; - (void)configureView; @end -@implementation DetailView +@implementation DetailTableView #pragma mark - Managing the detail item @@ -113,7 +113,11 @@ static NSString *const kAllTestsName = @"Run All tests"; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { - UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"testCellIdentifier" forIndexPath:indexPath]; + static NSString *kCellId = @"testCellIdentifier"; + UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kCellId forIndexPath:indexPath]; + if (cell == nil) { + cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:kCellId]; + } TestItem *test = _tests[indexPath.row]; cell.textLabel.text = [NSString stringWithFormat:@"%@/%@", test.suite, test.name]; diff --git a/LiblinphoneTester/LinphoneTester-Info.plist b/LiblinphoneTester/LinphoneTester-Info.plist index e6e68329c..cce3a98e5 100644 --- a/LiblinphoneTester/LinphoneTester-Info.plist +++ b/LiblinphoneTester/LinphoneTester-Info.plist @@ -36,6 +36,8 @@ armv7 + UIRequiresFullScreen + UIStatusBarTintParameters UINavigationBar diff --git a/LiblinphoneTester/MasterView.h b/LiblinphoneTester/MasterView.h index ca609dc2d..2d10ab605 100644 --- a/LiblinphoneTester/MasterView.h +++ b/LiblinphoneTester/MasterView.h @@ -11,10 +11,10 @@ extern NSMutableArray *lastLogs; extern NSString *const kLogsUpdateNotification; -@class DetailView; +@class DetailTableView; @interface MasterView : UITableViewController -@property(strong, nonatomic) DetailView *detailViewController; +@property(strong, nonatomic) DetailTableView *detailViewController; @end diff --git a/LiblinphoneTester/MasterView.m b/LiblinphoneTester/MasterView.m index 60413188d..04710ae5e 100644 --- a/LiblinphoneTester/MasterView.m +++ b/LiblinphoneTester/MasterView.m @@ -8,7 +8,7 @@ #import "MasterView.h" #import "LogsView.h" -#import "DetailView.h" +#import "DetailTableView.h" #include "linphone/liblinphone_tester.h" #include "mediastreamer2/msutils.h" @@ -40,15 +40,18 @@ NSString *const kLogsUpdateNotification = @"kLogsUpdateNotification"; - (void)setupLogging { lastLogs = [[NSMutableArray alloc] initWithCapacity:kLastLogsCapacity]; logsBuffer = [NSMutableArray arrayWithCapacity:kLogsBufferCapacity]; + [Log enableLogs:YES]; +} - linphone_core_set_log_level(ORTP_MESSAGE); - linphone_core_set_log_handler((OrtpLogFunc)linphone_iphone_log_handler); +void tester_logs_handler(int level, const char *fmt, va_list args) { + linphone_iphone_log_handler(NULL, level, fmt, args); } - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. - self.detailViewController = (DetailView *)[[self.splitViewController.viewControllers lastObject] topViewController]; + self.detailViewController = + (DetailTableView *)[[self.splitViewController.viewControllers lastObject] topViewController]; [self setupLogging]; @@ -56,7 +59,7 @@ NSString *const kLogsUpdateNotification = @"kLogsUpdateNotification"; NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); documentPath = [paths objectAtIndex:0]; - bc_tester_init((void (*)(int, const char *fm, va_list))linphone_iphone_log_handler, ORTP_MESSAGE, ORTP_ERROR); + bc_tester_init(tester_logs_handler, ORTP_MESSAGE, ORTP_ERROR); liblinphone_tester_add_suites(); bc_tester_set_resource_dir_prefix([bundlePath UTF8String]); diff --git a/LiblinphoneTester/TesterImages.xcassets/Contents.json b/LiblinphoneTester/TesterImages.xcassets/Contents.json new file mode 100644 index 000000000..da4a164c9 --- /dev/null +++ b/LiblinphoneTester/TesterImages.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/LiblinphoneTester/TesterImages.xcassets/TestAppIcon.appiconset/Contents.json b/LiblinphoneTester/TesterImages.xcassets/TestAppIcon.appiconset/Contents.json index ebdf0618a..4a051112d 100644 --- a/LiblinphoneTester/TesterImages.xcassets/TestAppIcon.appiconset/Contents.json +++ b/LiblinphoneTester/TesterImages.xcassets/TestAppIcon.appiconset/Contents.json @@ -10,11 +10,21 @@ "size" : "29x29", "scale" : "2x" }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "3x" + }, { "idiom" : "iphone", "size" : "40x40", "scale" : "2x" }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "3x" + }, { "idiom" : "iphone", "size" : "57x57", @@ -84,6 +94,11 @@ "idiom" : "ipad", "size" : "76x76", "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "83.5x83.5", + "scale" : "2x" } ], "info" : { diff --git a/LiblinphoneTester/TesterImages.xcassets/TestLaunchImage.launchimage/Contents.json b/LiblinphoneTester/TesterImages.xcassets/TestLaunchImage.launchimage/Contents.json deleted file mode 100644 index f62085cfc..000000000 --- a/LiblinphoneTester/TesterImages.xcassets/TestLaunchImage.launchimage/Contents.json +++ /dev/null @@ -1,89 +0,0 @@ -{ - "images" : [ - { - "idiom" : "iphone", - "scale" : "1x", - "orientation" : "portrait" - }, - { - "idiom" : "iphone", - "scale" : "2x", - "orientation" : "portrait" - }, - { - "orientation" : "portrait", - "idiom" : "iphone", - "subtype" : "retina4", - "scale" : "2x" - }, - { - "orientation" : "portrait", - "idiom" : "iphone", - "minimum-system-version" : "7.0", - "scale" : "2x" - }, - { - "orientation" : "portrait", - "idiom" : "iphone", - "minimum-system-version" : "7.0", - "subtype" : "retina4", - "scale" : "2x" - }, - { - "orientation" : "portrait", - "idiom" : "ipad", - "extent" : "to-status-bar", - "scale" : "1x" - }, - { - "orientation" : "portrait", - "idiom" : "ipad", - "extent" : "to-status-bar", - "scale" : "2x" - }, - { - "orientation" : "landscape", - "idiom" : "ipad", - "extent" : "to-status-bar", - "scale" : "1x" - }, - { - "orientation" : "landscape", - "idiom" : "ipad", - "extent" : "to-status-bar", - "scale" : "2x" - }, - { - "orientation" : "portrait", - "idiom" : "ipad", - "minimum-system-version" : "7.0", - "extent" : "full-screen", - "scale" : "1x" - }, - { - "orientation" : "portrait", - "idiom" : "ipad", - "minimum-system-version" : "7.0", - "extent" : "full-screen", - "scale" : "2x" - }, - { - "orientation" : "landscape", - "idiom" : "ipad", - "minimum-system-version" : "7.0", - "extent" : "full-screen", - "scale" : "1x" - }, - { - "orientation" : "landscape", - "idiom" : "ipad", - "minimum-system-version" : "7.0", - "extent" : "full-screen", - "scale" : "2x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/LiblinphoneTester/test_failed.png b/LiblinphoneTester/test_failed.png new file mode 100644 index 0000000000000000000000000000000000000000..c174df390d2a07cb3287db48eb71a9f6dbcc8d2d GIT binary patch literal 1209 zcmeAS@N?(olHy`uVBq!ia0vp^LO?9Y!3HERME&^*q$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~;1FfglRhD4M^`1)8S=jZArg4F0$^BXQ!4Z zB&DWj=GiK}-@RW+Av48RDcsc8z_-9TH6zobswg$M$}c3jDm&RSMakYy!KT6rXh3di zNuokUZcbjYRfVk**jy_h8zii+qySb@l5ML5aa4qFfP!;=QL2Kep0RGSfuW&-nVFuU ziK&^Hp^k!)fuWJU0T7w#8k$&{npqi{D?ot~(6*wKG^-#NH>h1eo~=?wNlAf~zJ7Um zxn8-kUVc%!zM-Y1CCCgTBVC{h-Qvo;lEez#ykcdT2`;I{$wiq3C7Jno3Lp~`lk!VT zY?Xj6g?J&i0B&qvF*KNf0j6J(SfFpHX8`gNOrftYexnUy@&(kzb(T9Bihb;hUJ8nFkWk z1ncniwerj>E=kNwPW5!LRRWr!mzkMj}YCWx1pIn-onpXnTn}X2mgi|jlG2|8iZFWg5$}CGwaVyHtRRDY1DigO`EO43! z)tiFbEtWX->H{644~kl(sD=pv(+`LVPq;u1Jn5(A0n>XCFkzoKusW21fl=Gj#WAGf z)|n~0y__8d+Rm@)owT6UuGv?oX7&U(Y1OV-5gkcOUAgi#q&9dwWl|6H_V+Po~;1FfglRhD4M^`1)8S=jZArg4F0$^BXQ!4Z zB&DWj=GiK}-@RW+Av48RDcsc8z_-9TH6zobswg$M$}c3jDm&RSMakYy!KT6rXh3di zNuokUZcbjYRfVk**jy_h8zii+qySb@l5ML5aa4qFfP!;=QL2Kep0RGSfuW&-nVFuU ziK&^Hp^k!)fuWJU0T7w#8k$&{npqi{D?ot~(6*wKG^-#NH>h1eo~=?wNlAf~zJ7Um zxn8-kUVc%!zM-Y1CCCgTBVC{h-Qvo;lEez#ykcdT2`;I{$wiq3C7Jno3Lp~`lk!VT zY?Xj6g?J&i0B&qvF*KNf0j6J(SfFpHX8`gNOrftYexnUy@&(kzb(T9Bihb;hUJ8nFkWk z1ncniwerj>E=kNwPW5!LRRWr!mzkMjWom40;ArS(>1N?#Y-s3e=xA}YCWx1pIn-onpXnTn}X2mh*K{pG2|8iZFWg5$}CGwaVyHtRRDY1DigO`%yF6r z)tiFbEfzTS>H{644~kl(sD=pv(+`LVPq;u1Jn5(A0n>XCFkxSL%=m?YflHU(mehi(Qr z?BVR_op|IPQ=x!>eA9DNrnVDK!JAAb-QZRD#`tLW5)}_|6X!DKjjX#Ak4S7`e5Dj1 o^pZKrU*TVesoIKAIYt%4cPgg&ebxsLQ09J&5^Z)<= literal 0 HcmV?d00001 diff --git a/LiblinphoneTester/test_passed.png b/LiblinphoneTester/test_passed.png new file mode 100644 index 0000000000000000000000000000000000000000..f8edc012d1fbbbb0995b84a4fdeb77067e740881 GIT binary patch literal 1172 zcmeAS@N?(olHy`uVBq!ia0vp^LO?9Y!3HERME&^*q$EpRBT9nv(@M${i&7aJQ}UBi z6+Ckj(^G>|6H_V+Po~;1FfglRhD4M^`1)8S=jZArg4F0$^BXQ!4Z zB&DWj=GiK}-@RW+Av48RDcsc8z_-9TH6zobswg$M$}c3jDm&RSMakYy!KT6rXh3di zNuokUZcbjYRfVk**jy_h8zii+qySb@l5ML5aa4qFfP!;=QL2Kep0RGSfuW&-nVFuU ziK&^Hp^k!)fuWJU0T7w#8k$&{npqi{D?ot~(6*wKG^-#NH>h1eo~=?wNlAf~zJ7Um zxn8-kUVc%!zM-Y1CCCgTBVC{h-Qvo;lEez#ykcdT2`;I{$wiq3C7Jno3Lp~`lk!VT zY?Xj6g?J&i0B&qvF*KNf0j6J(SfFpHX8`gNOrftYexnUy@&(kzb(T9Bihb;hUJ8nFkWk z1ncniwerj>E=kNwPW5!LRRWr!mzkMjWom40;ArS(>Sp0$Y-s3e=xA}YCWx1pIn-onpXnTn}X15hEp#nG2|8iZFWg5$}CGwaVyHtRRDY1Die!aTud#E zoGo3Q-7K6fu)77KHwCv_OmMnIALtl;P}CwtHB1PYen3ok!Ub~RNk26YnBI$k30q6- zx(@>bBb%p-V@SoVq(A@v+cTRo2s2M*@P4k9TJ+V6>0_G0HO5C?Vn)1ztdC*?oE;W4 zcltPgQYai@ z*p9dcn2BGpKG7EAY|b*Lui*!iz;EV{ehO*LUEi5LhAZ%~CuOUAEpNObdspDelv;)k z<;EZKlkV^+l(`rmVeFVMa7yWQg9WpD&qGs|=(yRuM@lo2{2ezopBIRkxlOWTcf${U pf%v9fPwW;>Ic4#pOR#}~nc>|wt7Fz#SO0;^2~Sr)mvv4FO#qH~f=U1Y literal 0 HcmV?d00001 diff --git a/TestsLiblinphone/LinphoneTester_Tests.m b/TestsLiblinphone/LinphoneTester_Tests.m index cf53f3ff7..b1e5c06ee 100644 --- a/TestsLiblinphone/LinphoneTester_Tests.m +++ b/TestsLiblinphone/LinphoneTester_Tests.m @@ -30,11 +30,14 @@ return [[testString componentsSeparatedByCharactersInSet:charactersToRemove] componentsJoinedByString:@"_"]; } -+ (void)initialize { +void tester_logs_handler(int level, const char *fmt, va_list args) { + linphone_iphone_log_handler(NULL, level, fmt, args); +} ++ (void)initialize { static char *bundle = NULL; static char *documents = NULL; - bc_tester_init((void (*)(int, const char *fm, va_list))linphone_iphone_log_handler, ORTP_MESSAGE, ORTP_ERROR); + bc_tester_init(tester_logs_handler, ORTP_MESSAGE, ORTP_ERROR); liblinphone_tester_add_suites(); NSString *bundlePath = [[NSBundle mainBundle] bundlePath]; diff --git a/TestsUI/LinphoneTestCase.m b/TestsUI/LinphoneTestCase.m index 371ef2365..cb2deb163 100644 --- a/TestsUI/LinphoneTestCase.m +++ b/TestsUI/LinphoneTestCase.m @@ -48,7 +48,6 @@ - (void)beforeEach { [[LinphoneManager instance] lpConfigSetInt:NO forKey:@"animations_preference"]; - linphone_core_set_log_level(ORTP_MESSAGE); } - (NSString *)me { diff --git a/linphone.xcodeproj/project.pbxproj b/linphone.xcodeproj/project.pbxproj index 012ff9b1e..cc2de23f7 100755 --- a/linphone.xcodeproj/project.pbxproj +++ b/linphone.xcodeproj/project.pbxproj @@ -51,7 +51,7 @@ 63058A271B4E821E00EFAE36 /* Main_iPhone.strings in Resources */ = {isa = PBXBuildFile; fileRef = 63058A131B4E821E00EFAE36 /* Main_iPhone.strings */; }; 63058A281B4E821E00EFAE36 /* Main_iPad.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 63058A151B4E821E00EFAE36 /* Main_iPad.storyboard */; }; 63058A291B4E821E00EFAE36 /* Main_iPhone.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 63058A171B4E821E00EFAE36 /* Main_iPhone.storyboard */; }; - 63058A2A1B4E821E00EFAE36 /* DetailView.m in Sources */ = {isa = PBXBuildFile; fileRef = 63058A1A1B4E821E00EFAE36 /* DetailView.m */; }; + 63058A2A1B4E821E00EFAE36 /* DetailTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = 63058A1A1B4E821E00EFAE36 /* DetailTableView.m */; }; 63058A2C1B4E821E00EFAE36 /* LogsView.m in Sources */ = {isa = PBXBuildFile; fileRef = 63058A1F1B4E821E00EFAE36 /* LogsView.m */; }; 63058A2D1B4E821E00EFAE36 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 63058A201B4E821E00EFAE36 /* main.m */; }; 63058A2E1B4E821E00EFAE36 /* MasterView.m in Sources */ = {isa = PBXBuildFile; fileRef = 63058A221B4E821E00EFAE36 /* MasterView.m */; }; @@ -544,6 +544,10 @@ 63D11C531C3D501200E8FCEE /* Log.m in Sources */ = {isa = PBXBuildFile; fileRef = 63D11C521C3D501200E8FCEE /* Log.m */; }; 63D11C551C3D50A100E8FCEE /* Log.m in Sources */ = {isa = PBXBuildFile; fileRef = 63D11C521C3D501200E8FCEE /* Log.m */; }; 63DFE04B1C40161700DA5E87 /* notes_of_the_optimistic.caf in Resources */ = {isa = PBXBuildFile; fileRef = 63DFE0451C40161700DA5E87 /* notes_of_the_optimistic.caf */; }; + 63E279DD1C4F8CEE00D332AE /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 63E279DC1C4F8CEE00D332AE /* Default-568h@2x.png */; }; + 63E279E71C4F9A2500D332AE /* test_failed.png in Resources */ = {isa = PBXBuildFile; fileRef = 63E279E41C4F9A2500D332AE /* test_failed.png */; }; + 63E279E81C4F9A2500D332AE /* test_inprogress.png in Resources */ = {isa = PBXBuildFile; fileRef = 63E279E51C4F9A2500D332AE /* test_inprogress.png */; }; + 63E279E91C4F9A2500D332AE /* test_passed.png in Resources */ = {isa = PBXBuildFile; fileRef = 63E279E61C4F9A2500D332AE /* test_passed.png */; }; 63E59A3F1ADE70D900646FB3 /* InAppProductsManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 63E59A3E1ADE70D900646FB3 /* InAppProductsManager.m */; }; 63EEE3FF1BBA9AC00087D3AF /* libcunit.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F03A9B7E18C0D9C900C4D7FE /* libcunit.a */; }; 63EEE4001BBA9AC00087D3AF /* liblinphonetester.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F0BB8C0F193623F200974404 /* liblinphonetester.a */; }; @@ -852,8 +856,8 @@ 63058A141B4E821E00EFAE36 /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Main_iPhone.strings; sourceTree = ""; }; 63058A161B4E821E00EFAE36 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main_iPad.storyboard; sourceTree = ""; }; 63058A181B4E821E00EFAE36 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main_iPhone.storyboard; sourceTree = ""; }; - 63058A191B4E821E00EFAE36 /* DetailView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DetailView.h; sourceTree = ""; }; - 63058A1A1B4E821E00EFAE36 /* DetailView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DetailView.m; sourceTree = ""; }; + 63058A191B4E821E00EFAE36 /* DetailTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DetailTableView.h; sourceTree = ""; }; + 63058A1A1B4E821E00EFAE36 /* DetailTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DetailTableView.m; sourceTree = ""; }; 63058A1B1B4E821E00EFAE36 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; 63058A1C1B4E821E00EFAE36 /* LinphoneTester-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "LinphoneTester-Info.plist"; sourceTree = ""; }; 63058A1D1B4E821E00EFAE36 /* LinphoneTester-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "LinphoneTester-Prefix.pch"; sourceTree = ""; }; @@ -1357,6 +1361,10 @@ 63D11C521C3D501200E8FCEE /* Log.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Log.m; path = Utils/Log.m; sourceTree = ""; }; 63D11C541C3D503A00E8FCEE /* Log.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Log.h; sourceTree = ""; }; 63DFE0451C40161700DA5E87 /* notes_of_the_optimistic.caf */ = {isa = PBXFileReference; lastKnownFileType = file; path = notes_of_the_optimistic.caf; sourceTree = ""; }; + 63E279DC1C4F8CEE00D332AE /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = ""; }; + 63E279E41C4F9A2500D332AE /* test_failed.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = test_failed.png; path = LiblinphoneTester/test_failed.png; sourceTree = SOURCE_ROOT; }; + 63E279E51C4F9A2500D332AE /* test_inprogress.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = test_inprogress.png; path = LiblinphoneTester/test_inprogress.png; sourceTree = SOURCE_ROOT; }; + 63E279E61C4F9A2500D332AE /* test_passed.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = test_passed.png; path = LiblinphoneTester/test_passed.png; sourceTree = SOURCE_ROOT; }; 63E59A3D1ADE6ECB00646FB3 /* InAppProductsManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InAppProductsManager.h; sourceTree = ""; }; 63E59A3E1ADE70D900646FB3 /* InAppProductsManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = InAppProductsManager.m; sourceTree = ""; }; 63EA4C941B50189D00922857 /* libmswebrtc.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmswebrtc.a; path = "liblinphone-sdk/apple-darwin/lib/mediastreamer/plugins/libmswebrtc.a"; sourceTree = ""; }; @@ -1932,6 +1940,7 @@ 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = { isa = PBXGroup; children = ( + 63E279DC1C4F8CEE00D332AE /* Default-568h@2x.png */, 080E96DDFE201D6D7F000001 /* Classes */, 29B97323FDCFA39411CA2CEA /* Frameworks */, F0938158188E629800A55DFA /* iTunesArtwork */, @@ -2082,8 +2091,8 @@ 63058A131B4E821E00EFAE36 /* Main_iPhone.strings */, 63058A151B4E821E00EFAE36 /* Main_iPad.storyboard */, 63058A171B4E821E00EFAE36 /* Main_iPhone.storyboard */, - 63058A191B4E821E00EFAE36 /* DetailView.h */, - 63058A1A1B4E821E00EFAE36 /* DetailView.m */, + 63058A191B4E821E00EFAE36 /* DetailTableView.h */, + 63058A1A1B4E821E00EFAE36 /* DetailTableView.m */, 63058A1C1B4E821E00EFAE36 /* LinphoneTester-Info.plist */, 63058A1D1B4E821E00EFAE36 /* LinphoneTester-Prefix.pch */, 63058A1E1B4E821E00EFAE36 /* LogsView.h */, @@ -2126,6 +2135,9 @@ 636B967C1C298400003BA37C /* images */ = { isa = PBXGroup; children = ( + 63E279E41C4F9A2500D332AE /* test_failed.png */, + 63E279E51C4F9A2500D332AE /* test_inprogress.png */, + 63E279E61C4F9A2500D332AE /* test_passed.png */, 636B967D1C298400003BA37C /* add_field_default.png */, 636B967E1C298400003BA37C /* add_field_default@2x.png */, 636B967F1C298400003BA37C /* add_field_over.png */, @@ -3341,10 +3353,14 @@ 63058ADD1B4E937300EFAE36 /* marie_xml in Resources */, 63058ADE1B4E937300EFAE36 /* messages.db in Resources */, 63058ADF1B4E937300EFAE36 /* rcfiles in Resources */, + 63E279E71C4F9A2500D332AE /* test_failed.png in Resources */, + 63E279E81C4F9A2500D332AE /* test_inprogress.png in Resources */, 63058AE01B4E937300EFAE36 /* sounds in Resources */, 63058AE21B4E93A100EFAE36 /* tester_hosts in Resources */, + 63E279DD1C4F8CEE00D332AE /* Default-568h@2x.png in Resources */, 63058A2F1B4E821E00EFAE36 /* TesterImages.xcassets in Resources */, 63058A251B4E821E00EFAE36 /* InfoPlist.strings in Resources */, + 63E279E91C4F9A2500D332AE /* test_passed.png in Resources */, 63058A271B4E821E00EFAE36 /* Main_iPhone.strings in Resources */, 63058A261B4E821E00EFAE36 /* Main_iPad.strings in Resources */, 63058A291B4E821E00EFAE36 /* Main_iPhone.storyboard in Resources */, @@ -3525,7 +3541,7 @@ 63D11C551C3D50A100E8FCEE /* Log.m in Sources */, 63058A2D1B4E821E00EFAE36 /* main.m in Sources */, 63058A241B4E821E00EFAE36 /* AppDelegate.m in Sources */, - 63058A2A1B4E821E00EFAE36 /* DetailView.m in Sources */, + 63058A2A1B4E821E00EFAE36 /* DetailTableView.m in Sources */, 63058A2E1B4E821E00EFAE36 /* MasterView.m in Sources */, 63058A2C1B4E821E00EFAE36 /* LogsView.m in Sources */, ); @@ -4054,6 +4070,8 @@ HEADER_SEARCH_PATHS = ""; IPHONEOS_DEPLOYMENT_TARGET = 6.0; LIBRARY_SEARCH_PATHS = ""; + OTHER_CFLAGS = "-DORTP_LOG_DOMAIN=\\\"ios\\\""; + OTHER_CPLUSPLUSFLAGS = "$(OTHER_CFLAGS)"; PROVISIONING_PROFILE = "0636A6EA-90EB-4D92-B707-19FC32F9A7CF"; SDKROOT = iphoneos; STANDARD_C_PLUS_PLUS_LIBRARY_TYPE = dynamic; @@ -4139,6 +4157,8 @@ HEADER_SEARCH_PATHS = ""; IPHONEOS_DEPLOYMENT_TARGET = 6.0; LIBRARY_SEARCH_PATHS = ""; + OTHER_CFLAGS = "-DORTP_LOG_DOMAIN=\\\"ios\\\""; + OTHER_CPLUSPLUSFLAGS = "$(OTHER_CFLAGS)"; PROVISIONING_PROFILE = ""; SDKROOT = iphoneos; STANDARD_C_PLUS_PLUS_LIBRARY_TYPE = dynamic; @@ -4224,6 +4244,8 @@ HEADER_SEARCH_PATHS = ""; IPHONEOS_DEPLOYMENT_TARGET = 6.0; LIBRARY_SEARCH_PATHS = ""; + OTHER_CFLAGS = "-DORTP_LOG_DOMAIN=\\\"ios\\\""; + OTHER_CPLUSPLUSFLAGS = "$(OTHER_CFLAGS)"; PROVISIONING_PROFILE = "C7F794BC-6D48-41F2-B37D-E1B1B1A40901"; SDKROOT = iphoneos; STANDARD_C_PLUS_PLUS_LIBRARY_TYPE = dynamic; @@ -4311,6 +4333,8 @@ IPHONEOS_DEPLOYMENT_TARGET = 6.0; LIBRARY_SEARCH_PATHS = ""; ONLY_ACTIVE_ARCH = YES; + OTHER_CFLAGS = "-DORTP_LOG_DOMAIN=\\\"ios\\\""; + OTHER_CPLUSPLUSFLAGS = "$(OTHER_CFLAGS)"; PROVISIONING_PROFILE = "2AC0DC11-4546-47B6-8B8A-453CCA80903C"; SDKROOT = iphoneos; STANDARD_C_PLUS_PLUS_LIBRARY_TYPE = dynamic; @@ -4510,7 +4534,6 @@ buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; ASSETCATALOG_COMPILER_APPICON_NAME = TestAppIcon; - ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = TestLaunchImage; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -4567,7 +4590,6 @@ buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; ASSETCATALOG_COMPILER_APPICON_NAME = TestAppIcon; - ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = TestLaunchImage; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -4618,7 +4640,6 @@ buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; ASSETCATALOG_COMPILER_APPICON_NAME = TestAppIcon; - ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = TestLaunchImage; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -4669,7 +4690,6 @@ buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; ASSETCATALOG_COMPILER_APPICON_NAME = TestAppIcon; - ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = TestLaunchImage; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; diff --git a/submodules/linphone b/submodules/linphone index 67f9bd206..8508f5435 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 67f9bd2068ab6d040ddadd4209a538aef99a893a +Subproject commit 8508f5435738598b646b37fc5ecb951ecd000281