mirror of https://github.com/ARMmbed/mbed-os.git
Travis: define vendor matrix
Use vendor matrix, creates a job for each vendor folder (targets/TARGET_XXX). This fixes the errors we have seen, as a job has a limit 50 minutes.pull/5729/head
parent
b4dc32521a
commit
1b3cff54fb
106
.travis.yml
106
.travis.yml
|
|
@ -164,7 +164,7 @@ matrix:
|
||||||
|
|
||||||
- python: '2.7'
|
- python: '2.7'
|
||||||
env:
|
env:
|
||||||
- NAME=mbed2
|
- NAME=mbed2-NXP
|
||||||
install:
|
install:
|
||||||
# Install dependencies
|
# Install dependencies
|
||||||
- sudo apt-get install gcc-arm-embedded
|
- sudo apt-get install gcc-arm-embedded
|
||||||
|
|
@ -177,6 +177,106 @@ matrix:
|
||||||
- mkdir BUILD
|
- mkdir BUILD
|
||||||
script:
|
script:
|
||||||
# Run local mbed 2 testing
|
# Run local mbed 2 testing
|
||||||
# Note: These take ~40 minutes to run
|
- python2 -u tools/build_travis.py --vendor NXP | sed -n '/^Executing/p'
|
||||||
- python2 -u tools/build_travis.py | sed -n '/^Executing/p'
|
|
||||||
|
|
||||||
|
- python: '2.7'
|
||||||
|
env:
|
||||||
|
- NAME=mbed2-STM
|
||||||
|
install:
|
||||||
|
# Install dependencies
|
||||||
|
- sudo apt-get install gcc-arm-embedded
|
||||||
|
- pip install --user -r requirements.txt
|
||||||
|
# Print versions we use
|
||||||
|
- arm-none-eabi-gcc --version
|
||||||
|
- python --version
|
||||||
|
before_script:
|
||||||
|
# Create BUILD directory for tests
|
||||||
|
- mkdir BUILD
|
||||||
|
script:
|
||||||
|
# Run local mbed 2 testing
|
||||||
|
- python2 -u tools/build_travis.py --vendor STM | sed -n '/^Executing/p'
|
||||||
|
|
||||||
|
- python: '2.7'
|
||||||
|
env:
|
||||||
|
- NAME=mbed2-NORDIC
|
||||||
|
install:
|
||||||
|
# Install dependencies
|
||||||
|
- sudo apt-get install gcc-arm-embedded
|
||||||
|
- pip install --user -r requirements.txt
|
||||||
|
# Print versions we use
|
||||||
|
- arm-none-eabi-gcc --version
|
||||||
|
- python --version
|
||||||
|
before_script:
|
||||||
|
# Create BUILD directory for tests
|
||||||
|
- mkdir BUILD
|
||||||
|
script:
|
||||||
|
# Run local mbed 2 testing
|
||||||
|
- python2 -u tools/build_travis.py --vendor NORDIC | sed -n '/^Executing/p'
|
||||||
|
|
||||||
|
- python: '2.7'
|
||||||
|
env:
|
||||||
|
- NAME=mbed2-SILICON_LABS
|
||||||
|
install:
|
||||||
|
# Install dependencies
|
||||||
|
- sudo apt-get install gcc-arm-embedded
|
||||||
|
- pip install --user -r requirements.txt
|
||||||
|
# Print versions we use
|
||||||
|
- arm-none-eabi-gcc --version
|
||||||
|
- python --version
|
||||||
|
before_script:
|
||||||
|
# Create BUILD directory for tests
|
||||||
|
- mkdir BUILD
|
||||||
|
script:
|
||||||
|
# Run local mbed 2 testing
|
||||||
|
- python2 -u tools/build_travis.py --vendor SILICON_LABS | sed -n '/^Executing/p'
|
||||||
|
|
||||||
|
- python: '2.7'
|
||||||
|
env:
|
||||||
|
- NAME=mbed2-MAXIM
|
||||||
|
install:
|
||||||
|
# Install dependencies
|
||||||
|
- sudo apt-get install gcc-arm-embedded
|
||||||
|
- pip install --user -r requirements.txt
|
||||||
|
# Print versions we use
|
||||||
|
- arm-none-eabi-gcc --version
|
||||||
|
- python --version
|
||||||
|
before_script:
|
||||||
|
# Create BUILD directory for tests
|
||||||
|
- mkdir BUILD
|
||||||
|
script:
|
||||||
|
# Run local mbed 2 testing
|
||||||
|
- python2 -u tools/build_travis.py --vendor MAXIM | sed -n '/^Executing/p'
|
||||||
|
|
||||||
|
- python: '2.7'
|
||||||
|
env:
|
||||||
|
- NAME=mbed2-ATMEL
|
||||||
|
install:
|
||||||
|
# Install dependencies
|
||||||
|
- sudo apt-get install gcc-arm-embedded
|
||||||
|
- pip install --user -r requirements.txt
|
||||||
|
# Print versions we use
|
||||||
|
- arm-none-eabi-gcc --version
|
||||||
|
- python --version
|
||||||
|
before_script:
|
||||||
|
# Create BUILD directory for tests
|
||||||
|
- mkdir BUILD
|
||||||
|
script:
|
||||||
|
# Run local mbed 2 testing
|
||||||
|
- python2 -u tools/build_travis.py --vendor ATMEL | sed -n '/^Executing/p'
|
||||||
|
|
||||||
|
- python: '2.7'
|
||||||
|
env:
|
||||||
|
- NAME=mbed2-NUVOTON
|
||||||
|
install:
|
||||||
|
# Install dependencies
|
||||||
|
- sudo apt-get install gcc-arm-embedded
|
||||||
|
- pip install --user -r requirements.txt
|
||||||
|
# Print versions we use
|
||||||
|
- arm-none-eabi-gcc --version
|
||||||
|
- python --version
|
||||||
|
before_script:
|
||||||
|
# Create BUILD directory for tests
|
||||||
|
- mkdir BUILD
|
||||||
|
script:
|
||||||
|
# Run local mbed 2 testing
|
||||||
|
- python2 -u tools/build_travis.py --vendor NUVOTON | sed -n '/^Executing/p'
|
||||||
|
|
|
||||||
|
|
@ -22,17 +22,16 @@ limitations under the License.
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
|
from argparse import ArgumentParser
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Configure builds here
|
# Configure builds here
|
||||||
# "libs" can contain "dsp", "usb"
|
# "libs" can contain "dsp", "usb"
|
||||||
|
|
||||||
build_list = (
|
build_list = [
|
||||||
{ "target": "LPC1768", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
|
{
|
||||||
{ "target": "LPC11U24", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
"STM":
|
||||||
{ "target": "OC_MBUINO", "toolchains": "GCC_ARM", "libs": [] },
|
(
|
||||||
|
|
||||||
{ "target": "LPC11U24_301", "toolchains": "GCC_ARM", "libs": [] },
|
|
||||||
|
|
||||||
{ "target": "B96B_F446VE", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
{ "target": "B96B_F446VE", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
||||||
{ "target": "NUCLEO_L053R8", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
{ "target": "NUCLEO_L053R8", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
||||||
{ "target": "NUCLEO_L152RE", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
{ "target": "NUCLEO_L152RE", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
||||||
|
|
@ -88,14 +87,24 @@ build_list = (
|
||||||
{ "target": "DISCO_L475VG_IOT01A", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
|
{ "target": "DISCO_L475VG_IOT01A", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
|
||||||
{ "target": "DISCO_L476VG", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
|
{ "target": "DISCO_L476VG", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
|
||||||
{ "target": "DISCO_L072CZ_LRWAN1", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
|
{ "target": "DISCO_L072CZ_LRWAN1", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
|
||||||
|
),
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"NXP":
|
||||||
|
(
|
||||||
|
{ "target": "LPC1768", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
|
||||||
|
{ "target": "LPC11U24", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
||||||
|
{ "target": "OC_MBUINO", "toolchains": "GCC_ARM", "libs": [] },
|
||||||
|
|
||||||
|
{ "target": "LPC11U24_301", "toolchains": "GCC_ARM", "libs": [] },
|
||||||
{ "target": "LPC1114", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
{ "target": "LPC1114", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
||||||
{ "target": "LPC11U35_401", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
{ "target": "LPC11U35_401", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
||||||
{ "target": "UBLOX_C027", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
{ "target": "UBLOX_C027", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
||||||
{ "target": "LPC11U35_501", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
{ "target": "LPC11U35_501", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
||||||
{ "target": "LPC11U68", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
{ "target": "LPC11U68", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
||||||
{ "target": "LPC11U37H_401", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
{ "target": "LPC11U37H_401", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
||||||
|
{ "target": "LPC1549", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
||||||
{ "target": "KL05Z", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
{ "target": "KL05Z", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
||||||
{ "target": "KL25Z", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
|
{ "target": "KL25Z", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
|
||||||
{ "target": "KL27Z", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
|
{ "target": "KL27Z", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
|
||||||
|
|
@ -107,37 +116,67 @@ build_list = (
|
||||||
{ "target": "K22F", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
|
{ "target": "K22F", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
|
||||||
{ "target": "LPC4088", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
|
{ "target": "LPC4088", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
|
||||||
{ "target": "ARCH_PRO", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
{ "target": "ARCH_PRO", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
||||||
{ "target": "LPC1549", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
)
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"NORDIC":
|
||||||
|
(
|
||||||
{ "target": "NRF51822", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
{ "target": "NRF51822", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
||||||
{ "target": "DELTA_DFCM_NNN40", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
{ "target": "DELTA_DFCM_NNN40", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
||||||
{ "target": "NRF51_DK", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
{ "target": "NRF51_DK", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
||||||
{ "target": "NRF51_MICROBIT", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
{ "target": "NRF51_MICROBIT", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
||||||
|
)
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"SILICON_LABS":
|
||||||
|
(
|
||||||
{ "target": "EFM32ZG_STK3200", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
{ "target": "EFM32ZG_STK3200", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
||||||
{ "target": "EFM32HG_STK3400", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
|
{ "target": "EFM32HG_STK3400", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
|
||||||
{ "target": "EFM32LG_STK3600", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
|
{ "target": "EFM32LG_STK3600", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
|
||||||
{ "target": "EFM32GG_STK3700", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
|
{ "target": "EFM32GG_STK3700", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
|
||||||
{ "target": "EFM32WG_STK3800", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
|
{ "target": "EFM32WG_STK3800", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
|
||||||
{ "target": "EFM32PG_STK3401", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
{ "target": "EFM32PG_STK3401", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
||||||
|
)
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"MAXIM":
|
||||||
|
(
|
||||||
{ "target": "MAXWSNENV", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
{ "target": "MAXWSNENV", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
||||||
{ "target": "MAX32600MBED", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
{ "target": "MAX32600MBED", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
||||||
{ "target": "MAX32620HSP", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
{ "target": "MAX32620HSP", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
||||||
|
)
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"ATMEL":
|
||||||
|
(
|
||||||
{ "target": "SAMR21G18A", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
{ "target": "SAMR21G18A", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
||||||
{ "target": "SAMD21J18A", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
{ "target": "SAMD21J18A", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
||||||
{ "target": "SAMD21G18A", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
{ "target": "SAMD21G18A", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
||||||
{ "target": "SAML21J18A", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
{ "target": "SAML21J18A", "toolchains": "GCC_ARM", "libs": ["dsp"] },
|
||||||
|
)
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
{
|
||||||
|
"NUVOTON":
|
||||||
|
(
|
||||||
{ "target": "NUMAKER_PFM_NUC472", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
|
{ "target": "NUMAKER_PFM_NUC472", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
|
||||||
{ "target": "NUMAKER_PFM_M453", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
|
{ "target": "NUMAKER_PFM_M453", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
|
||||||
{ "target": "NUMAKER_PFM_M487", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
|
{ "target": "NUMAKER_PFM_M487", "toolchains": "GCC_ARM", "libs": ["dsp", "usb"] },
|
||||||
)
|
)
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Configure example test building (linking against external mbed SDK libraries)
|
# Configure example test building (linking against external mbed SDK libraries)
|
||||||
|
|
||||||
linking_list = [
|
linking_list = [
|
||||||
|
{
|
||||||
|
"NXP": (
|
||||||
{"target": "LPC1768",
|
{"target": "LPC1768",
|
||||||
"toolchains": "GCC_ARM",
|
"toolchains": "GCC_ARM",
|
||||||
"tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_15", "MBED_16", "MBED_17"],
|
"tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_15", "MBED_16", "MBED_17"],
|
||||||
|
|
@ -162,6 +201,11 @@ linking_list = [
|
||||||
"usb" : ["USB_1", "USB_2" ,"USB_3"],
|
"usb" : ["USB_1", "USB_2" ,"USB_3"],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
)
|
||||||
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
"STM": (
|
||||||
{"target": "NUCLEO_F446RE",
|
{"target": "NUCLEO_F446RE",
|
||||||
"toolchains": "GCC_ARM",
|
"toolchains": "GCC_ARM",
|
||||||
"tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
|
"tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
|
||||||
|
|
@ -259,6 +303,10 @@ linking_list = [
|
||||||
"tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
|
"tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
)
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"NUVOTON": (
|
||||||
{"target": "NUMAKER_PFM_NUC472",
|
{"target": "NUMAKER_PFM_NUC472",
|
||||||
"toolchains": "GCC_ARM",
|
"toolchains": "GCC_ARM",
|
||||||
"tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
|
"tests": {"" : ["MBED_2", "MBED_10", "MBED_11", "MBED_16"],
|
||||||
|
|
@ -277,18 +325,22 @@ linking_list = [
|
||||||
"usb" : ["USB_1", "USB_2" ,"USB_3"],
|
"usb" : ["USB_1", "USB_2" ,"USB_3"],
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
# Driver
|
# Driver
|
||||||
|
|
||||||
def run_builds(dry_run):
|
def run_builds(dry_run, vendor):
|
||||||
for build in build_list:
|
for vendor_list in build_list:
|
||||||
|
if vendor in vendor_list:
|
||||||
|
for build in vendor_list[vendor]:
|
||||||
toolchain_list = build["toolchains"]
|
toolchain_list = build["toolchains"]
|
||||||
if type(toolchain_list) != type([]): toolchain_list = [toolchain_list]
|
if type(toolchain_list) != type([]): toolchain_list = [toolchain_list]
|
||||||
for toolchain in toolchain_list:
|
for toolchain in toolchain_list:
|
||||||
cmdline = "python tools/build.py -m %s -t %s -j 4 -c --silent "% (build["target"], toolchain)
|
cmdline = "python tools/build.py -m %s -t %s -c --silent "% (build["target"], toolchain)
|
||||||
libs = build.get("libs", [])
|
libs = build.get("libs", [])
|
||||||
if libs:
|
if libs:
|
||||||
cmdline = cmdline + " ".join(["--" + l for l in libs])
|
cmdline = cmdline + " ".join(["--" + l for l in libs])
|
||||||
|
|
@ -298,11 +350,13 @@ def run_builds(dry_run):
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
|
|
||||||
def run_test_linking(dry_run):
|
def run_test_linking(dry_run, vendor):
|
||||||
""" Function run make.py commands to build and link simple mbed SDK
|
""" Function run make.py commands to build and link simple mbed SDK
|
||||||
tests against few libraries to make sure there are no simple linking errors.
|
tests against few libraries to make sure there are no simple linking errors.
|
||||||
"""
|
"""
|
||||||
for link in linking_list:
|
for vendor_list in linking_list:
|
||||||
|
if vendor in vendor_list:
|
||||||
|
for link in vendor_list[vendor]:
|
||||||
toolchain_list = link["toolchains"]
|
toolchain_list = link["toolchains"]
|
||||||
if type(toolchain_list) != type([]):
|
if type(toolchain_list) != type([]):
|
||||||
toolchain_list = [toolchain_list]
|
toolchain_list = [toolchain_list]
|
||||||
|
|
@ -318,7 +372,7 @@ def run_test_linking(dry_run):
|
||||||
if os.system(cmdline) != 0:
|
if os.system(cmdline) != 0:
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
def run_test_testsuite(dry_run):
|
def run_test_testsuite(dry_run, vendor):
|
||||||
cmdline = "python tools/singletest.py --version"
|
cmdline = "python tools/singletest.py --version"
|
||||||
print "Executing: " + cmdline
|
print "Executing: " + cmdline
|
||||||
if not dry_run:
|
if not dry_run:
|
||||||
|
|
@ -326,6 +380,16 @@ def run_test_testsuite(dry_run):
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
run_builds("-s" in sys.argv)
|
parser = ArgumentParser()
|
||||||
run_test_linking("-s" in sys.argv)
|
|
||||||
run_test_testsuite("-s" in sys.argv)
|
parser.add_argument("--vendor",
|
||||||
|
metavar="vendor",
|
||||||
|
type=str.upper,
|
||||||
|
help="Select a vendor to run travis tests"
|
||||||
|
)
|
||||||
|
|
||||||
|
options = parser.parse_args()
|
||||||
|
|
||||||
|
run_builds("-s" in sys.argv, options.vendor)
|
||||||
|
run_test_linking("-s" in sys.argv, options.vendor)
|
||||||
|
run_test_testsuite("-s" in sys.argv, options.vendor)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue