code: def test_add_lower_pass_multi_external_pass():
      fake_pass_1 = mock.MagicMock()
      fake_pass_2 = mock.MagicMock()
      fake_pass_3 = mock.MagicMock()
      with mock.patch.dict(
          "sys.modules",
          {
              "fake_module": fake_pass_1,
              "fake_module": fake_pass_2,
              "fake_module": fake_pass_3,
          },
      ):
          configs = parse_configs(
              [
                  "tir.add_lower_pass=1,fake_module.fake_pass_1,2,fake_module.fake_pass2",
                  "tir.add_lower_pass=3,fake_module.fake_pass_3",
              ]
          )
          assert len(configs["tir.add_lower_pass"]) == 3
          # opt_level: 1, pass: fake_module.fake_pass_1
          assert configs["tir.add_lower_pass"][0][0] == 1
          # opt_level: 2, pass: fake_module.fake_pass_2
          assert configs["tir.add_lower_pass"][1][0] == 2
          # opt_level: 3, pass: fake_module.fake_pass_3
          assert configs["tir.add_lower_pass"][2][0] == 3
  
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 8 for calling a global function with example usage: test_add_lower_pass_multi_external_pass() without return types