|  | # Copyright 2017 The Chromium Authors. All rights reserved. | 
|  | # Use of this source code is governed by a BSD-style license that can be | 
|  | # found in the LICENSE file. | 
|  |  | 
|  | import unittest | 
|  | import compile_xcassets | 
|  |  | 
|  |  | 
|  | class TestFilterCompilerOutput(unittest.TestCase): | 
|  |  | 
|  | relative_paths = { | 
|  | '/Users/janedoe/chromium/src/Chromium.xcassets': | 
|  | '../../Chromium.xcassets', | 
|  | '/Users/janedoe/chromium/src/out/Default/Chromium.app/Assets.car': | 
|  | 'Chromium.app/Assets.car', | 
|  | } | 
|  |  | 
|  | def testNoError(self): | 
|  | self.assertEquals( | 
|  | '', | 
|  | compile_xcassets.FilterCompilerOutput( | 
|  | '/* com.apple.actool.compilation-results */\n' | 
|  | '/Users/janedoe/chromium/src/out/Default/Chromium.app/Assets.car\n', | 
|  | self.relative_paths)) | 
|  |  | 
|  | def testNoErrorRandomMessages(self): | 
|  | self.assertEquals( | 
|  | '', | 
|  | compile_xcassets.FilterCompilerOutput( | 
|  | '2017-07-04 04:59:19.460 ibtoold[23487:41214] CoreSimulator is att' | 
|  | 'empting to unload a stale CoreSimulatorService job.  Existing' | 
|  | ' job (com.apple.CoreSimulator.CoreSimulatorService.179.1.E8tt' | 
|  | 'yeDeVgWK) is from an older version and is being removed to pr' | 
|  | 'event problems.\n' | 
|  | '/* com.apple.actool.compilation-results */\n' | 
|  | '/Users/janedoe/chromium/src/out/Default/Chromium.app/Assets.car\n', | 
|  | self.relative_paths)) | 
|  |  | 
|  | def testWarning(self): | 
|  | self.assertEquals( | 
|  | '/* com.apple.actool.document.warnings */\n' | 
|  | '../../Chromium.xcassets:./image1.imageset/[universal][][][1x][][][][' | 
|  | '][][]: warning: The file "image1.png" for the image set "image1"' | 
|  | ' does not exist.\n', | 
|  | compile_xcassets.FilterCompilerOutput( | 
|  | '/* com.apple.actool.document.warnings */\n' | 
|  | '/Users/janedoe/chromium/src/Chromium.xcassets:./image1.imageset/[' | 
|  | 'universal][][][1x][][][][][][]: warning: The file "image1.png' | 
|  | '" for the image set "image1" does not exist.\n' | 
|  | '/* com.apple.actool.compilation-results */\n' | 
|  | '/Users/janedoe/chromium/src/out/Default/Chromium.app/Assets.car\n', | 
|  | self.relative_paths)) | 
|  |  | 
|  | def testError(self): | 
|  | self.assertEquals( | 
|  | '/* com.apple.actool.errors */\n' | 
|  | '../../Chromium.xcassets: error: The output directory "/Users/janedoe/' | 
|  | 'chromium/src/out/Default/Chromium.app" does not exist.\n', | 
|  | compile_xcassets.FilterCompilerOutput( | 
|  | '/* com.apple.actool.errors */\n' | 
|  | '/Users/janedoe/chromium/src/Chromium.xcassets: error: The output ' | 
|  | 'directory "/Users/janedoe/chromium/src/out/Default/Chromium.a' | 
|  | 'pp" does not exist.\n' | 
|  | '/* com.apple.actool.compilation-results */\n', | 
|  | self.relative_paths)) | 
|  |  | 
|  | def testSpurious(self): | 
|  | self.assertEquals( | 
|  | '/* com.apple.actool.document.warnings */\n' | 
|  | '../../Chromium.xcassets:./AppIcon.appiconset: warning: A 1024x1024 ap' | 
|  | 'p store icon is required for iOS apps\n', | 
|  | compile_xcassets.FilterCompilerOutput( | 
|  | '/* com.apple.actool.document.warnings */\n' | 
|  | '/Users/janedoe/chromium/src/Chromium.xcassets:./AppIcon.appiconse' | 
|  | 't: warning: A 1024x1024 app store icon is required for iOS ap' | 
|  | 'ps\n' | 
|  | '/* com.apple.actool.document.notices */\n' | 
|  | '/Users/janedoe/chromium/src/Chromium.xcassets:./AppIcon.appiconse' | 
|  | 't/[][ipad][76x76][][][1x][][]: notice: (null)\n', | 
|  | self.relative_paths)) | 
|  |  | 
|  | def testComplexError(self): | 
|  | self.assertEquals( | 
|  | '/* com.apple.actool.errors */\n' | 
|  | ': error: Failed to find a suitable device for the type SimDeviceType ' | 
|  | ': com.apple.dt.Xcode.IBSimDeviceType.iPad-2x with runtime SimRunt' | 
|  | 'ime : 10.3.1 (14E8301) - com.apple.CoreSimulator.SimRuntime.iOS-1' | 
|  | '0-3\n' | 
|  | '    Failure Reason: Failed to create SimDeviceSet at path /Users/jane' | 
|  | 'doe/Library/Developer/Xcode/UserData/IB Support/Simulator Devices' | 
|  | '. You\'ll want to check the logs in ~/Library/Logs/CoreSimulator ' | 
|  | 'to see why creating the SimDeviceSet failed.\n' | 
|  | '    Underlying Errors:\n' | 
|  | '        Description: Failed to initialize simulator device set.\n' | 
|  | '        Failure Reason: Failed to subscribe to notifications from Cor' | 
|  | 'eSimulatorService.\n' | 
|  | '        Underlying Errors:\n' | 
|  | '            Description: Error returned in reply to notification requ' | 
|  | 'est: Connection invalid\n' | 
|  | '            Failure Reason: Software caused connection abort\n', | 
|  | compile_xcassets.FilterCompilerOutput( | 
|  | '2017-07-07 10:37:27.367 ibtoold[88538:12553239] CoreSimulator det' | 
|  | 'ected Xcode.app relocation or CoreSimulatorService version ch' | 
|  | 'ange.  Framework path (/Applications/Xcode.app/Contents/Devel' | 
|  | 'oper/Library/PrivateFrameworks/CoreSimulator.framework) and v' | 
|  | 'ersion (375.21) does not match existing job path (/Library/De' | 
|  | 'veloper/PrivateFrameworks/CoreSimulator.framework/Versions/A/' | 
|  | 'XPCServices/com.apple.CoreSimulator.CoreSimulatorService.xpc)' | 
|  | ' and version (459.13).  Attempting to remove the stale servic' | 
|  | 'e in order to add the expected version.\n' | 
|  | '2017-07-07 10:37:27.625 ibtoold[88538:12553256] CoreSimulatorServ' | 
|  | 'ice connection interrupted.  Resubscribing to notifications.\n' | 
|  | '2017-07-07 10:37:27.632 ibtoold[88538:12553264] CoreSimulatorServ' | 
|  | 'ice connection became invalid.  Simulator services will no lo' | 
|  | 'nger be available.\n' | 
|  | '2017-07-07 10:37:27.642 ibtoold[88538:12553274] CoreSimulatorServ' | 
|  | 'ice connection became invalid.  Simulator services will no lo' | 
|  | 'nger be available.\n' | 
|  | '/* com.apple.actool.errors */\n' | 
|  | ': error: Failed to find a suitable device for the type SimDeviceT' | 
|  | 'ype : com.apple.dt.Xcode.IBSimDeviceType.iPad-2x with runtime' | 
|  | ' SimRuntime : 10.3.1 (14E8301) - com.apple.CoreSimulator.SimR' | 
|  | 'untime.iOS-10-3\n' | 
|  | '    Failure Reason: Failed to create SimDeviceSet at path /Users/' | 
|  | 'janedoe/Library/Developer/Xcode/UserData/IB Support/Simulator' | 
|  | ' Devices. You\'ll want to check the logs in ~/Library/Logs/Co' | 
|  | 'reSimulator to see why creating the SimDeviceSet failed.\n' | 
|  | '    Underlying Errors:\n' | 
|  | '        Description: Failed to initialize simulator device set.\n' | 
|  | '        Failure Reason: Failed to subscribe to notifications from' | 
|  | ' CoreSimulatorService.\n' | 
|  | '        Underlying Errors:\n' | 
|  | '            Description: Error returned in reply to notification ' | 
|  | 'request: Connection invalid\n' | 
|  | '            Failure Reason: Software caused connection abort\n' | 
|  | '/* com.apple.actool.compilation-results */\n', | 
|  | self.relative_paths)) | 
|  |  | 
|  |  | 
|  | if __name__ == '__main__': | 
|  | unittest.main() |