Home | History | Annotate | Download | only in test.expected
      1 [
      2   {
      3     "cmd": [
      4       "ios.py"
      5     ],
      6     "env": {
      7       "BUILDTYPE": "Release",
      8       "CHROME_HEADLESS": "1",
      9       "IOS_BUNDLE_ID": "com.google.dm",
     10       "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
     11       "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
     12       "SKIA_OUT": "[START_DIR]/out"
     13     },
     14     "infra_step": true,
     15     "name": "setup_device"
     16   },
     17   {
     18     "cmd": [
     19       "ideviceinstaller",
     20       "-i",
     21       "[START_DIR]/out/Release/dm.app"
     22     ],
     23     "env": {
     24       "BUILDTYPE": "Release",
     25       "CHROME_HEADLESS": "1",
     26       "IOS_BUNDLE_ID": "com.google.dm",
     27       "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
     28       "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
     29       "SKIA_OUT": "[START_DIR]/out"
     30     },
     31     "infra_step": true,
     32     "name": "install_dm"
     33   },
     34   {
     35     "cmd": [
     36       "ideviceinstaller",
     37       "-i",
     38       "[START_DIR]/out/Release/nanobench.app"
     39     ],
     40     "env": {
     41       "BUILDTYPE": "Release",
     42       "CHROME_HEADLESS": "1",
     43       "IOS_BUNDLE_ID": "com.google.dm",
     44       "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
     45       "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
     46       "SKIA_OUT": "[START_DIR]/out"
     47     },
     48     "infra_step": true,
     49     "name": "install_nanobench"
     50   },
     51   {
     52     "cmd": [
     53       "[START_DIR]/skia/platform_tools/ios/bin/ios_push_if_needed",
     54       "[START_DIR]/skia/resources",
     55       "resources"
     56     ],
     57     "env": {
     58       "BUILDTYPE": "Release",
     59       "CHROME_HEADLESS": "1",
     60       "IOS_BUNDLE_ID": "com.google.dm",
     61       "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
     62       "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
     63       "SKIA_OUT": "[START_DIR]/out"
     64     },
     65     "infra_step": true,
     66     "name": "push_if_needed [START_DIR]/skia/resources"
     67   },
     68   {
     69     "cmd": [
     70       "python",
     71       "-u",
     72       "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
     73       "--json-output",
     74       "/path/to/tmp/json",
     75       "copy",
     76       "[START_DIR]/skia/infra/bots/assets/skp/VERSION",
     77       "/path/to/tmp/"
     78     ],
     79     "env": {
     80       "IOS_BUNDLE_ID": "com.google.dm",
     81       "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice"
     82     },
     83     "infra_step": true,
     84     "name": "Get downloaded SKP VERSION"
     85   },
     86   {
     87     "cmd": [
     88       "python",
     89       "-u",
     90       "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
     91       "--json-output",
     92       "/path/to/tmp/json",
     93       "copy",
     94       "42",
     95       "[START_DIR]/tmp/SKP_VERSION"
     96     ],
     97     "env": {
     98       "IOS_BUNDLE_ID": "com.google.dm",
     99       "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice"
    100     },
    101     "infra_step": true,
    102     "name": "write SKP_VERSION"
    103   },
    104   {
    105     "cmd": [
    106       "[START_DIR]/skia/platform_tools/ios/bin/ios_cat_file",
    107       "tmp/SKP_VERSION"
    108     ],
    109     "env": {
    110       "BUILDTYPE": "Release",
    111       "CHROME_HEADLESS": "1",
    112       "IOS_BUNDLE_ID": "com.google.dm",
    113       "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
    114       "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
    115       "SKIA_OUT": "[START_DIR]/out"
    116     },
    117     "infra_step": true,
    118     "name": "cat_file tmp/SKP_VERSION",
    119     "stdout": "/path/to/tmp/"
    120   },
    121   {
    122     "cmd": [
    123       "[START_DIR]/skia/platform_tools/ios/bin/ios_rm",
    124       "tmp/SKP_VERSION"
    125     ],
    126     "env": {
    127       "BUILDTYPE": "Release",
    128       "CHROME_HEADLESS": "1",
    129       "IOS_BUNDLE_ID": "com.google.dm",
    130       "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
    131       "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
    132       "SKIA_OUT": "[START_DIR]/out"
    133     },
    134     "infra_step": true,
    135     "name": "rm tmp/SKP_VERSION"
    136   },
    137   {
    138     "cmd": [
    139       "[START_DIR]/skia/platform_tools/ios/bin/ios_rm",
    140       "skps"
    141     ],
    142     "env": {
    143       "BUILDTYPE": "Release",
    144       "CHROME_HEADLESS": "1",
    145       "IOS_BUNDLE_ID": "com.google.dm",
    146       "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
    147       "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
    148       "SKIA_OUT": "[START_DIR]/out"
    149     },
    150     "infra_step": true,
    151     "name": "rm skps"
    152   },
    153   {
    154     "cmd": [
    155       "[START_DIR]/skia/platform_tools/ios/bin/ios_mkdir",
    156       "skps"
    157     ],
    158     "env": {
    159       "BUILDTYPE": "Release",
    160       "CHROME_HEADLESS": "1",
    161       "IOS_BUNDLE_ID": "com.google.dm",
    162       "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
    163       "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
    164       "SKIA_OUT": "[START_DIR]/out"
    165     },
    166     "infra_step": true,
    167     "name": "mkdir skps"
    168   },
    169   {
    170     "cmd": [
    171       "[START_DIR]/skia/platform_tools/ios/bin/ios_push_if_needed",
    172       "[START_DIR]/skp",
    173       "skps"
    174     ],
    175     "env": {
    176       "BUILDTYPE": "Release",
    177       "CHROME_HEADLESS": "1",
    178       "IOS_BUNDLE_ID": "com.google.dm",
    179       "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
    180       "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
    181       "SKIA_OUT": "[START_DIR]/out"
    182     },
    183     "infra_step": true,
    184     "name": "push_if_needed [START_DIR]/skp"
    185   },
    186   {
    187     "cmd": [
    188       "[START_DIR]/skia/platform_tools/ios/bin/ios_push_file",
    189       "[START_DIR]/tmp/SKP_VERSION",
    190       "tmp/SKP_VERSION"
    191     ],
    192     "env": {
    193       "BUILDTYPE": "Release",
    194       "CHROME_HEADLESS": "1",
    195       "IOS_BUNDLE_ID": "com.google.dm",
    196       "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
    197       "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
    198       "SKIA_OUT": "[START_DIR]/out"
    199     },
    200     "infra_step": true,
    201     "name": "push_file [START_DIR]/tmp/SKP_VERSION"
    202   },
    203   {
    204     "cmd": [
    205       "python",
    206       "-u",
    207       "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
    208       "--json-output",
    209       "/path/to/tmp/json",
    210       "copy",
    211       "[START_DIR]/skia/infra/bots/assets/skimage/VERSION",
    212       "/path/to/tmp/"
    213     ],
    214     "env": {
    215       "IOS_BUNDLE_ID": "com.google.dm",
    216       "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice"
    217     },
    218     "infra_step": true,
    219     "name": "Get downloaded skimage VERSION"
    220   },
    221   {
    222     "cmd": [
    223       "python",
    224       "-u",
    225       "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
    226       "--json-output",
    227       "/path/to/tmp/json",
    228       "copy",
    229       "42",
    230       "[START_DIR]/tmp/SK_IMAGE_VERSION"
    231     ],
    232     "env": {
    233       "IOS_BUNDLE_ID": "com.google.dm",
    234       "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice"
    235     },
    236     "infra_step": true,
    237     "name": "write SK_IMAGE_VERSION"
    238   },
    239   {
    240     "cmd": [
    241       "[START_DIR]/skia/platform_tools/ios/bin/ios_cat_file",
    242       "tmp/SK_IMAGE_VERSION"
    243     ],
    244     "env": {
    245       "BUILDTYPE": "Release",
    246       "CHROME_HEADLESS": "1",
    247       "IOS_BUNDLE_ID": "com.google.dm",
    248       "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
    249       "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
    250       "SKIA_OUT": "[START_DIR]/out"
    251     },
    252     "infra_step": true,
    253     "name": "cat_file tmp/SK_IMAGE_VERSION",
    254     "stdout": "/path/to/tmp/"
    255   },
    256   {
    257     "cmd": [
    258       "[START_DIR]/skia/platform_tools/ios/bin/ios_rm",
    259       "tmp/SK_IMAGE_VERSION"
    260     ],
    261     "env": {
    262       "BUILDTYPE": "Release",
    263       "CHROME_HEADLESS": "1",
    264       "IOS_BUNDLE_ID": "com.google.dm",
    265       "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
    266       "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
    267       "SKIA_OUT": "[START_DIR]/out"
    268     },
    269     "infra_step": true,
    270     "name": "rm tmp/SK_IMAGE_VERSION"
    271   },
    272   {
    273     "cmd": [
    274       "[START_DIR]/skia/platform_tools/ios/bin/ios_rm",
    275       "images"
    276     ],
    277     "env": {
    278       "BUILDTYPE": "Release",
    279       "CHROME_HEADLESS": "1",
    280       "IOS_BUNDLE_ID": "com.google.dm",
    281       "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
    282       "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
    283       "SKIA_OUT": "[START_DIR]/out"
    284     },
    285     "infra_step": true,
    286     "name": "rm images"
    287   },
    288   {
    289     "cmd": [
    290       "[START_DIR]/skia/platform_tools/ios/bin/ios_mkdir",
    291       "images"
    292     ],
    293     "env": {
    294       "BUILDTYPE": "Release",
    295       "CHROME_HEADLESS": "1",
    296       "IOS_BUNDLE_ID": "com.google.dm",
    297       "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
    298       "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
    299       "SKIA_OUT": "[START_DIR]/out"
    300     },
    301     "infra_step": true,
    302     "name": "mkdir images"
    303   },
    304   {
    305     "cmd": [
    306       "[START_DIR]/skia/platform_tools/ios/bin/ios_push_if_needed",
    307       "[START_DIR]/skimage",
    308       "images"
    309     ],
    310     "env": {
    311       "BUILDTYPE": "Release",
    312       "CHROME_HEADLESS": "1",
    313       "IOS_BUNDLE_ID": "com.google.dm",
    314       "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
    315       "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
    316       "SKIA_OUT": "[START_DIR]/out"
    317     },
    318     "infra_step": true,
    319     "name": "push_if_needed [START_DIR]/skimage"
    320   },
    321   {
    322     "cmd": [
    323       "[START_DIR]/skia/platform_tools/ios/bin/ios_push_file",
    324       "[START_DIR]/tmp/SK_IMAGE_VERSION",
    325       "tmp/SK_IMAGE_VERSION"
    326     ],
    327     "env": {
    328       "BUILDTYPE": "Release",
    329       "CHROME_HEADLESS": "1",
    330       "IOS_BUNDLE_ID": "com.google.dm",
    331       "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
    332       "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
    333       "SKIA_OUT": "[START_DIR]/out"
    334     },
    335     "infra_step": true,
    336     "name": "push_file [START_DIR]/tmp/SK_IMAGE_VERSION"
    337   },
    338   {
    339     "cmd": [
    340       "python",
    341       "-u",
    342       "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
    343       "--json-output",
    344       "/path/to/tmp/json",
    345       "copy",
    346       "[START_DIR]/skia/infra/bots/assets/svg/VERSION",
    347       "/path/to/tmp/"
    348     ],
    349     "env": {
    350       "IOS_BUNDLE_ID": "com.google.dm",
    351       "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice"
    352     },
    353     "infra_step": true,
    354     "name": "Get downloaded SVG VERSION"
    355   },
    356   {
    357     "cmd": [
    358       "python",
    359       "-u",
    360       "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
    361       "--json-output",
    362       "/path/to/tmp/json",
    363       "copy",
    364       "42",
    365       "[START_DIR]/tmp/SVG_VERSION"
    366     ],
    367     "env": {
    368       "IOS_BUNDLE_ID": "com.google.dm",
    369       "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice"
    370     },
    371     "infra_step": true,
    372     "name": "write SVG_VERSION"
    373   },
    374   {
    375     "cmd": [
    376       "[START_DIR]/skia/platform_tools/ios/bin/ios_cat_file",
    377       "tmp/SVG_VERSION"
    378     ],
    379     "env": {
    380       "BUILDTYPE": "Release",
    381       "CHROME_HEADLESS": "1",
    382       "IOS_BUNDLE_ID": "com.google.dm",
    383       "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
    384       "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
    385       "SKIA_OUT": "[START_DIR]/out"
    386     },
    387     "infra_step": true,
    388     "name": "cat_file tmp/SVG_VERSION",
    389     "stdout": "/path/to/tmp/"
    390   },
    391   {
    392     "cmd": [
    393       "[START_DIR]/skia/platform_tools/ios/bin/ios_rm",
    394       "tmp/SVG_VERSION"
    395     ],
    396     "env": {
    397       "BUILDTYPE": "Release",
    398       "CHROME_HEADLESS": "1",
    399       "IOS_BUNDLE_ID": "com.google.dm",
    400       "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
    401       "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
    402       "SKIA_OUT": "[START_DIR]/out"
    403     },
    404     "infra_step": true,
    405     "name": "rm tmp/SVG_VERSION"
    406   },
    407   {
    408     "cmd": [
    409       "[START_DIR]/skia/platform_tools/ios/bin/ios_rm",
    410       "svgs"
    411     ],
    412     "env": {
    413       "BUILDTYPE": "Release",
    414       "CHROME_HEADLESS": "1",
    415       "IOS_BUNDLE_ID": "com.google.dm",
    416       "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
    417       "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
    418       "SKIA_OUT": "[START_DIR]/out"
    419     },
    420     "infra_step": true,
    421     "name": "rm svgs"
    422   },
    423   {
    424     "cmd": [
    425       "[START_DIR]/skia/platform_tools/ios/bin/ios_mkdir",
    426       "svgs"
    427     ],
    428     "env": {
    429       "BUILDTYPE": "Release",
    430       "CHROME_HEADLESS": "1",
    431       "IOS_BUNDLE_ID": "com.google.dm",
    432       "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
    433       "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
    434       "SKIA_OUT": "[START_DIR]/out"
    435     },
    436     "infra_step": true,
    437     "name": "mkdir svgs"
    438   },
    439   {
    440     "cmd": [
    441       "[START_DIR]/skia/platform_tools/ios/bin/ios_push_if_needed",
    442       "[START_DIR]/svg",
    443       "svgs"
    444     ],
    445     "env": {
    446       "BUILDTYPE": "Release",
    447       "CHROME_HEADLESS": "1",
    448       "IOS_BUNDLE_ID": "com.google.dm",
    449       "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
    450       "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
    451       "SKIA_OUT": "[START_DIR]/out"
    452     },
    453     "infra_step": true,
    454     "name": "push_if_needed [START_DIR]/svg"
    455   },
    456   {
    457     "cmd": [
    458       "[START_DIR]/skia/platform_tools/ios/bin/ios_push_file",
    459       "[START_DIR]/tmp/SVG_VERSION",
    460       "tmp/SVG_VERSION"
    461     ],
    462     "env": {
    463       "BUILDTYPE": "Release",
    464       "CHROME_HEADLESS": "1",
    465       "IOS_BUNDLE_ID": "com.google.dm",
    466       "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
    467       "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
    468       "SKIA_OUT": "[START_DIR]/out"
    469     },
    470     "infra_step": true,
    471     "name": "push_file [START_DIR]/tmp/SVG_VERSION"
    472   },
    473   {
    474     "cmd": [
    475       "python",
    476       "-u",
    477       "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
    478       "--json-output",
    479       "/path/to/tmp/json",
    480       "rmtree",
    481       "[CUSTOM_[SWARM_OUT_DIR]]/dm"
    482     ],
    483     "env": {
    484       "IOS_BUNDLE_ID": "com.google.dm",
    485       "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice"
    486     },
    487     "infra_step": true,
    488     "name": "rmtree dm"
    489   },
    490   {
    491     "cmd": [
    492       "python",
    493       "-u",
    494       "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
    495       "--json-output",
    496       "/path/to/tmp/json",
    497       "ensure-directory",
    498       "--mode",
    499       "0777",
    500       "[CUSTOM_[SWARM_OUT_DIR]]/dm"
    501     ],
    502     "env": {
    503       "IOS_BUNDLE_ID": "com.google.dm",
    504       "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice"
    505     },
    506     "infra_step": true,
    507     "name": "makedirs dm"
    508   },
    509   {
    510     "cmd": [
    511       "[START_DIR]/skia/platform_tools/ios/bin/ios_rm",
    512       "dm"
    513     ],
    514     "env": {
    515       "BUILDTYPE": "Release",
    516       "CHROME_HEADLESS": "1",
    517       "IOS_BUNDLE_ID": "com.google.dm",
    518       "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
    519       "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
    520       "SKIA_OUT": "[START_DIR]/out"
    521     },
    522     "infra_step": true,
    523     "name": "rm dm"
    524   },
    525   {
    526     "cmd": [
    527       "[START_DIR]/skia/platform_tools/ios/bin/ios_mkdir",
    528       "dm"
    529     ],
    530     "env": {
    531       "BUILDTYPE": "Release",
    532       "CHROME_HEADLESS": "1",
    533       "IOS_BUNDLE_ID": "com.google.dm",
    534       "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
    535       "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
    536       "SKIA_OUT": "[START_DIR]/out"
    537     },
    538     "infra_step": true,
    539     "name": "mkdir dm"
    540   },
    541   {
    542     "cmd": [
    543       "python",
    544       "-u",
    545       "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
    546       "--json-output",
    547       "/path/to/tmp/json",
    548       "ensure-directory",
    549       "--mode",
    550       "0777",
    551       "[START_DIR]/tmp"
    552     ],
    553     "env": {
    554       "IOS_BUNDLE_ID": "com.google.dm",
    555       "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice"
    556     },
    557     "infra_step": true,
    558     "name": "makedirs tmp_dir"
    559   },
    560   {
    561     "cmd": [
    562       "python",
    563       "-u",
    564       "\nimport contextlib\nimport math\nimport socket\nimport sys\nimport time\nimport urllib2\n\nHASHES_URL = 'https://storage.googleapis.com/skia-infra-gm/hash_files/gold-prod-hashes.txt'\nRETRIES = 5\nTIMEOUT = 60\nWAIT_BASE = 15\n\nsocket.setdefaulttimeout(TIMEOUT)\nfor retry in range(RETRIES):\n  try:\n    with contextlib.closing(\n        urllib2.urlopen(HASHES_URL, timeout=TIMEOUT)) as w:\n      hashes = w.read()\n      with open(sys.argv[1], 'w') as f:\n        f.write(hashes)\n        break\n  except Exception as e:\n    print 'Failed to get uninteresting hashes from %s:' % HASHES_URL\n    print e\n    if retry == RETRIES:\n      raise\n    waittime = WAIT_BASE * math.pow(2, retry)\n    print 'Retry in %d seconds.' % waittime\n    time.sleep(waittime)\n",
    565       "[START_DIR]/tmp/uninteresting_hashes.txt"
    566     ],
    567     "env": {
    568       "BUILDTYPE": "Release",
    569       "CHROME_HEADLESS": "1",
    570       "IOS_BUNDLE_ID": "com.google.dm",
    571       "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
    572       "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
    573       "SKIA_OUT": "[START_DIR]/out"
    574     },
    575     "infra_step": true,
    576     "name": "get uninteresting hashes",
    577     "~followup_annotations": [
    578       "@@@STEP_LOG_LINE (a] python.inline@@@@",
    579       "@@@STEP_LOG_LINE (a] python.inline@import contextlib@@@",
    580       "@@@STEP_LOG_LINE (a] python.inline@import math@@@",
    581       "@@@STEP_LOG_LINE (a] python.inline@import socket@@@",
    582       "@@@STEP_LOG_LINE (a] python.inline@import sys@@@",
    583       "@@@STEP_LOG_LINE (a] python.inline@import time@@@",
    584       "@@@STEP_LOG_LINE (a] python.inline@import urllib2@@@",
    585       "@@@STEP_LOG_LINE (a] python.inline@@@@",
    586       "@@@STEP_LOG_LINE (a] python.inline@HASHES_URL = 'https://storage.googleapis.com/skia-infra-gm/hash_files/gold-prod-hashes.txt'@@@",
    587       "@@@STEP_LOG_LINE (a] python.inline@RETRIES = 5@@@",
    588       "@@@STEP_LOG_LINE (a] python.inline@TIMEOUT = 60@@@",
    589       "@@@STEP_LOG_LINE (a] python.inline@WAIT_BASE = 15@@@",
    590       "@@@STEP_LOG_LINE (a] python.inline@@@@",
    591       "@@@STEP_LOG_LINE (a] python.inline@socket.setdefaulttimeout(TIMEOUT)@@@",
    592       "@@@STEP_LOG_LINE (a] python.inline@for retry in range(RETRIES):@@@",
    593       "@@@STEP_LOG_LINE (a] python.inline@  try:@@@",
    594       "@@@STEP_LOG_LINE (a] python.inline@    with contextlib.closing(@@@",
    595       "@@@STEP_LOG_LINE (a] python.inline@        urllib2.urlopen(HASHES_URL, timeout=TIMEOUT)) as w:@@@",
    596       "@@@STEP_LOG_LINE (a] python.inline@      hashes = w.read()@@@",
    597       "@@@STEP_LOG_LINE (a] python.inline@      with open(sys.argv[1], 'w') as f:@@@",
    598       "@@@STEP_LOG_LINE (a] python.inline@        f.write(hashes)@@@",
    599       "@@@STEP_LOG_LINE (a] python.inline@        break@@@",
    600       "@@@STEP_LOG_LINE (a] python.inline@  except Exception as e:@@@",
    601       "@@@STEP_LOG_LINE (a] python.inline@    print 'Failed to get uninteresting hashes from %s:' % HASHES_URL@@@",
    602       "@@@STEP_LOG_LINE (a] python.inline@    print e@@@",
    603       "@@@STEP_LOG_LINE (a] python.inline@    if retry == RETRIES:@@@",
    604       "@@@STEP_LOG_LINE (a] python.inline@      raise@@@",
    605       "@@@STEP_LOG_LINE (a] python.inline@    waittime = WAIT_BASE * math.pow(2, retry)@@@",
    606       "@@@STEP_LOG_LINE (a] python.inline@    print 'Retry in %d seconds.' % waittime@@@",
    607       "@@@STEP_LOG_LINE (a] python.inline@    time.sleep(waittime)@@@",
    608       "@@@STEP_LOG_END (a] python.inline@@@"
    609     ]
    610   },
    611   {
    612     "cmd": [
    613       "[START_DIR]/skia/platform_tools/ios/bin/ios_push_file",
    614       "[START_DIR]/tmp/uninteresting_hashes.txt",
    615       "tmp/uninteresting_hashes.txt"
    616     ],
    617     "env": {
    618       "BUILDTYPE": "Release",
    619       "CHROME_HEADLESS": "1",
    620       "IOS_BUNDLE_ID": "com.google.dm",
    621       "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
    622       "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
    623       "SKIA_OUT": "[START_DIR]/out"
    624     },
    625     "infra_step": true,
    626     "name": "push_file [START_DIR]/tmp/uninteresting_hashes.txt"
    627   },
    628   {
    629     "cmd": [
    630       "python",
    631       "-u",
    632       "import os\nprint os.environ.get('SWARMING_BOT_ID', '')\n"
    633     ],
    634     "env": {
    635       "IOS_BUNDLE_ID": "com.google.dm",
    636       "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice"
    637     },
    638     "name": "get swarming bot id",
    639     "stdout": "/path/to/tmp/",
    640     "~followup_annotations": [
    641       "@@@STEP_LOG_LINE (a] python.inline@import os@@@",
    642       "@@@STEP_LOG_LINE (a] python.inline@print os.environ.get('SWARMING_BOT_ID', '')@@@",
    643       "@@@STEP_LOG_END (a] python.inline@@@"
    644     ]
    645   },
    646   {
    647     "cmd": [
    648       "python",
    649       "-u",
    650       "import os\nprint os.environ.get('SWARMING_TASK_ID', '')\n"
    651     ],
    652     "env": {
    653       "IOS_BUNDLE_ID": "com.google.dm",
    654       "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice"
    655     },
    656     "name": "get swarming task id",
    657     "stdout": "/path/to/tmp/",
    658     "~followup_annotations": [
    659       "@@@STEP_LOG_LINE (a] python.inline@import os@@@",
    660       "@@@STEP_LOG_LINE (a] python.inline@print os.environ.get('SWARMING_TASK_ID', '')@@@",
    661       "@@@STEP_LOG_END (a] python.inline@@@"
    662     ]
    663   },
    664   {
    665     "cmd": [
    666       "idevice-app-runner",
    667       "-s",
    668       "com.google.dm",
    669       "--args",
    670       "--undefok",
    671       "--resourcePath",
    672       "resources",
    673       "--skps",
    674       "skps",
    675       "--images",
    676       "images/dm",
    677       "--colorImages",
    678       "images/colorspace",
    679       "--nameByHash",
    680       "--properties",
    681       "gitHash",
    682       "abc123",
    683       "builder",
    684       "Test-iOS-Clang-iPadMini4-GPU-GX6450-arm-Release",
    685       "swarming_bot_id",
    686       "skia-bot-123",
    687       "swarming_task_id",
    688       "123456",
    689       "--svgs",
    690       "svgs",
    691       "--key",
    692       "arch",
    693       "arm",
    694       "compiler",
    695       "Clang",
    696       "configuration",
    697       "Release",
    698       "cpu_or_gpu",
    699       "GPU",
    700       "cpu_or_gpu_value",
    701       "GX6450",
    702       "model",
    703       "iPadMini4",
    704       "os",
    705       "iOS",
    706       "--uninterestingHashesFile",
    707       "tmp/uninteresting_hashes.txt",
    708       "--writePath",
    709       "dm",
    710       "--nocpu",
    711       "--randomProcessorTest",
    712       "--threads",
    713       "0",
    714       "--config",
    715       "8888",
    716       "srgb",
    717       "pdf",
    718       "gles",
    719       "glesdft",
    720       "glessrgb",
    721       "glesmsaa4",
    722       "serialize-8888",
    723       "tiles_rt-8888",
    724       "pic-8888",
    725       "--src",
    726       "tests",
    727       "gm",
    728       "image",
    729       "colorImage",
    730       "svg",
    731       "--blacklist",
    732       "glessrgb",
    733       "image",
    734       "_",
    735       "_",
    736       "gles",
    737       "skp",
    738       "_",
    739       "_",
    740       "_",
    741       "image",
    742       "gen_platf",
    743       "rgba32abf.bmp",
    744       "_",
    745       "image",
    746       "gen_platf",
    747       "rgb24prof.bmp",
    748       "_",
    749       "image",
    750       "gen_platf",
    751       "rgb24lprof.bmp",
    752       "_",
    753       "image",
    754       "gen_platf",
    755       "8bpp-pixeldata-cropped.bmp",
    756       "_",
    757       "image",
    758       "gen_platf",
    759       "4bpp-pixeldata-cropped.bmp",
    760       "_",
    761       "image",
    762       "gen_platf",
    763       "32bpp-pixeldata-cropped.bmp",
    764       "_",
    765       "image",
    766       "gen_platf",
    767       "24bpp-pixeldata-cropped.bmp",
    768       "_",
    769       "image",
    770       "gen_platf",
    771       "frame_larger_than_image.gif",
    772       "_",
    773       "image",
    774       "gen_platf",
    775       "inc0.png",
    776       "_",
    777       "image",
    778       "gen_platf",
    779       "inc1.png",
    780       "_",
    781       "image",
    782       "gen_platf",
    783       "inc2.png",
    784       "_",
    785       "image",
    786       "gen_platf",
    787       "inc3.png",
    788       "_",
    789       "image",
    790       "gen_platf",
    791       "inc4.png",
    792       "_",
    793       "image",
    794       "gen_platf",
    795       "inc5.png",
    796       "_",
    797       "image",
    798       "gen_platf",
    799       "inc6.png",
    800       "_",
    801       "image",
    802       "gen_platf",
    803       "inc7.png",
    804       "_",
    805       "image",
    806       "gen_platf",
    807       "inc8.png",
    808       "_",
    809       "image",
    810       "gen_platf",
    811       "inc9.png",
    812       "_",
    813       "image",
    814       "gen_platf",
    815       "inc10.png",
    816       "_",
    817       "image",
    818       "gen_platf",
    819       "inc11.png",
    820       "_",
    821       "image",
    822       "gen_platf",
    823       "inc12.png",
    824       "_",
    825       "image",
    826       "gen_platf",
    827       "inc13.png",
    828       "_",
    829       "image",
    830       "gen_platf",
    831       "inc14.png",
    832       "_",
    833       "test",
    834       "_",
    835       "GrShape",
    836       "serialize-8888",
    837       "gm",
    838       "_",
    839       "bleed_image",
    840       "serialize-8888",
    841       "gm",
    842       "_",
    843       "c_gms",
    844       "serialize-8888",
    845       "gm",
    846       "_",
    847       "colortype",
    848       "serialize-8888",
    849       "gm",
    850       "_",
    851       "colortype_xfermodes",
    852       "serialize-8888",
    853       "gm",
    854       "_",
    855       "drawfilter",
    856       "serialize-8888",
    857       "gm",
    858       "_",
    859       "fontmgr_bounds_0.75_0",
    860       "serialize-8888",
    861       "gm",
    862       "_",
    863       "fontmgr_bounds_1_-0.25",
    864       "serialize-8888",
    865       "gm",
    866       "_",
    867       "fontmgr_bounds",
    868       "serialize-8888",
    869       "gm",
    870       "_",
    871       "fontmgr_match",
    872       "serialize-8888",
    873       "gm",
    874       "_",
    875       "fontmgr_iter",
    876       "serialize-8888",
    877       "gm",
    878       "_",
    879       "imagemasksubset",
    880       "serialize-8888",
    881       "gm",
    882       "_",
    883       "bitmapfilters",
    884       "serialize-8888",
    885       "gm",
    886       "_",
    887       "bitmapshaders",
    888       "serialize-8888",
    889       "gm",
    890       "_",
    891       "bleed",
    892       "serialize-8888",
    893       "gm",
    894       "_",
    895       "bleed_alpha_bmp",
    896       "serialize-8888",
    897       "gm",
    898       "_",
    899       "bleed_alpha_bmp_shader",
    900       "serialize-8888",
    901       "gm",
    902       "_",
    903       "convex_poly_clip",
    904       "serialize-8888",
    905       "gm",
    906       "_",
    907       "extractalpha",
    908       "serialize-8888",
    909       "gm",
    910       "_",
    911       "filterbitmap_checkerboard_32_32_g8",
    912       "serialize-8888",
    913       "gm",
    914       "_",
    915       "filterbitmap_image_mandrill_64",
    916       "serialize-8888",
    917       "gm",
    918       "_",
    919       "shadows",
    920       "serialize-8888",
    921       "gm",
    922       "_",
    923       "simpleaaclip_aaclip",
    924       "serialize-8888",
    925       "gm",
    926       "_",
    927       "composeshader_bitmap",
    928       "serialize-8888",
    929       "gm",
    930       "_",
    931       "scaled_tilemodes_npot",
    932       "serialize-8888",
    933       "gm",
    934       "_",
    935       "scaled_tilemodes",
    936       "serialize-8888",
    937       "gm",
    938       "_",
    939       "typefacerendering_pfaMac",
    940       "serialize-8888",
    941       "gm",
    942       "_",
    943       "parsedpaths",
    944       "serialize-8888",
    945       "gm",
    946       "_",
    947       "ImageGeneratorExternal_rect",
    948       "serialize-8888",
    949       "gm",
    950       "_",
    951       "ImageGeneratorExternal_shader",
    952       "serialize-8888",
    953       "gm",
    954       "_",
    955       "shadow_utils",
    956       "serialize-8888",
    957       "gm",
    958       "_",
    959       "makecolorspace",
    960       "serialize-8888",
    961       "gm",
    962       "_",
    963       "bleed_alpha_image",
    964       "serialize-8888",
    965       "gm",
    966       "_",
    967       "bleed_alpha_image_shader",
    968       "pic-8888",
    969       "gm",
    970       "_",
    971       "drawfilter",
    972       "pic-8888",
    973       "gm",
    974       "_",
    975       "image-cacherator-from-picture",
    976       "serialize-8888",
    977       "gm",
    978       "_",
    979       "image-cacherator-from-picture",
    980       "pic-8888",
    981       "gm",
    982       "_",
    983       "image-cacherator-from-raster",
    984       "serialize-8888",
    985       "gm",
    986       "_",
    987       "image-cacherator-from-raster",
    988       "pic-8888",
    989       "gm",
    990       "_",
    991       "image-cacherator-from-ctable",
    992       "serialize-8888",
    993       "gm",
    994       "_",
    995       "image-cacherator-from-ctable",
    996       "pic-8888",
    997       "gm",
    998       "_",
    999       "gamut",
   1000       "serialize-8888",
   1001       "gm",
   1002       "_",
   1003       "gamut",
   1004       "pic-8888",
   1005       "gm",
   1006       "_",
   1007       "complexclip4_bw",
   1008       "serialize-8888",
   1009       "gm",
   1010       "_",
   1011       "complexclip4_bw",
   1012       "pic-8888",
   1013       "gm",
   1014       "_",
   1015       "complexclip4_aa",
   1016       "serialize-8888",
   1017       "gm",
   1018       "_",
   1019       "complexclip4_aa",
   1020       "tiles_rt-8888",
   1021       "gm",
   1022       "_",
   1023       "complexclip4_bw",
   1024       "tiles_rt-8888",
   1025       "gm",
   1026       "_",
   1027       "complexclip4_aa",
   1028       "_",
   1029       "image",
   1030       "_",
   1031       "interlaced1.png",
   1032       "_",
   1033       "image",
   1034       "_",
   1035       "interlaced2.png",
   1036       "_",
   1037       "image",
   1038       "_",
   1039       "interlaced3.png",
   1040       "_",
   1041       "image",
   1042       "_",
   1043       ".arw",
   1044       "_",
   1045       "image",
   1046       "_",
   1047       ".cr2",
   1048       "_",
   1049       "image",
   1050       "_",
   1051       ".dng",
   1052       "_",
   1053       "image",
   1054       "_",
   1055       ".nef",
   1056       "_",
   1057       "image",
   1058       "_",
   1059       ".nrw",
   1060       "_",
   1061       "image",
   1062       "_",
   1063       ".orf",
   1064       "_",
   1065       "image",
   1066       "_",
   1067       ".raf",
   1068       "_",
   1069       "image",
   1070       "_",
   1071       ".rw2",
   1072       "_",
   1073       "image",
   1074       "_",
   1075       ".pef",
   1076       "_",
   1077       "image",
   1078       "_",
   1079       ".srw",
   1080       "_",
   1081       "image",
   1082       "_",
   1083       ".ARW",
   1084       "_",
   1085       "image",
   1086       "_",
   1087       ".CR2",
   1088       "_",
   1089       "image",
   1090       "_",
   1091       ".DNG",
   1092       "_",
   1093       "image",
   1094       "_",
   1095       ".NEF",
   1096       "_",
   1097       "image",
   1098       "_",
   1099       ".NRW",
   1100       "_",
   1101       "image",
   1102       "_",
   1103       ".ORF",
   1104       "_",
   1105       "image",
   1106       "_",
   1107       ".RAF",
   1108       "_",
   1109       "image",
   1110       "_",
   1111       ".RW2",
   1112       "_",
   1113       "image",
   1114       "_",
   1115       ".PEF",
   1116       "_",
   1117       "image",
   1118       "_",
   1119       ".SRW"
   1120     ],
   1121     "env": {
   1122       "BUILDTYPE": "Release",
   1123       "CHROME_HEADLESS": "1",
   1124       "IOS_BUNDLE_ID": "com.google.dm",
   1125       "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
   1126       "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
   1127       "SKIA_OUT": "[START_DIR]/out"
   1128     },
   1129     "name": "dm"
   1130   },
   1131   {
   1132     "cmd": [
   1133       "[START_DIR]/skia/platform_tools/ios/bin/ios_pull_if_needed",
   1134       "dm",
   1135       "[CUSTOM_[SWARM_OUT_DIR]]/dm"
   1136     ],
   1137     "env": {
   1138       "BUILDTYPE": "Release",
   1139       "CHROME_HEADLESS": "1",
   1140       "IOS_BUNDLE_ID": "com.google.dm",
   1141       "IOS_MOUNT_POINT": "[START_DIR]/mnt_iosdevice",
   1142       "PATH": "<PATH>:RECIPE_PACKAGE_REPO[depot_tools]",
   1143       "SKIA_OUT": "[START_DIR]/out"
   1144     },
   1145     "infra_step": true,
   1146     "name": "pull_if_needed dm"
   1147   },
   1148   {
   1149     "name": "$result",
   1150     "recipe_result": null,
   1151     "status_code": 0
   1152   }
   1153 ]