WebKit Bugzilla
Attachment 341148 Details for
Bug 185925
: OSBuildFetcher should respect maxRevision while finding OS builds to report.
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Patch
bug-185925-20180523165922.patch (text/plain), 25.11 KB, created by
dewei_zhu
on 2018-05-23 16:59:23 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
dewei_zhu
Created:
2018-05-23 16:59:23 PDT
Size:
25.11 KB
patch
obsolete
>Subversion Revision: 232134 >diff --git a/Websites/perf.webkit.org/ChangeLog b/Websites/perf.webkit.org/ChangeLog >index bd5b024c043e92c77a2c547c465905c914e7c5de..addeb6ab7bd541831fd03b7ed10528c8f1b3db5c 100644 >--- a/Websites/perf.webkit.org/ChangeLog >+++ b/Websites/perf.webkit.org/ChangeLog >@@ -1,3 +1,16 @@ >+2018-05-23 Dewei Zhu <dewei_zhu@apple.com> >+ >+ OSBuildFetcher should respect maxRevision while finding OS builds to report. >+ https://bugs.webkit.org/show_bug.cgi?id=185925 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * server-tests/tools-os-build-fetcher-tests.js: Fix a typo in the unit tests. >+ Added unit tests for this change. Aslo convert an existing test using async. >+ * tools/js/os-build-fetcher.js: >+ (prototype._fetchAvailableBuilds): It should also use 'maxRevision' to filter builds to be reported. >+ (prototype._commitsForAvailableBuilds): Takes maxOrder as fifth argument. >+ > 2018-05-10 Dewei Zhu <dewei_zhu@apple.com> > > CommitLogViewer._preceedingCommit should not always be null >diff --git a/Websites/perf.webkit.org/server-tests/tools-os-build-fetcher-tests.js b/Websites/perf.webkit.org/server-tests/tools-os-build-fetcher-tests.js >index d65c6ce1d8c2c0ecbd925fa20b4f03d6813d7f91..c008b007449b9adcb9c7b39baa5039d80a5b6897 100644 >--- a/Websites/perf.webkit.org/server-tests/tools-os-build-fetcher-tests.js >+++ b/Websites/perf.webkit.org/server-tests/tools-os-build-fetcher-tests.js >@@ -77,7 +77,7 @@ describe('OSBuildFetcher', function() { > }; > > >- const configWithoutownedCommitCommand = { >+ const configWithoutOwnedCommitCommand = { > 'name': 'OSX', > 'customCommands': [ > { >@@ -124,9 +124,9 @@ describe('OSBuildFetcher', function() { > describe('OSBuilderFetcher._commitsForAvailableBuilds', () => { > it('should only return commits whose orders are higher than specified order', () => { > const logger = new MockLogger; >- const fetchter = new OSBuildFetcher({}, null, null, MockSubprocess, logger); >+ const fetcher = new OSBuildFetcher({}, null, null, MockSubprocess, logger); > const waitForInvocationPromise = MockSubprocess.waitForInvocation(); >- const fetchCommitsPromise = fetchter._commitsForAvailableBuilds('OSX', ['list', 'build1'], '^\\.*$', 1604000000); >+ const fetchCommitsPromise = fetcher._commitsForAvailableBuilds('OSX', ['list', 'build1'], '^\\.*$', 1604000000, 1606000000); > > return waitForInvocationPromise.then(() => { > assert.equal(MockSubprocess.invocations.length, 1); >@@ -139,14 +139,31 @@ describe('OSBuildFetcher', function() { > assert.deepEqual(results[1], {repository: 'OSX', order: 1605032100, revision: '16F321'}); > }); > }); >+ >+ it('should only return commits whose orders are higher than minOrder and lower than the maxOrder', () => { >+ const logger = new MockLogger; >+ const fetcher = new OSBuildFetcher({}, null, null, MockSubprocess, logger); >+ const waitForInvocationPromise = MockSubprocess.waitForInvocation(); >+ const fetchCommitsPromise = fetcher._commitsForAvailableBuilds('OSX', ['list', 'build1'], '^\\.*$', 1604000000, 1605000000); >+ >+ return waitForInvocationPromise.then(() => { >+ assert.equal(MockSubprocess.invocations.length, 1); >+ assert.deepEqual(MockSubprocess.invocations[0].command, ['list', 'build1']); >+ MockSubprocess.invocations[0].resolve('16D321\n16E321z\n\n16F321'); >+ return fetchCommitsPromise; >+ }).then((results) => { >+ assert.equal(results.length, 1); >+ assert.deepEqual(results[0], {repository: 'OSX', order: 1604032126, revision: '16E321z'}); >+ }); >+ }); > }); > > describe('OSBuildFetcher._addOwnedCommitsForBuild', () => { > it('should add owned-commit info for commits', () => { > const logger = new MockLogger; >- const fetchter = new OSBuildFetcher({}, null, null, MockSubprocess, logger); >+ const fetcher = new OSBuildFetcher({}, null, null, MockSubprocess, logger); > const waitForInvocationPromise = MockSubprocess.waitForInvocation(); >- const addownedCommitPromise = fetchter._addOwnedCommitsForBuild([osxCommit, anotherOSXCommit], ['ownedCommit', 'for', 'revision']); >+ const addownedCommitPromise = fetcher._addOwnedCommitsForBuild([osxCommit, anotherOSXCommit], ['ownedCommit', 'for', 'revision']); > > return waitForInvocationPromise.then(() => { > assert.equal(MockSubprocess.invocations.length, 1); >@@ -172,9 +189,9 @@ describe('OSBuildFetcher', function() { > > it('should fail if the command to get owned-commit info fails', () => { > const logger = new MockLogger; >- const fetchter = new OSBuildFetcher({}, null, null, MockSubprocess, logger); >+ const fetcher = new OSBuildFetcher({}, null, null, MockSubprocess, logger); > const waitForInvocationPromise = MockSubprocess.waitForInvocation(); >- const addownedCommitPromise = fetchter._addOwnedCommitsForBuild([osxCommit], ['ownedCommit', 'for', 'revision']) >+ const addownedCommitPromise = fetcher._addOwnedCommitsForBuild([osxCommit], ['ownedCommit', 'for', 'revision']) > > return waitForInvocationPromise.then(() => { > assert.equal(MockSubprocess.invocations.length, 1); >@@ -193,9 +210,9 @@ describe('OSBuildFetcher', function() { > > it('should fail if entries in owned-commits does not contain revision', () => { > const logger = new MockLogger; >- const fetchter = new OSBuildFetcher({}, null, null, MockSubprocess, logger); >+ const fetcher = new OSBuildFetcher({}, null, null, MockSubprocess, logger); > const waitForInvocationPromise = MockSubprocess.waitForInvocation(); >- const addownedCommitPromise = fetchter._addOwnedCommitsForBuild([osxCommit], ['ownedCommit', 'for', 'revision']) >+ const addownedCommitPromise = fetcher._addOwnedCommitsForBuild([osxCommit], ['ownedCommit', 'for', 'revision']) > > return waitForInvocationPromise.then(() => { > assert.equal(MockSubprocess.invocations.length, 1); >@@ -225,7 +242,7 @@ describe('OSBuildFetcher', function() { > > it('should report all build commits with owned-commits', () => { > const logger = new MockLogger; >- const fetchter = new OSBuildFetcher(config, TestServer.remoteAPI(), slaveAuth, MockSubprocess, logger); >+ const fetcher = new OSBuildFetcher(config, TestServer.remoteAPI(), slaveAuth, MockSubprocess, logger); > const db = TestServer.database(); > let fetchAndReportPromise = null; > let fetchAvailableBuildsPromise = null; >@@ -251,7 +268,7 @@ describe('OSBuildFetcher', function() { > assert.equal(result['commits'][0]['revision'], 'Sierra16E33g'); > assert.equal(result['commits'][0]['order'], 1604003307); > const waitForInvocationPromise = MockSubprocess.waitForInvocation(); >- fetchAvailableBuildsPromise = fetchter._fetchAvailableBuilds(); >+ fetchAvailableBuildsPromise = fetcher._fetchAvailableBuilds(); > return waitForInvocationPromise; > }).then(() => { > assert.equal(invocations.length, 1); >@@ -281,7 +298,7 @@ describe('OSBuildFetcher', function() { > }).then((results) => { > assert.equal(results.length, 3); > MockSubprocess.reset(); >- fetchAndReportPromise = fetchter.fetchAndReportNewBuilds(); >+ fetchAndReportPromise = fetcher.fetchAndReportNewBuilds(); > return MockSubprocess.waitForInvocation(); > }).then(() => { > assert.equal(invocations.length, 1); >@@ -355,94 +372,166 @@ describe('OSBuildFetcher', function() { > }); > }); > >- it('should report commits without owned-commits if "ownedCommitCommand" is not specified in config', () => { >+ it('should report commits without owned-commits if "ownedCommitCommand" is not specified in config', async () => { >+ > const logger = new MockLogger; >- const fetchter = new OSBuildFetcher(configWithoutownedCommitCommand, TestServer.remoteAPI(), slaveAuth, MockSubprocess, logger); >+ const fetcher = new OSBuildFetcher(configWithoutOwnedCommitCommand, TestServer.remoteAPI(), slaveAuth, MockSubprocess, logger); > const db = TestServer.database(); >- let fetchAndReportPromise = null; >- let fetchAvailableBuildsPromise = null; >- >- return addSlaveForReport(emptyReport).then(() => { >- return Promise.all([ >- db.insert('repositories', {'id': 10, 'name': 'OSX'}), >- db.insert('commits', {'repository': 10, 'revision': 'Sierra16D67', 'order': 1603006700, 'reported': true}), >- db.insert('commits', {'repository': 10, 'revision': 'Sierra16D68', 'order': 1603006800, 'reported': true}), >- db.insert('commits', {'repository': 10, 'revision': 'Sierra16D69', 'order': 1603006900, 'reported': false}), >- db.insert('commits', {'repository': 10, 'revision': 'Sierra16E32', 'order': 1604003200, 'reported': true}), >- db.insert('commits', {'repository': 10, 'revision': 'Sierra16E33', 'order': 1604003300, 'reported': true}), >- db.insert('commits', {'repository': 10, 'revision': 'Sierra16E33g', 'order': 1604003307, 'reported': true})]); >- }).then(() => { >- return TestServer.remoteAPI().getJSON('/api/commits/OSX/last-reported?from=1603000000&to=1603099900'); >- }).then((result) => { >- assert.equal(result['commits'].length, 1); >- assert.equal(result['commits'][0]['revision'], 'Sierra16D68'); >- assert.equal(result['commits'][0]['order'], 1603006800); >- >- return TestServer.remoteAPI().getJSON('/api/commits/OSX/last-reported?from=1604000000&to=1604099900'); >- }).then((result) => { >- assert.equal(result['commits'].length, 1); >- assert.equal(result['commits'][0]['revision'], 'Sierra16E33g'); >- assert.equal(result['commits'][0]['order'], 1604003307); >- const waitForInvocationPromise = MockSubprocess.waitForInvocation(); >- fetchAndReportPromise = fetchter.fetchAndReportNewBuilds(); >- return waitForInvocationPromise; >- }).then(() => { >- assert.equal(invocations.length, 1); >- assert.deepEqual(invocations[0].command, ['list', 'all osx 16Dxx builds']); >- invocations[0].resolve('\n\nSierra16D68\nSierra16D69\n'); >- return MockSubprocess.resetAndWaitForInvocation(); >- }).then(() => { >- assert.equal(invocations.length, 1); >- assert.deepEqual(invocations[0].command, ['list', 'all osx 16Exx builds']); >- invocations[0].resolve('\n\nSierra16E32\nSierra16E33\nSierra16E33h\nSierra16E34'); >- return fetchAndReportPromise; >- }).then((result) => { >- assert.equal(result['status'], 'OK'); >- return Promise.all([ >- db.selectRows('repositories', {'name': 'WebKit'}), >- db.selectRows('repositories', {'name': 'JavaScriptCore'}), >- db.selectRows('commits', {'revision': 'Sierra16D69'}), >- db.selectRows('commits', {'revision': 'Sierra16E33h'}), >- db.selectRows('commits', {'revision': 'Sierra16E34'})]); >- }).then((results) => { >- const webkitRepository = results[0]; >- const jscRepository = results[1]; >- const osxCommit16D69 = results[2]; >- const osxCommit16E33h = results[3]; >- const osxCommit16E34 = results[4]; >- >- assert.equal(webkitRepository.length, 0); >- assert.equal(jscRepository.length, 0); >- >- assert.equal(osxCommit16D69.length, 1); >- assert.equal(osxCommit16D69[0]['repository'], 10); >- assert.equal(osxCommit16D69[0]['order'], 1603006900); > >- assert.equal(osxCommit16E33h.length, 1); >- assert.equal(osxCommit16E33h[0]['repository'], 10); >- assert.equal(osxCommit16E33h[0]['order'], 1604003308); >- >- assert.equal(osxCommit16E34.length, 1); >- assert.equal(osxCommit16E34[0]['repository'], 10); >- assert.equal(osxCommit16E34[0]['order'], 1604003400); >+ await addSlaveForReport(emptyReport); >+ await Promise.all([ >+ db.insert('repositories', {'id': 10, 'name': 'OSX'}), >+ db.insert('commits', {'repository': 10, 'revision': 'Sierra16D67', 'order': 1603006700, 'reported': true}), >+ db.insert('commits', {'repository': 10, 'revision': 'Sierra16D68', 'order': 1603006800, 'reported': true}), >+ db.insert('commits', {'repository': 10, 'revision': 'Sierra16D69', 'order': 1603006900, 'reported': false}), >+ db.insert('commits', {'repository': 10, 'revision': 'Sierra16E32', 'order': 1604003200, 'reported': true}), >+ db.insert('commits', {'repository': 10, 'revision': 'Sierra16E33', 'order': 1604003300, 'reported': true}), >+ db.insert('commits', {'repository': 10, 'revision': 'Sierra16E33g', 'order': 1604003307, 'reported': true})]); >+ >+ let result = await TestServer.remoteAPI().getJSON('/api/commits/OSX/last-reported?from=1603000000&to=1603099900'); >+ assert.equal(result['commits'].length, 1); >+ assert.equal(result['commits'][0]['revision'], 'Sierra16D68'); >+ assert.equal(result['commits'][0]['order'], 1603006800); >+ >+ result = await TestServer.remoteAPI().getJSON('/api/commits/OSX/last-reported?from=1604000000&to=1604099900'); >+ assert.equal(result['commits'].length, 1); >+ assert.equal(result['commits'][0]['revision'], 'Sierra16E33g'); >+ assert.equal(result['commits'][0]['order'], 1604003307); >+ const waitForInvocationPromise = MockSubprocess.waitForInvocation(); >+ const fetchAndReportPromise = fetcher.fetchAndReportNewBuilds(); >+ await waitForInvocationPromise; >+ assert.equal(invocations.length, 1); >+ assert.deepEqual(invocations[0].command, ['list', 'all osx 16Dxx builds']); >+ invocations[0].resolve('\n\nSierra16D68\nSierra16D69'); >+ >+ await MockSubprocess.resetAndWaitForInvocation(); >+ assert.equal(invocations.length, 1); >+ assert.deepEqual(invocations[0].command, ['list', 'all osx 16Exx builds']); >+ invocations[0].resolve('\n\nSierra16E32\nSierra16E33\nSierra16E33h\nSierra16E34'); >+ >+ result = await fetchAndReportPromise; >+ assert.equal(result['status'], 'OK'); >+ const results = await Promise.all([ >+ db.selectRows('repositories', {'name': 'WebKit'}), >+ db.selectRows('repositories', {'name': 'JavaScriptCore'}), >+ db.selectRows('commits', {'revision': 'Sierra16D69'}), >+ db.selectRows('commits', {'revision': 'Sierra16E33h'}), >+ db.selectRows('commits', {'revision': 'Sierra16E34'})]); >+ >+ const webkitRepository = results[0]; >+ const jscRepository = results[1]; >+ const osxCommit16D69 = results[2]; >+ const osxCommit16E33h = results[3]; >+ const osxCommit16E34 = results[4]; >+ >+ assert.equal(webkitRepository.length, 0); >+ assert.equal(jscRepository.length, 0); >+ >+ assert.equal(osxCommit16D69.length, 1); >+ assert.equal(osxCommit16D69[0]['repository'], 10); >+ assert.equal(osxCommit16D69[0]['order'], 1603006900); >+ >+ assert.equal(osxCommit16E33h.length, 1); >+ assert.equal(osxCommit16E33h[0]['repository'], 10); >+ assert.equal(osxCommit16E33h[0]['order'], 1604003308); >+ >+ assert.equal(osxCommit16E34.length, 1); >+ assert.equal(osxCommit16E34[0]['repository'], 10); >+ assert.equal(osxCommit16E34[0]['order'], 1604003400); >+ >+ >+ result = await TestServer.remoteAPI().getJSON('/api/commits/OSX/last-reported?from=1603000000&to=1603099900'); >+ assert.equal(result['commits'].length, 1); >+ assert.equal(result['commits'][0]['revision'], 'Sierra16D69'); >+ assert.equal(result['commits'][0]['order'], 1603006900); >+ >+ result = await TestServer.remoteAPI().getJSON('/api/commits/OSX/last-reported?from=1604000000&to=1604099900'); >+ assert.equal(result['commits'].length, 1); >+ assert.equal(result['commits'][0]['revision'], 'Sierra16E34'); >+ assert.equal(result['commits'][0]['order'], 1604003400); >+ }); > >- return TestServer.remoteAPI().getJSON('/api/commits/OSX/last-reported?from=1603000000&to=1603099900'); >- }).then((result) => { >- assert.equal(result['commits'].length, 1); >- assert.equal(result['commits'][0]['revision'], 'Sierra16D69'); >- assert.equal(result['commits'][0]['order'], 1603006900); >+ it('should report commits within specified revision range', async () => { >+ const logger = new MockLogger; >+ const fetcher = new OSBuildFetcher(configWithoutOwnedCommitCommand, TestServer.remoteAPI(), slaveAuth, MockSubprocess, logger); >+ const db = TestServer.database(); > >- return TestServer.remoteAPI().getJSON('/api/commits/OSX/last-reported?from=1604000000&to=1604099900'); >- }).then((result) => { >- assert.equal(result['commits'].length, 1); >- assert.equal(result['commits'][0]['revision'], 'Sierra16E34'); >- assert.equal(result['commits'][0]['order'], 1604003400); >- }); >+ await addSlaveForReport(emptyReport); >+ await Promise.all([ >+ db.insert('repositories', {'id': 10, 'name': 'OSX'}), >+ db.insert('commits', {'repository': 10, 'revision': 'Sierra16D67', 'order': 1603006700, 'reported': true}), >+ db.insert('commits', {'repository': 10, 'revision': 'Sierra16D68', 'order': 1603006800, 'reported': true}), >+ db.insert('commits', {'repository': 10, 'revision': 'Sierra16D69', 'order': 1603006900, 'reported': false}), >+ db.insert('commits', {'repository': 10, 'revision': 'Sierra16E32', 'order': 1604003200, 'reported': true}), >+ db.insert('commits', {'repository': 10, 'revision': 'Sierra16E33', 'order': 1604003300, 'reported': true}), >+ db.insert('commits', {'repository': 10, 'revision': 'Sierra16E33g', 'order': 1604003307, 'reported': true})]); >+ >+ let result = await TestServer.remoteAPI().getJSON('/api/commits/OSX/last-reported?from=1603000000&to=1603099900'); >+ assert.equal(result['commits'].length, 1); >+ assert.equal(result['commits'][0]['revision'], 'Sierra16D68'); >+ assert.equal(result['commits'][0]['order'], 1603006800); >+ >+ result = await TestServer.remoteAPI().getJSON('/api/commits/OSX/last-reported?from=1604000000&to=1604099900'); >+ assert.equal(result['commits'].length, 1); >+ assert.equal(result['commits'][0]['revision'], 'Sierra16E33g'); >+ assert.equal(result['commits'][0]['order'], 1604003307); >+ const waitForInvocationPromise = MockSubprocess.waitForInvocation(); >+ const fetchAndReportPromise = fetcher.fetchAndReportNewBuilds(); >+ await waitForInvocationPromise; >+ assert.equal(invocations.length, 1); >+ assert.deepEqual(invocations[0].command, ['list', 'all osx 16Dxx builds']); >+ invocations[0].resolve('\n\nSierra16D68\nSierra16D69\nSierra16D10000'); >+ >+ await MockSubprocess.resetAndWaitForInvocation(); >+ assert.equal(invocations.length, 1); >+ assert.deepEqual(invocations[0].command, ['list', 'all osx 16Exx builds']); >+ invocations[0].resolve('\n\nSierra16E32\nSierra16E33\nSierra16E33h\nSierra16E34\nSierra16E10000'); >+ >+ result = await fetchAndReportPromise; >+ assert.equal(result['status'], 'OK'); >+ const results = await Promise.all([ >+ db.selectRows('repositories', {'name': 'WebKit'}), >+ db.selectRows('repositories', {'name': 'JavaScriptCore'}), >+ db.selectRows('commits', {'revision': 'Sierra16D69'}), >+ db.selectRows('commits', {'revision': 'Sierra16E33h'}), >+ db.selectRows('commits', {'revision': 'Sierra16E34'})]); >+ >+ const webkitRepository = results[0]; >+ const jscRepository = results[1]; >+ const osxCommit16D69 = results[2]; >+ const osxCommit16E33h = results[3]; >+ const osxCommit16E34 = results[4]; >+ >+ assert.equal(webkitRepository.length, 0); >+ assert.equal(jscRepository.length, 0); >+ >+ assert.equal(osxCommit16D69.length, 1); >+ assert.equal(osxCommit16D69[0]['repository'], 10); >+ assert.equal(osxCommit16D69[0]['order'], 1603006900); >+ >+ assert.equal(osxCommit16E33h.length, 1); >+ assert.equal(osxCommit16E33h[0]['repository'], 10); >+ assert.equal(osxCommit16E33h[0]['order'], 1604003308); >+ >+ assert.equal(osxCommit16E34.length, 1); >+ assert.equal(osxCommit16E34[0]['repository'], 10); >+ assert.equal(osxCommit16E34[0]['order'], 1604003400); >+ >+ >+ result = await TestServer.remoteAPI().getJSON('/api/commits/OSX/last-reported?from=1603000000&to=1603099900'); >+ assert.equal(result['commits'].length, 1); >+ assert.equal(result['commits'][0]['revision'], 'Sierra16D69'); >+ assert.equal(result['commits'][0]['order'], 1603006900); >+ >+ result = await TestServer.remoteAPI().getJSON('/api/commits/OSX/last-reported?from=1604000000&to=1604099900'); >+ assert.equal(result['commits'].length, 1); >+ assert.equal(result['commits'][0]['revision'], 'Sierra16E34'); >+ assert.equal(result['commits'][0]['order'], 1604003400); > }); > > it('should stop reporting if any custom command fails', () => { > const logger = new MockLogger; >- const fetchter = new OSBuildFetcher(config, TestServer.remoteAPI(), slaveAuth, MockSubprocess, logger); >+ const fetcher = new OSBuildFetcher(config, TestServer.remoteAPI(), slaveAuth, MockSubprocess, logger); > const db = TestServer.database(); > let fetchAndReportPromise = null; > >@@ -469,7 +558,7 @@ describe('OSBuildFetcher', function() { > assert.equal(result['commits'][0]['order'], 1604003307); > > const waitForInvocationPromise = MockSubprocess.waitForInvocation(); >- fetchAndReportPromise = fetchter.fetchAndReportNewBuilds(); >+ fetchAndReportPromise = fetcher.fetchAndReportNewBuilds(); > return waitForInvocationPromise; > }).then(() => { > assert.equal(invocations.length, 1); >diff --git a/Websites/perf.webkit.org/tools/js/os-build-fetcher.js b/Websites/perf.webkit.org/tools/js/os-build-fetcher.js >index 3b795a3f2435d7d62bae7d14ee78cba05c6cf63e..94a9c267e6b40e4b131ce6d4fb0bd9d6116886ec 100644 >--- a/Websites/perf.webkit.org/tools/js/os-build-fetcher.js >+++ b/Websites/perf.webkit.org/tools/js/os-build-fetcher.js >@@ -62,7 +62,7 @@ class OSBuildFetcher { > > return this._remoteAPI.getJSONWithStatus(url).then((result) => { > const minOrder = result['commits'].length == 1 ? parseInt(result['commits'][0]['order']) : 0; >- return this._commitsForAvailableBuilds(repositoryName, command['command'], command['linesToIgnore'], minOrder); >+ return this._commitsForAvailableBuilds(repositoryName, command['command'], command['linesToIgnore'], minOrder, maxRevisionOrder); > }).then((commits) => { > const label = 'name' in command ? `"${command['name']}"` : `"${command['minRevision']}" to "${command['maxRevision']}"`; > this._logger.log(`Found ${commits.length} builds for ${label}`); >@@ -89,7 +89,7 @@ class OSBuildFetcher { > return ((major * 100 + kind) * 10000 + minor) * 100 + variant; > } > >- _commitsForAvailableBuilds(repository, command, linesToIgnore, minOrder) >+ _commitsForAvailableBuilds(repository, command, linesToIgnore, minOrder, maxOrder) > { > return this._subprocess.execute(command).then((output) => { > let lines = output.split('\n'); >@@ -98,7 +98,7 @@ class OSBuildFetcher { > lines = lines.filter((line) => !regex.exec(line)); > } > return lines.map((revision) => ({repository, revision, 'order': this._computeOrder(revision)})) >- .filter((commit) => commit['order'] > minOrder); >+ .filter((commit) => commit['order'] > minOrder && commit['order'] < maxOrder); > }); > } >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
rniwa
:
review+
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 185925
: 341148