def METHOD_NAME():
    """
    GO!GO!!GO!!!
    """
    parser = argparse.ArgumentParser(description="run the sample and examine outputs")
    parser.add_argument("working_directory", type=str)
    parser.add_argument("--aot", action='store_true', help="Test with AOT")
    args = parser.parse_args()
    test_aot = False
    suffix = ".wasm"
    if not args.aot:
        print("Test with interpreter mode")
    else:
        print("Test with AOT mode")
        test_aot = True
        suffix = ".aot"
        wasm_apps_dir = args.working_directory
        compile_wasm_files_to_aot(wasm_apps_dir)
    ret = 1
    app_server = None
    try:
        print("\n================================")
        print("Test TCP server and client")
        cmd = "./iwasm --addr-pool=0.0.0.0/15 tcp_server" + suffix
        app_server = start_server(cmd, args.working_directory)
        # wait for a second
        time.sleep(1)
        cmd = "./iwasm --addr-pool=127.0.0.1/15 tcp_client" + suffix
        for i in range(5):
            run_cmd(cmd, args.working_directory)
        print("\n================================")
        print("Test UDP server and client")
        cmd = "./iwasm --addr-pool=0.0.0.0/15 udp_server" + suffix
        app_server = start_server(cmd, args.working_directory)
        # wait for a second
        time.sleep(1)
        cmd = "./iwasm --addr-pool=127.0.0.1/15 udp_client" + suffix
        for i in range(5):
            run_cmd(cmd, args.working_directory)
        print("\n=====================================================")
        print("Sleep 80 seconds to wait TCP server port actually close")
        time.sleep(80)
        print("\n================================")
        print("Test send and receive")
        cmd = "./iwasm --addr-pool=127.0.0.1/0 ./send_recv" + suffix
        run_cmd(cmd, args.working_directory)
        print("\n================================")
        print("Test socket options")
        cmd = "./iwasm socket_opts" + suffix
        run_cmd(cmd, args.working_directory)
        print("\n================================")
        print("Test timeout server and client")
        cmd = "./iwasm --addr-pool=0.0.0.0/15 timeout_server" + suffix
        app_server = start_server(cmd, args.working_directory)
        # wait for a second
        time.sleep(1)
        cmd = "./iwasm --addr-pool=127.0.0.1/15 timeout_client" + suffix
        run_cmd(cmd, args.working_directory)
        print("\n==========================================")
        print("Test multicast_client and multicast_server")
        cmd = "./iwasm --addr-pool=0.0.0.0/0,::/0 multicast_client.wasm 224.0.0.1"
        app_server = start_server(cmd, args.working_directory)
        # wait for a second
        time.sleep(1)
        cmd = "./multicast_server 224.0.0.1"
        run_cmd(cmd, args.working_directory)
        cmd = "./iwasm --addr-pool=0.0.0.0/0,::/0 multicast_client.wasm FF02:113D:6FDD:2C17:A643:FFE2:1BD1:3CD2"
        app_server = start_server(cmd, args.working_directory)
        # wait for a second
        time.sleep(1)
        cmd = "./multicast_server FF02:113D:6FDD:2C17:A643:FFE2:1BD1:3CD2"
        run_cmd(cmd, args.working_directory)
        print("\n================================")
        print("Test address resolving")
        cmd = "./iwasm --allow-resolve=*.com addr_resolve.wasm github.com"
        cmd = "./multicast_server FF02:113D:6FDD:2C17:A643:FFE2:1BD1:3CD2"
        run_cmd(cmd, args.working_directory)
        # wait for a second
        time.sleep(1)
        print("--> All pass")
        ret = 0
    except AssertionError:
        traceback.print_exc()
    finally:
        app_server.kill()
    return ret