Commit 53d6cf98 authored by Brian Sheedy's avatar Brian Sheedy Committed by Commit Bot

Fix handling of missing Gold links

Fixes the Gold interaction code not properly handling the case where a
bug on Gold's end prevents it from writing a triage link to the provided
file.

Bug: 1124368
Change-Id: Ic3e9a4d8808b97831fba1c4f42338b6b1435acde
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2391505
Commit-Queue: Brian Sheedy <bsheedy@chromium.org>
Commit-Queue: Sven Zheng <svenzheng@chromium.org>
Auto-Submit: Brian Sheedy <bsheedy@chromium.org>
Reviewed-by: default avatarSven Zheng <svenzheng@chromium.org>
Cr-Commit-Position: refs/heads/master@{#804107}
parent 745d20af
...@@ -282,9 +282,16 @@ class SkiaGoldSession(object): ...@@ -282,9 +282,16 @@ class SkiaGoldSession(object):
try: try:
with open(self._triage_link_file) as tlf: with open(self._triage_link_file) as tlf:
triage_link = tlf.read().strip() triage_link = tlf.read().strip()
self._comparison_results[name].internal_triage_link = triage_link if not triage_link:
self._comparison_results[name].public_triage_link =\ self._comparison_results[name].triage_link_omission_reason = (
self._GeneratePublicTriageLink(triage_link) 'Gold did not provide a triage link. This is likely a bug on '
"Gold's end.")
self._comparison_results[name].internal_triage_link = None
self._comparison_results[name].public_triage_link = None
else:
self._comparison_results[name].internal_triage_link = triage_link
self._comparison_results[name].public_triage_link =\
self._GeneratePublicTriageLink(triage_link)
except IOError: except IOError:
self._comparison_results[name].triage_link_omission_reason = ( self._comparison_results[name].triage_link_omission_reason = (
'Failed to read triage link from file') 'Failed to read triage link from file')
......
...@@ -622,6 +622,27 @@ class SkiaGoldSessionCompareTest(fake_filesystem_unittest.TestCase): ...@@ -622,6 +622,27 @@ class SkiaGoldSessionCompareTest(fake_filesystem_unittest.TestCase):
self.assertEqual(session.GetTriageLinks('name'), self.assertEqual(session.GetTriageLinks('name'),
(public_link, internal_link)) (public_link, internal_link))
@mock.patch.object(skia_gold_session.SkiaGoldSession, '_RunCmdForRcAndOutput')
def test_validOmissionOnMissingLink(self, cmd_mock):
args = createSkiaGoldArgs(git_revision='a')
sgp = skia_gold_properties.SkiaGoldProperties(args)
session = skia_gold_session.SkiaGoldSession(self._working_dir, sgp,
'keys_file', None, None)
def WriteTriageLinkFile(_):
with open(session._triage_link_file, 'w'):
pass
return (1, None)
cmd_mock.side_effect = WriteTriageLinkFile
rc, _ = session.Compare('name', 'png_file')
self.assertEqual(rc, 1)
comparison_result = session._comparison_results['name']
self.assertEqual(comparison_result.public_triage_link, None)
self.assertEqual(comparison_result.internal_triage_link, None)
self.assertIn('Gold did not provide a triage link',
comparison_result.triage_link_omission_reason)
@mock.patch.object(skia_gold_session.SkiaGoldSession, '_RunCmdForRcAndOutput') @mock.patch.object(skia_gold_session.SkiaGoldSession, '_RunCmdForRcAndOutput')
def test_validOmissionOnIoError(self, cmd_mock): def test_validOmissionOnIoError(self, cmd_mock):
cmd_mock.return_value = (1, None) cmd_mock.return_value = (1, None)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment