alkaid_release_platform/tests/test_config_expend.py
ekko.bao 0a0f6a6054 初次创建仓库提交代码
1. 已经构建好了架子了。
2. 添加了示例的插件
2025-04-21 06:37:06 +00:00

233 lines
7.0 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from database import *
def test_black_list_expand():
# 如下的参考数据来源于 原本的脚本里面的 BLACK_LIST_DEFAULT
ref = """
sdk/interface/include/aio/
sdk/interface/include/ai/
sdk/interface/src/ai/
sdk/impl/ai/
sdk/interface/src/aio
sdk/impl/aio
sdk/interface/include/ao/
sdk/interface/src/ao/
sdk/impl/ao/
sdk/interface/include/alsa/
sdk/interface/src/alsa/
sdk/impl/alsa/
sdk/interface/include/cipher/
sdk/interface/src/cipher/
sdk/impl/cipher/
sdk/interface/src/common
sdk/impl/common
sdk/interface/include/cus3a/
sdk/interface/src/cus3a/
sdk/interface/include/debug
sdk/interface/src/debug
sdk/impl/debug
sdk/interface/include/dummy/
sdk/interface/src/dummy/
sdk/impl/dummy/
sdk/interface/include/disp
sdk/interface/src/disp
sdk/impl/disp
sdk/interface/include/dpu/
sdk/interface/src/dpu/
sdk/impl/dpu/
sdk/interface/include/dsp/
sdk/interface/src/dsp/
sdk/impl/dsp/
sdk/interface/include/fb/
sdk/interface/src/fb/
sdk/impl/fb/
sdk/interface/include/gfx/
sdk/interface/src/gfx/
sdk/impl/gfx/
sdk/interface/include/hdmi/
sdk/interface/src/hdmi/
sdk/impl/hdmi/
sdk/interface/include/hdmirx
sdk/interface/src/hdmirx
sdk/impl/hdmirx
sdk/interface/include/hvp
sdk/interface/src/hvp
sdk/impl/hvp
sdk/interface/include/ipu
sdk/interface/src/ipu
sdk/impl/ipu
sdk/interface/include/iqserver/
sdk/interface/src/iqserver/
sdk/interface/include/ive
sdk/interface/src/ive
sdk/impl/ive
sdk/interface/include/jpd/
sdk/interface/src/jpd/
sdk/impl/jpd
sdk/interface/include/mipitx/
sdk/interface/src/mipitx/
sdk/impl/mipitx/
sdk/interface/include/nir
sdk/interface/src/nir
sdk/impl/nir
sdk/interface/include/panel/
sdk/interface/src/panel/
sdk/impl/panel/
sdk/interface/include/pcie/
sdk/interface/src/pcie/
sdk/impl/pcie/
sdk/interface/include/pspi
sdk/interface/src/pspi
sdk/impl/pspi
sdk/interface/include/rgn
sdk/interface/src/rgn
sdk/impl/rgn
sdk/interface/include/scl
sdk/interface/src/scl
sdk/impl/scl
sdk/interface/include/sed/
sdk/interface/src/sed/
sdk/interface/include/sensor
sdk/interface/src/sensor
sdk/impl/sensor
sdk/interface/include/shadow/
sdk/interface/src/shadow/
sdk/impl/shadow/
sdk/impl/sys
sdk/interface/include/vdec/
sdk/interface/src/vdec/
sdk/impl/vdec/
sdk/interface/include/md/
sdk/interface/include/od/
sdk/interface/include/vg/
sdk/interface/include/vdf/
sdk/interface/src/vdf/
sdk/interface/src/vcodec
sdk/interface/include/vdisp/
sdk/interface/src/vdisp/
sdk/impl/vdisp/
sdk/interface/include/wlan/
sdk/interface/src/wlan/
rtos/proj/sc/driver/sysdriver/dualos
rtos/proj/sc/driver/sysdriver/otp
rtos/proj/sc/driver/sysdriver/usb_gadget/udc/usb30
rtos/proj/sc/system/rtos/freertos
rtos/proj/sc_priv/arch/arm/cortex-a/v7_aarch32/context_switch
rtos/proj/sc_priv/arch/arm/cortex-a/v7_aarch32/lh_monitor
rtos/proj/sc_priv/driver/sysdriver/dualos
rtos/proj/sc_priv/driver/sysdriver/otp
rtos/proj/sc_priv/driver/sysdriver/usb_gadget/udc/usb30
rtos/proj/sc_priv/system/rtos/freertos
pm_rtos/proj/sc/driver/sysdriver/usb_gadget/udc/usb30
pm_rtos/proj/sc/driver/camdriver/common
pm_rtos/proj/sc/driver/camdriver/pm_aio
pm_rtos/proj/sc/driver/camdriver/pm_idle
pm_rtos/proj/sc/driver/camdriver/pm_jpe
pm_rtos/proj/sc/driver/camdriver/pm_md
pm_rtos/proj/sc/driver/camdriver/pm_radar
pm_rtos/proj/sc/driver/camdriver/pm_usbpoc
pm_rtos/proj/sc/driver/camdriver/pm_vif
"""
BlackListDefault.check()
ret = sorted(set(config_expand(BlackListDefault)))
ret = [_.strip('/') for _ in ret]
# with open("temp/test_expand.txt", "w") as f:
# for item in ret:
# item = item.strip('/')
# f.write(item + "\n")
exp = [_.strip() for _ in ref.split()]
exp = sorted(set(exp))
exp = [_.strip('/') for _ in exp]
# with open("temp/test_expand_ref.txt", "w") as f:
# for item in exp:
# f.write(item + "\n")
assert ret == exp
#print("BLACK_LIST_DEFAULT.expand: ", ret)
def test_black_list_internal_expand():
BlackListInternal.check()
ref = """
sdk/interface/include/isp/
sdk/interface/src/isp/
sdk/impl/isp/
sdk/interface/include/ispalgo/
sdk/interface/src/ispalgo/
sdk/interface/include/ldc/
sdk/interface/src/ldc/
sdk/impl/ldc/
sdk/interface/include/venc
sdk/interface/src/venc
sdk/impl/venc
sdk/interface/include/vif
sdk/interface/src/vif
sdk/impl/vif
pm_rtos/proj/sc/driver/camdriver/pm_isp/
pm_rtos/proj/sc/driver/camdriver/pm_ispalgo/
pm_rtos/proj/sc/driver/camdriver/pm_radar_algo/
"""
ret = sorted(set(config_expand(BlackListInternal)))
ret = [_.strip('/') for _ in ret]
# with open("temp/test_expand_internal.txt", "w") as f:
# for item in ret:
# f.write(item + "\n")
exp = [_.strip() for _ in ref.split()]
exp = sorted(set(exp))
exp = [_.strip('/') for _ in exp]
# with open("temp/test_expand_ref_internal.txt", "w") as f:
# for item in exp:
# f.write(item + "\n")
assert ret == exp
def test_config_format():
ReleaseOptions.SWBoardAlias = "iford"
@AutoInstanceDecorator
class TestAlias(BaseConfig):
_config = [
"preload_sample",
]
ret = config_expand(TestAlias)
assert ret == ["sdk/verify/sample_code/source/iford/preload_sample/rtos"]
def test_config_test_item():
@AutoInstanceDecorator
class TestAlias(BaseConfig):
_config = [
"preload_sample",
]
TestAlias.update(["xxx/xxx/yyy", "zzz/zzz/www", "test_item"])
ret = config_expand(TestAlias)
# 使用list方式访问
assert [_ for _ in ["xxx/xxx/yyy", "zzz/zzz/www", "test_item"] if _ in ret]
# 使用dict方式访问
assert TestAlias.get("xxx/xxx/yyy") == "xxx/xxx/yyy"
assert TestAlias["zzz/zzz/www"] == "zzz/zzz/www"
# 使用索引方式修改item 因为这是一个list类型的配置所以修改了值其key也会跟着修改
TestAlias["zzz/zzz/www"] = "zzz/zzz/www_new"
assert TestAlias["zzz/zzz/www_new"] == "zzz/zzz/www_new"
# 获取不存在的item
assert TestAlias.get("zzz/zzz/www", 'default') == 'default'
# 特殊访问方式。直接使用一个路径去访问,这样即使这个路径不存在,也不会抛出异常而是返回路径本身
assert TestAlias["zzz/zzz/www"] == "zzz/zzz/www"
# 通过索引的方式访问不存在的item 会抛出异常
try:
TestAlias["unexist_item"]
except KeyError:
assert True
else:
assert False
# 使用点号方式访问
assert TestAlias.test_item == "test_item"
# 使用点号方式设置
TestAlias.test_item = "test_item_new" # 会自动将test_item从_list中删除并添加test_item_new
assert TestAlias.test_item_new == "test_item_new"
# 使用点号方式删除后,再次访问会抛出异常
try:
del TestAlias.test_item_new
TestAlias.test_item_new
except KeyError:
assert True
else:
assert False
# 删除后使用get方式访问会返回默认值
assert TestAlias.get("test_item", "default") == "default"