mirror of https://github.com/ARMmbed/mbed-os.git
348 lines
12 KiB
Python
348 lines
12 KiB
Python
#!/usr/bin/env python
|
|
"""
|
|
mbed SDK
|
|
Copyright (c) 2011-2013 ARM Limited
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
"""
|
|
import sys
|
|
from os.path import join, abspath, dirname, exists
|
|
ROOT = abspath(join(dirname(__file__), ".."))
|
|
sys.path.insert(0, ROOT)
|
|
|
|
from shutil import move
|
|
|
|
from tools.paths import *
|
|
from tools.utils import mkdir, cmd
|
|
from tools.export import export, setup_user_prj
|
|
|
|
|
|
USR_PRJ_NAME = "usr_prj"
|
|
USER_PRJ = join(EXPORT_WORKSPACE, USR_PRJ_NAME)
|
|
USER_SRC = join(USER_PRJ, "src")
|
|
|
|
|
|
def setup_test_user_prj():
|
|
if exists(USER_PRJ):
|
|
print 'Test user project already generated...'
|
|
return
|
|
|
|
setup_user_prj(USER_PRJ, join(TEST_DIR, "rtos", "mbed", "basic"), [join(ROOT, "rtos"), join(LIB_DIR, "tests", "mbed", "env")])
|
|
|
|
# FAKE BUILD URL
|
|
open(join(USER_SRC, "mbed.bld"), 'w').write("http://mbed.org/users/mbed_official/code/mbed/builds/976df7c37ad5\n")
|
|
|
|
|
|
def fake_build_url_resolver(url):
|
|
# FAKE BUILD URL: Ignore the URL, always return the path to the mbed library
|
|
return {'path':MBED_LIBRARIES, 'name':'mbed'}
|
|
|
|
|
|
def test_export(toolchain, target, expected_error=None):
|
|
if toolchain is None and target is None:
|
|
base_dir = join(EXPORT_TMP, "zip")
|
|
else:
|
|
base_dir = join(EXPORT_TMP, toolchain, target)
|
|
temp_dir = join(base_dir, "temp")
|
|
mkdir(temp_dir)
|
|
|
|
zip_path, report = export(USER_PRJ, USR_PRJ_NAME, toolchain, target, base_dir, temp_dir, False, None, fake_build_url_resolver)
|
|
|
|
if report['success']:
|
|
move(zip_path, join(EXPORT_DIR, "export_%s_%s.zip" % (toolchain, target)))
|
|
print "[OK]"
|
|
else:
|
|
if expected_error is None:
|
|
print '[ERRROR] %s' % report['errormsg']
|
|
else:
|
|
if (zip_path is None) and (expected_error in report['errormsg']):
|
|
print '[OK]'
|
|
else:
|
|
print '[ERROR]'
|
|
print ' zip:', zip_path
|
|
print ' msg:', report['errormsg']
|
|
|
|
|
|
if __name__ == '__main__':
|
|
setup_test_user_prj()
|
|
|
|
for toolchain, target in [
|
|
('zip', 'LPC1768'),
|
|
|
|
('emblocks', 'LPC1768'),
|
|
('emblocks', 'LPC1549'),
|
|
('emblocks', 'LPC1114'),
|
|
('emblocks', 'LPC11U35_401'),
|
|
('emblocks', 'LPC11U35_501'),
|
|
('emblocks', 'LPCCAPPUCCINO'),
|
|
('emblocks', 'LPC2368'),
|
|
('emblocks', 'STM32F407'),
|
|
('emblocks', 'DISCO_F100RB'),
|
|
('emblocks', 'DISCO_F051R8'),
|
|
('emblocks', 'DISCO_F407VG'),
|
|
('emblocks', 'DISCO_F303VC'),
|
|
('emblocks', 'NRF51822'),
|
|
('emblocks', 'NUCLEO_F401RE'),
|
|
('emblocks', 'NUCLEO_F410RB'),
|
|
('emblocks', 'NUCLEO_F411RE'),
|
|
('emblocks', 'MTS_MDOT_F405RG'),
|
|
('emblocks', 'MTS_MDOT_F411RE'),
|
|
|
|
('coide', 'KL05Z'),
|
|
('coide', 'KL25Z'),
|
|
('coide', 'LPC1768'),
|
|
('coide', 'ARCH_PRO'),
|
|
('coide', 'DISCO_F407VG'),
|
|
('coide', 'NUCLEO_F401RE'),
|
|
('coide', 'NUCLEO_F410RB'),
|
|
('coide', 'NUCLEO_F411RE'),
|
|
('coide', 'DISCO_F429ZI'),
|
|
('coide', 'NUCLEO_F429ZI'),
|
|
#('coide', 'DISCO_F469NI'), removed because template not available
|
|
('coide', 'NUCLEO_F334R8'),
|
|
('coide', 'NUCLEO_F303ZE'),
|
|
('coide', 'MTS_MDOT_F405RG'),
|
|
('coide', 'MTS_MDOT_F411RE'),
|
|
|
|
('uvision', 'LPC1768'),
|
|
('uvision', 'LPC11U24'),
|
|
('uvision', 'LPC11U35_401'),
|
|
('uvision', 'LPC11U35_501'),
|
|
('uvision', 'KL25Z'),
|
|
('uvision', 'LPC1347'),
|
|
('uvision', 'LPC1114'),
|
|
('uvision', 'LPC4088'),
|
|
('uvision', 'LPC4088_DM'),
|
|
('uvision', 'LPC4337'),
|
|
('uvision', 'LPC824'),
|
|
('uvision', 'SSCI824'),
|
|
('uvision', 'HRM1017'),
|
|
|
|
('uvision', 'B96B_F446VE'),
|
|
('uvision', 'NUCLEO_F030R8'),
|
|
('uvision', 'NUCLEO_F031K6'),
|
|
('uvision', 'NUCLEO_F042K6'),
|
|
('uvision', 'NUCLEO_F070RB'),
|
|
('uvision', 'NUCLEO_F072RB'),
|
|
('uvision', 'NUCLEO_F091RC'),
|
|
('uvision', 'NUCLEO_F103RB'),
|
|
('uvision', 'NUCLEO_F302R8'),
|
|
('uvision', 'NUCLEO_F303K8'),
|
|
('uvision', 'NUCLEO_F303RE'),
|
|
('uvision', 'NUCLEO_F334R8'),
|
|
('uvision', 'NUCLEO_F303ZE'),
|
|
('uvision', 'NUCLEO_F401RE'),
|
|
('uvision', 'NUCLEO_F410RB'),
|
|
('uvision', 'NUCLEO_F411RE'),
|
|
('uvision', 'NUCLEO_F429ZI'),
|
|
('uvision', 'NUCLEO_F446RE'),
|
|
('uvision', 'NUCLEO_F446ZE'),
|
|
('uvision', 'NUCLEO_L011K4'),
|
|
('uvision', 'NUCLEO_L031K6'),
|
|
('uvision', 'NUCLEO_L053R8'),
|
|
('uvision', 'NUCLEO_L073RZ'),
|
|
('uvision', 'NUCLEO_L152RE'),
|
|
('uvision', 'NUCLEO_L432KC'),
|
|
('uvision', 'NUCLEO_L476RG'),
|
|
('uvision', 'MTS_MDOT_F405RG'),
|
|
('uvision', 'MAXWSNENV'),
|
|
('uvision', 'MAX32600MBED'),
|
|
('uvision', 'MAX32620HSP'),
|
|
('uvision', 'DISCO_F051R8'),
|
|
('uvision', 'DISCO_F103RB'),
|
|
('uvision', 'DISCO_F303VC'),
|
|
('uvision', 'DISCO_L053C8'),
|
|
('uvision', 'DISCO_F334C8'),
|
|
('uvision', 'DISCO_F407VG'),
|
|
('uvision', 'DISCO_F429ZI'),
|
|
('uvision', 'DISCO_F746NG'),
|
|
('uvision', 'DISCO_F469NI'),
|
|
('uvision', 'DISCO_L476VG'),
|
|
('uvision', 'MOTE_L152RC'),
|
|
('uvision', 'ARM_BEETLE_SOC'),
|
|
|
|
('lpcxpresso', 'LPC1768'),
|
|
('lpcxpresso', 'LPC4088'),
|
|
('lpcxpresso', 'LPC4088_DM'),
|
|
('lpcxpresso', 'LPC1114'),
|
|
('lpcxpresso', 'LPC11U35_401'),
|
|
('lpcxpresso', 'LPC11U35_501'),
|
|
('lpcxpresso', 'LPCCAPPUCCINO'),
|
|
('lpcxpresso', 'LPC1549'),
|
|
('lpcxpresso', 'LPC11U68'),
|
|
|
|
# Linux path: /home/emimon01/bin/gcc-arm/bin/
|
|
# Windows path: C:/arm-none-eabi-gcc-4_7/bin/
|
|
('gcc_arm', 'LPC1768'),
|
|
('gcc_arm', 'LPC4088_DM'),
|
|
('gcc_arm', 'LPC1549'),
|
|
('gcc_arm', 'LPC1114'),
|
|
('gcc_arm', 'LPC11U35_401'),
|
|
('gcc_arm', 'LPC11U35_501'),
|
|
('gcc_arm', 'LPCCAPPUCCINO'),
|
|
('gcc_arm', 'LPC2368'),
|
|
('gcc_arm', 'LPC2460'),
|
|
('gcc_arm', 'LPC824'),
|
|
('gcc_arm', 'SSCI824'),
|
|
|
|
('gcc_arm', 'B96B_F446VE'),
|
|
('gcc_arm', 'STM32F407'),
|
|
('gcc_arm', 'DISCO_F100RB'),
|
|
('gcc_arm', 'DISCO_F051R8'),
|
|
('gcc_arm', 'DISCO_F407VG'),
|
|
('gcc_arm', 'DISCO_F303VC'),
|
|
('gcc_arm', 'DISCO_L053C8'),
|
|
('gcc_arm', 'DISCO_F334C8'),
|
|
('gcc_arm', 'DISCO_L053C8'),
|
|
('gcc_arm', 'DISCO_F429ZI'),
|
|
('gcc_arm', 'DISCO_F746NG'),
|
|
('gcc_arm', 'NUCLEO_F031K6'),
|
|
('gcc_arm', 'NUCLEO_F042K6'),
|
|
('gcc_arm', 'NRF51822'),
|
|
('gcc_arm', 'RBLAB_BLENANO'),
|
|
('gcc_arm', 'HRM1017'),
|
|
('gcc_arm', 'NUCLEO_F401RE'),
|
|
('gcc_arm', 'NUCLEO_F410RB'),
|
|
('gcc_arm', 'NUCLEO_F411RE'),
|
|
('gcc_arm', 'NUCLEO_F429ZI'),
|
|
('gcc_arm', 'NUCLEO_F446RE'),
|
|
('gcc_arm', 'NUCLEO_F446ZE'),
|
|
('gcc_arm', 'NUCLEO_F303ZE'),
|
|
('gcc_arm', 'ELMO_F411RE'),
|
|
('gcc_arm', 'DISCO_F469NI'),
|
|
('gcc_arm', 'NUCLEO_F334R8'),
|
|
('gcc_arm', 'NUCLEO_L011K4'),
|
|
('gcc_arm', 'NUCLEO_L031K6'),
|
|
('gcc_arm', 'NUCLEO_L432KC'),
|
|
('gcc_arm', 'MAX32600MBED'),
|
|
('gcc_arm', 'MTS_MDOT_F405RG'),
|
|
('gcc_arm', 'MTS_MDOT_F411RE'),
|
|
('gcc_arm', 'RZ_A1H'),
|
|
('gcc_arm', 'MAXWSNENV'),
|
|
('gcc_arm', 'MAX32600MBED'),
|
|
('gcc_arm', 'MAX32620HSP'),
|
|
('gcc_arm', 'ARCH_BLE'),
|
|
('gcc_arm', 'ARCH_MAX'),
|
|
('gcc_arm', 'ARCH_PRO'),
|
|
('gcc_arm', 'DELTA_DFCM_NNN40'),
|
|
('gcc_arm', 'K20D50M'),
|
|
('gcc_arm', 'K22F'),
|
|
('gcc_arm', 'K64F'),
|
|
('gcc_arm', 'KL05Z'),
|
|
('gcc_arm', 'KL25Z'),
|
|
('gcc_arm', 'KL43Z'),
|
|
('gcc_arm', 'KL46Z'),
|
|
('gcc_arm', 'EFM32GG_STK3700'),
|
|
('gcc_arm', 'EFM32LG_STK3600'),
|
|
('gcc_arm', 'EFM32WG_STK3800'),
|
|
('gcc_arm', 'EFM32ZG_STK3200'),
|
|
('gcc_arm', 'EFM32HG_STK3400'),
|
|
('gcc_arm', 'EFM32PG_STK3401'),
|
|
|
|
('ds5_5', 'LPC1768'),
|
|
('ds5_5', 'LPC11U24'),
|
|
('ds5_5', 'RZ_A1H'),
|
|
|
|
('iar', 'LPC1768'),
|
|
('iar', 'LPC4088_DM'),
|
|
('iar', 'LPC1347'),
|
|
|
|
('iar', 'B96B_F446VE'),
|
|
('iar', 'NUCLEO_F030R8'),
|
|
('iar', 'NUCLEO_F031K6'),
|
|
('iar', 'NUCLEO_F042K6'),
|
|
('iar', 'NUCLEO_F070RB'),
|
|
('iar', 'NUCLEO_F072RB'),
|
|
('iar', 'NUCLEO_F091RC'),
|
|
('iar', 'NUCLEO_F302R8'),
|
|
('iar', 'NUCLEO_F303K8'),
|
|
('iar', 'NUCLEO_F303RE'),
|
|
('iar', 'NUCLEO_F334R8'),
|
|
('iar', 'NUCLEO_F303ZE'),
|
|
('iar', 'NUCLEO_F401RE'),
|
|
('iar', 'NUCLEO_F410RB'),
|
|
('iar', 'NUCLEO_F411RE'),
|
|
('iar', 'NUCLEO_F429ZI'),
|
|
('iar', 'NUCLEO_F446RE'),
|
|
('iar', 'NUCLEO_F446ZE'),
|
|
('iar', 'NUCLEO_L011K4'),
|
|
('iar', 'NUCLEO_L031K6'),
|
|
('iar', 'NUCLEO_L053R8'),
|
|
('iar', 'NUCLEO_L073RZ'),
|
|
('iar', 'NUCLEO_L152RE'),
|
|
('iar', 'NUCLEO_L432KC'),
|
|
('iar', 'NUCLEO_L476RG'),
|
|
('iar', 'DISCO_L053C8'),
|
|
('iar', 'DISCO_F334C8'),
|
|
('iar', 'DISCO_F429ZI'),
|
|
('iar', 'DISCO_F469NI'),
|
|
('iar', 'DISCO_F746NG'),
|
|
('iar', 'DISCO_L476VG'),
|
|
('iar', 'STM32F407'),
|
|
('iar', 'MTS_MDOT_F405RG'),
|
|
('iar', 'MTS_MDOT_F411RE'),
|
|
('iar', 'MAXWSNENV'),
|
|
('iar', 'MAX32600MBED'),
|
|
('iar', 'MAX32620HSP'),
|
|
('iar', 'MOTE_L152RC'),
|
|
('iar', 'RZ_A1H'),
|
|
|
|
# ('sw4stm32', 'DISCO_F051R8'),
|
|
# ('sw4stm32', 'DISCO_F100RB'),
|
|
('sw4stm32', 'DISCO_F303VC'),
|
|
('sw4stm32', 'DISCO_F334C8'),
|
|
# ('sw4stm32', 'DISCO_F401VC'),
|
|
('sw4stm32', 'DISCO_F407VG'),
|
|
('sw4stm32', 'DISCO_F429ZI'),
|
|
('sw4stm32', 'DISCO_F469NI'),
|
|
('sw4stm32', 'DISCO_F746NG'),
|
|
('sw4stm32', 'DISCO_L053C8'),
|
|
('sw4stm32', 'DISCO_L476VG'),
|
|
('sw4stm32', 'NUCLEO_F030R8'),
|
|
('sw4stm32', 'NUCLEO_F031K6'),
|
|
('sw4stm32', 'NUCLEO_F042K6'),
|
|
('sw4stm32', 'NUCLEO_F070RB'),
|
|
('sw4stm32', 'NUCLEO_F072RB'),
|
|
('sw4stm32', 'NUCLEO_F091RC'),
|
|
('sw4stm32', 'NUCLEO_F103RB'),
|
|
('sw4stm32', 'NUCLEO_F302R8'),
|
|
('sw4stm32', 'NUCLEO_F303K8'),
|
|
('sw4stm32', 'NUCLEO_F303RE'),
|
|
('sw4stm32', 'NUCLEO_F334R8'),
|
|
('sw4stm32', 'NUCLEO_F401RE'),
|
|
('sw4stm32', 'NUCLEO_F410RB'),
|
|
('sw4stm32', 'NUCLEO_F411RE'),
|
|
('sw4stm32', 'NUCLEO_F429ZI'),
|
|
('sw4stm32', 'NUCLEO_F446RE'),
|
|
('sw4stm32', 'NUCLEO_F446ZE'),
|
|
('sw4stm32', 'NUCLEO_L011K4'),
|
|
('sw4stm32', 'NUCLEO_L053R8'),
|
|
('sw4stm32', 'NUCLEO_L073RZ'),
|
|
('sw4stm32', 'NUCLEO_L152RE'),
|
|
('sw4stm32', 'NUCLEO_L432KC'),
|
|
('sw4stm32', 'NUCLEO_L476RG'),
|
|
('sw4stm32', 'NUCLEO_F031K6'),
|
|
('sw4stm32', 'NUCLEO_F042K6'),
|
|
('sw4stm32', 'NUCLEO_F303ZE'),
|
|
('sw4stm32', 'NUCLEO_F410RB'),
|
|
|
|
('e2studio', 'RZ_A1H'),
|
|
# Removed following item to avoid script error
|
|
#(None, None),
|
|
]:
|
|
print '\n=== Exporting to "%s::%s" ===' % (toolchain, target)
|
|
test_export(toolchain, target)
|
|
|
|
print "\n=== Test error messages ==="
|
|
test_export('lpcxpresso', 'LPC11U24', expected_error='lpcxpresso')
|