code: def test_extra_param(BaseTestHandler):
      from tvm.micro import project_api
  
      fixture = ClientServerFixture(BaseTestHandler())
  
      # test one with has_preprocssing and one without
      assert hasattr(fixture.server, "_dispatch_build") == False
      with pytest.raises(project_api.server.JSONRPCError) as exc_info:
          fixture.client._request_reply(
              "build", {"invalid_param_name": None, "options": {}}
          )
  
      assert (
          exc_info.value.code
          == project_api.server.ErrorCode.INVALID_PARAMS
      )
      assert "build: extra parameters: invalid_param_name" in str(
          exc_info.value
      )
  
      assert hasattr(fixture.server, "_dispatch_open_transport") == True
      with pytest.raises(project_api.server.JSONRPCError) as exc_info:
          fixture.client._request_reply(
              "open_transport",
              {"invalid_param_name": None, "options": {}},
          )
  
      assert (
          exc_info.value.code
          == project_api.server.ErrorCode.INVALID_PARAMS
      )
      assert (
          "open_transport: extra parameters: invalid_param_name"
          in str(exc_info.value)
      )
  
imports: import collections
  import io
  import json
  import sys
  import unittest
  from unittest import mock
  import pytest
  import tvm
  import tvm.testing
label_desc: Use image node_id 14 for calling a global function with example usage: test_extra_param(BaseTestHandler) without return types