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"
|