code: def test_start_server_1(self):
      HELLO_MSG = b"1" * 1024 * 5 + b"\n"
  
      def client(sock, addr):
          for i in range(10):
              time.sleep(0.2)
              if srv.is_serving():
                  break
          else:
              raise RuntimeError
  
          sock.settimeout(2)
          sock.connect(addr)
          sock.send(HELLO_MSG)
          sock.recv_all(1)
          sock.close()
  
      async def serve(reader, writer):
          await reader.readline()
          main_task.cancel()
          writer.write(b"1")
          writer.close()
          await writer.wait_closed()
  
      async def main(srv):
          async with srv:
              await srv.serve_forever()
  
      srv = self.loop.run_until_complete(
          asyncio.start_server(
              serve, socket_helper.HOSTv4, 0, start_serving=False
          )
      )
  
      self.assertFalse(srv.is_serving())
  
      main_task = self.loop.create_task(main(srv))
  
      addr = srv.sockets[0].getsockname()
      with self.assertRaises(asyncio.CancelledError):
          with self.tcp_client(lambda sock: client(sock, addr)):
              self.loop.run_until_complete(main_task)
  
      self.assertEqual(srv.sockets, ())
  
      self.assertIsNone(srv._sockets)
      self.assertIsNone(srv._waiters)
      self.assertFalse(srv.is_serving())
  
      with self.assertRaisesRegex(RuntimeError, r"is closed"):
          self.loop.run_until_complete(srv.serve_forever())
  
imports: import asyncio
  import os
  import socket
  import time
  import threading
  import unittest
  from test.support import socket_helper
  from test.test_asyncio import utils
  from test.test_asyncio import functional
label_desc: Use image node_id 2 for calling the BaseStartServer obj's underlying member method code with example usage: obj.test_start_server_1() without return types