code: def test_add_lower_pass_invalid_format():
      # wrong format
      with pytest.raises(TVMCException):
          _ = parse_configs(
              ["tir.add_lower_pass=tir.transform.UnrollLoop,1"]
          )
      # missing pass name
      with pytest.raises(TVMCException):
          _ = parse_configs(
              ["tir.add_lower_pass=1,tir.transform.UnrollLoop,3"]
          )
      # wrong opt level
      with pytest.raises(TVMCException):
          _ = parse_configs(
              ["tir.add_lower_pass=a,tir.transform.UnrollLoop"]
          )
      # fake module
      with pytest.raises(ModuleNotFoundError):
          _ = parse_configs(
              [
                  "tir.add_lower_pass=1,tir.transform.UnrollLoop,2,path.to.module.fake_func"
              ]
          )
      # real module and fake func
      with pytest.raises(TVMCException):
          _ = parse_configs(
              [
                  "tir.add_lower_pass=1,tir.transform.UnrollLoop,2,tvm.tir.fake_func"
              ]
          )
  
file_path: tvm/tests/python/driver/tvmc/test_pass_config.py
imports: import pytest
  from unittest import mock
  from tvm.contrib.target.vitis_ai import vitis_ai_available
  from tvm.driver.tvmc import TVMCException
  from tvm.driver.tvmc.pass_config import parse_configs
  from tvm.tir.transform import PrimFuncPass
  from tvm.ir.transform import Sequential
label_desc: Use image node_id 10 for calling a global function with example usage: test_add_lower_pass_invalid_format() without return types