[MediaWiki-commits] [Gerrit] history list performance tests - change (apps...wikipedia)
Bgerstle has uploaded a new change for review. https://gerrit.wikimedia.org/r/221850 Change subject: history list performance tests .. history list performance tests Change-Id: I20ec399ec283240bd8d5dd56f8fac0755d4719a2 --- A MediaWikiKit/MediaWikiKitTests/MWKHistoryListPerformanceTests.m M Wikipedia.xcodeproj/project.pbxproj M Wikipedia.xcodeproj/xcshareddata/xcschemes/Wikipedia.xcscheme 3 files changed, 49 insertions(+), 1 deletion(-) git pull ssh://gerrit.wikimedia.org:29418/apps/ios/wikipedia refs/changes/50/221850/1 diff --git a/MediaWikiKit/MediaWikiKitTests/MWKHistoryListPerformanceTests.m b/MediaWikiKit/MediaWikiKitTests/MWKHistoryListPerformanceTests.m new file mode 100644 index 000..72b458d --- /dev/null +++ b/MediaWikiKit/MediaWikiKitTests/MWKHistoryListPerformanceTests.m @@ -0,0 +1,41 @@ +// +// MWKHistoryListPerformanceTests.m +// Wikipedia +// +// Created by Brian Gerstle on 6/29/15. +// Copyright (c) 2015 Wikimedia Foundation. All rights reserved. +// + +#import UIKit/UIKit.h +#import XCTest/XCTest.h + +#import NSDateFormatter+WMFExtensions.h +#import WMFTestFixtureUtilities.h +#import MWKHistoryList.h + +@interface MWKHistoryListPerformanceTests : XCTestCase + +@end + +@implementation MWKHistoryListPerformanceTests + +- (void)testReadPerformance { +NSMutableArray* entries = [NSMutableArray arrayWithCapacity:1000]; +for (int i = 0; i 1000; i++) { +[entries addObject:@{ + @language: @en, + @domain: @wikipedia.org, + @title: [[NSUUID UUID] UUIDString], + @date: [[NSDateFormatter wmf_iso8601Formatter] stringFromDate:[NSDate date]], + @scrollPosition: @0, + @discoveryMethod: [MWKHistoryEntry stringForDiscoveryMethod:MWKHistoryDiscoveryMethodLink] + }]; +} + +[self measureBlock:^{ +MWKHistoryList* list = [[MWKHistoryList alloc] initWithDict:NSDictionaryOfVariableBindings(entries)]; +XCTAssertEqual(list.length, [entries count]); +}]; +} + +@end diff --git a/Wikipedia.xcodeproj/project.pbxproj b/Wikipedia.xcodeproj/project.pbxproj index 5e52831..777b9af 100644 --- a/Wikipedia.xcodeproj/project.pbxproj +++ b/Wikipedia.xcodeproj/project.pbxproj @@ -332,6 +332,7 @@ BCF012331AD2FA38008D3675 /* assets in Resources */ = {isa = PBXBuildFile; fileRef = BCF012321AD2FA38008D3675 /* assets */; }; BCFE026A1B41ABB5003752B7 /* MWKHistoryListCorruptDataTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BCFE02691B41ABB5003752B7 /* MWKHistoryListCorruptDataTests.m */; }; BCFE026F1B41B482003752B7 /* MWKSavedPageListCorruptDataTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BCFE026E1B41B482003752B7 /* MWKSavedPageListCorruptDataTests.m */; }; + BCFE02781B41FA12003752B7 /* MWKHistoryListPerformanceTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BCFE02771B41FA12003752B7 /* MWKHistoryListPerformanceTests.m */; }; C42D947E1A937DAC00A4871A /* SavedArticlesFetcher.m in Sources */ = {isa = PBXBuildFile; fileRef = C42D947D1A937DAC00A4871A /* SavedArticlesFetcher.m */; }; C42D94861A937DE000A4871A /* WMFBorderButton.m in Sources */ = {isa = PBXBuildFile; fileRef = C42D94831A937DE000A4871A /* WMFBorderButton.m */; }; C42D94871A937DE000A4871A /* WMFProgressLineView.m in Sources */ = {isa = PBXBuildFile; fileRef = C42D94851A937DE000A4871A /* WMFProgressLineView.m */; }; @@ -979,6 +980,7 @@ BCF012321AD2FA38008D3675 /* assets */ = {isa = PBXFileReference; lastKnownFileType = folder; name = assets; path = ../Wikipedia/assets; sourceTree = group; }; BCFE02691B41ABB5003752B7 /* MWKHistoryListCorruptDataTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MWKHistoryListCorruptDataTests.m; sourceTree = group; }; BCFE026E1B41B482003752B7 /* MWKSavedPageListCorruptDataTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MWKSavedPageListCorruptDataTests.m; sourceTree = group; }; + BCFE02771B41FA12003752B7 /* MWKHistoryListPerformanceTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MWKHistoryListPerformanceTests.m; sourceTree = group; }; C42D947C1A937DAC00A4871A /* SavedArticlesFetcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SavedArticlesFetcher.h; sourceTree = group; }; C42D947D1A937DAC00A4871A /* SavedArticlesFetcher.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SavedArticlesFetcher.m; sourceTree = group; }; C42D94821A937DE000A4871A /* WMFBorderButton.h */ = {isa = PBXFileReference; fileEncoding = 4;
[MediaWiki-commits] [Gerrit] history list performance tests - change (apps...wikipedia)
jenkins-bot has submitted this change and it was merged. Change subject: history list performance tests .. history list performance tests added in repsonse to user reports of history list slowness. performance tests show variable-to-insignificant differences between reading w/ and w/o try/catch blocks. Change-Id: I20ec399ec283240bd8d5dd56f8fac0755d4719a2 --- A MediaWikiKit/MediaWikiKitTests/MWKHistoryListPerformanceTests.m M Wikipedia.xcodeproj/project.pbxproj M Wikipedia.xcodeproj/xcshareddata/xcschemes/Wikipedia.xcscheme 3 files changed, 49 insertions(+), 1 deletion(-) Approvals: Fjalapeno: Looks good to me, approved jenkins-bot: Verified diff --git a/MediaWikiKit/MediaWikiKitTests/MWKHistoryListPerformanceTests.m b/MediaWikiKit/MediaWikiKitTests/MWKHistoryListPerformanceTests.m new file mode 100644 index 000..72b458d --- /dev/null +++ b/MediaWikiKit/MediaWikiKitTests/MWKHistoryListPerformanceTests.m @@ -0,0 +1,41 @@ +// +// MWKHistoryListPerformanceTests.m +// Wikipedia +// +// Created by Brian Gerstle on 6/29/15. +// Copyright (c) 2015 Wikimedia Foundation. All rights reserved. +// + +#import UIKit/UIKit.h +#import XCTest/XCTest.h + +#import NSDateFormatter+WMFExtensions.h +#import WMFTestFixtureUtilities.h +#import MWKHistoryList.h + +@interface MWKHistoryListPerformanceTests : XCTestCase + +@end + +@implementation MWKHistoryListPerformanceTests + +- (void)testReadPerformance { +NSMutableArray* entries = [NSMutableArray arrayWithCapacity:1000]; +for (int i = 0; i 1000; i++) { +[entries addObject:@{ + @language: @en, + @domain: @wikipedia.org, + @title: [[NSUUID UUID] UUIDString], + @date: [[NSDateFormatter wmf_iso8601Formatter] stringFromDate:[NSDate date]], + @scrollPosition: @0, + @discoveryMethod: [MWKHistoryEntry stringForDiscoveryMethod:MWKHistoryDiscoveryMethodLink] + }]; +} + +[self measureBlock:^{ +MWKHistoryList* list = [[MWKHistoryList alloc] initWithDict:NSDictionaryOfVariableBindings(entries)]; +XCTAssertEqual(list.length, [entries count]); +}]; +} + +@end diff --git a/Wikipedia.xcodeproj/project.pbxproj b/Wikipedia.xcodeproj/project.pbxproj index 5e52831..777b9af 100644 --- a/Wikipedia.xcodeproj/project.pbxproj +++ b/Wikipedia.xcodeproj/project.pbxproj @@ -332,6 +332,7 @@ BCF012331AD2FA38008D3675 /* assets in Resources */ = {isa = PBXBuildFile; fileRef = BCF012321AD2FA38008D3675 /* assets */; }; BCFE026A1B41ABB5003752B7 /* MWKHistoryListCorruptDataTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BCFE02691B41ABB5003752B7 /* MWKHistoryListCorruptDataTests.m */; }; BCFE026F1B41B482003752B7 /* MWKSavedPageListCorruptDataTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BCFE026E1B41B482003752B7 /* MWKSavedPageListCorruptDataTests.m */; }; + BCFE02781B41FA12003752B7 /* MWKHistoryListPerformanceTests.m in Sources */ = {isa = PBXBuildFile; fileRef = BCFE02771B41FA12003752B7 /* MWKHistoryListPerformanceTests.m */; }; C42D947E1A937DAC00A4871A /* SavedArticlesFetcher.m in Sources */ = {isa = PBXBuildFile; fileRef = C42D947D1A937DAC00A4871A /* SavedArticlesFetcher.m */; }; C42D94861A937DE000A4871A /* WMFBorderButton.m in Sources */ = {isa = PBXBuildFile; fileRef = C42D94831A937DE000A4871A /* WMFBorderButton.m */; }; C42D94871A937DE000A4871A /* WMFProgressLineView.m in Sources */ = {isa = PBXBuildFile; fileRef = C42D94851A937DE000A4871A /* WMFProgressLineView.m */; }; @@ -979,6 +980,7 @@ BCF012321AD2FA38008D3675 /* assets */ = {isa = PBXFileReference; lastKnownFileType = folder; name = assets; path = ../Wikipedia/assets; sourceTree = group; }; BCFE02691B41ABB5003752B7 /* MWKHistoryListCorruptDataTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MWKHistoryListCorruptDataTests.m; sourceTree = group; }; BCFE026E1B41B482003752B7 /* MWKSavedPageListCorruptDataTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MWKSavedPageListCorruptDataTests.m; sourceTree = group; }; + BCFE02771B41FA12003752B7 /* MWKHistoryListPerformanceTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MWKHistoryListPerformanceTests.m; sourceTree = group; }; C42D947C1A937DAC00A4871A /* SavedArticlesFetcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SavedArticlesFetcher.h; sourceTree = group; }; C42D947D1A937DAC00A4871A /* SavedArticlesFetcher.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SavedArticlesFetcher.m; sourceTree = group; };