sb/rtems-kernel-config-check: Support multiple BSPs and add a test option

This commit is contained in:
Chris Johns
2022-09-07 18:23:02 +10:00
parent be25beed29
commit 17106e0e3c

View File

@@ -28,10 +28,9 @@ POSSIBILITY OF SUCH DAMAGE.
from __future__ import print_function from __future__ import print_function
import sys
import argparse import argparse
import os.path
from os.path import exists import sys
try: try:
import ConfigParser import ConfigParser
@@ -67,8 +66,8 @@ def run():
type=int, type=int,
default=6) default=6)
parser.add_argument("-t", parser.add_argument("-t",
"--target", "--tests",
help="return target (<arch-rtems<rtems-version>)", help="Build tests is true",
action="store_true") action="store_true")
args = parser.parse_args() args = parser.parse_args()
config = configparser.ConfigParser() config = configparser.ConfigParser()
@@ -78,6 +77,10 @@ def run():
file=sys.stderr) file=sys.stderr)
sys.exit(1) sys.exit(1)
if not os.path.exists(args.config):
print("Config file not found: " + args.config, file=sys.stderr)
sys.exit(1)
try: try:
config.read(args.config) config.read(args.config)
except configparser.MissingSectionHeaderError: except configparser.MissingSectionHeaderError:
@@ -90,13 +93,8 @@ def run():
except: except:
print("An unknown exception occured", file=sys.stderr) print("An unknown exception occured", file=sys.stderr)
if len(config.sections()) != 1: for arch_bsp in config.sections():
print("You can only have one arch/bsp section in your config.", if len(arch_bsp.split("/")) != 2:
file=sys.stderr)
sys.exit(1)
arch_bsp_str = config.sections()[0]
if arch_bsp_str.find("/") == -1:
print("arch/bsp section in config is missing '/'", file=sys.stderr) print("arch/bsp section in config is missing '/'", file=sys.stderr)
sys.exit(1) sys.exit(1)
@@ -104,20 +102,24 @@ def run():
args.arch = False args.arch = False
if args.arch: if args.arch:
print(arch_bsp_str.split("/")[0]) print(' '.join([ab.split('/')[0] for ab in config.sections()]))
return return
if args.bsp: if args.bsp:
print(arch_bsp_str.split("/")[1]) print(' '.join([ab.split('/')[1] for ab in config.sections()]))
return return
if args.arch_bsp: if args.arch_bsp:
print(arch_bsp_str.replace("/", " ")) print(' '.join([arch_bsp for arch_bsp in config.sections()]))
return return
if args.target: if args.tests:
arch = arch_bsp_str.split("/")[0] for sec in ["DEFAULT"] + config.sections():
print(arch + "-rtems" + str(args.rtems_version)) for item in config[sec].items():
if item[0] == 'buld_tests' or item[0] == 'build_samples':
print("True")
return
print("False")
return return