233 lines
7.0 KiB
Python
233 lines
7.0 KiB
Python
|
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"
|