# Copyright 2017 The Chromium Authors # 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()