<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html xmlns:fn="http://www.w3.org/2005/02/xpath-functions"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link rel="stylesheet" href="../../../../doc/otp_doc.css" type="text/css"> <title>Erlang -- ct_telnet</title> </head> <body bgcolor="white" text="#000000" link="#0000ff" vlink="#ff00ff" alink="#ff0000"><div id="container"> <script id="js" type="text/javascript" language="JavaScript" src="../../../../doc/js/flipmenu/flipmenu.js"></script><script id="js2" type="text/javascript" src="../../../../doc/js/erlresolvelinks.js"></script><script language="JavaScript" type="text/javascript"> <!-- function getWinHeight() { var myHeight = 0; if( typeof( window.innerHeight ) == 'number' ) { //Non-IE myHeight = window.innerHeight; } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) { //IE 6+ in 'standards compliant mode' myHeight = document.documentElement.clientHeight; } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) { //IE 4 compatible myHeight = document.body.clientHeight; } return myHeight; } function setscrollpos() { var objf=document.getElementById('loadscrollpos'); document.getElementById("leftnav").scrollTop = objf.offsetTop - getWinHeight()/2; } function addEvent(obj, evType, fn){ if (obj.addEventListener){ obj.addEventListener(evType, fn, true); return true; } else if (obj.attachEvent){ var r = obj.attachEvent("on"+evType, fn); return r; } else { return false; } } addEvent(window, 'load', setscrollpos); //--></script><div id="leftnav"><div class="innertube"> <img alt="Erlang logo" src="../../../../doc/erlang-logo.png"><br><small><a href="users_guide.html">User's Guide</a><br><a href="index.html">Reference Manual</a><br><a href="release_notes.html">Release Notes</a><br><a href="../pdf/common_test-1.6.3.pdf">PDF</a><br><a href="../../../../doc/index.html">Top</a></small><p><strong>Common Test</strong><br><strong>Reference Manual</strong><br><small>Version 1.6.3</small></p> <br><a href="javascript:openAllFlips()">Expand All</a><br><a href="javascript:closeAllFlips()">Contract All</a><p><small><strong>Table of Contents</strong></small></p> <ul class="flipMenu"> <li id="no" title="common_test " expanded="false">common_test<ul> <li><a href="common_test.html"> Top of manual page </a></li> <li title="Module:all-0"><a href="common_test.html#Module:all-0">Module:all/0</a></li> <li title="Module:groups-0"><a href="common_test.html#Module:groups-0">Module:groups/0</a></li> <li title="Module:suite-0"><a href="common_test.html#Module:suite-0">Module:suite/0</a></li> <li title="Module:init_per_suite-1"><a href="common_test.html#Module:init_per_suite-1">Module:init_per_suite/1</a></li> <li title="Module:end_per_suite-1"><a href="common_test.html#Module:end_per_suite-1">Module:end_per_suite/1</a></li> <li title="Module:group-1"><a href="common_test.html#Module:group-1">Module:group/1</a></li> <li title="Module:init_per_group-2"><a href="common_test.html#Module:init_per_group-2">Module:init_per_group/2</a></li> <li title="Module:end_per_group-2"><a href="common_test.html#Module:end_per_group-2">Module:end_per_group/2</a></li> <li title="Module:init_per_testcase-2"><a href="common_test.html#Module:init_per_testcase-2">Module:init_per_testcase/2</a></li> <li title="Module:end_per_testcase-2"><a href="common_test.html#Module:end_per_testcase-2">Module:end_per_testcase/2</a></li> <li title="Module:Testcase-0"><a href="common_test.html#Module:Testcase-0">Module:Testcase/0</a></li> <li title="Module:Testcase-1"><a href="common_test.html#Module:Testcase-1">Module:Testcase/1</a></li> </ul> </li> <li title="ct_run"><a href="ct_run.html">ct_run</a></li> <li id="no" title="ct " expanded="false">ct<ul> <li><a href="ct.html"> Top of manual page </a></li> <li title="abort_current_testcase-1"><a href="ct.html#abort_current_testcase-1">abort_current_testcase/1</a></li> <li title="add_config-2"><a href="ct.html#add_config-2">add_config/2</a></li> <li title="break-1"><a href="ct.html#break-1">break/1</a></li> <li title="break-2"><a href="ct.html#break-2">break/2</a></li> <li title="capture_get-0"><a href="ct.html#capture_get-0">capture_get/0</a></li> <li title="capture_get-1"><a href="ct.html#capture_get-1">capture_get/1</a></li> <li title="capture_start-0"><a href="ct.html#capture_start-0">capture_start/0</a></li> <li title="capture_stop-0"><a href="ct.html#capture_stop-0">capture_stop/0</a></li> <li title="comment-1"><a href="ct.html#comment-1">comment/1</a></li> <li title="comment-2"><a href="ct.html#comment-2">comment/2</a></li> <li title="continue-0"><a href="ct.html#continue-0">continue/0</a></li> <li title="continue-1"><a href="ct.html#continue-1">continue/1</a></li> <li title="decrypt_config_file-2"><a href="ct.html#decrypt_config_file-2">decrypt_config_file/2</a></li> <li title="decrypt_config_file-3"><a href="ct.html#decrypt_config_file-3">decrypt_config_file/3</a></li> <li title="encrypt_config_file-2"><a href="ct.html#encrypt_config_file-2">encrypt_config_file/2</a></li> <li title="encrypt_config_file-3"><a href="ct.html#encrypt_config_file-3">encrypt_config_file/3</a></li> <li title="fail-1"><a href="ct.html#fail-1">fail/1</a></li> <li title="fail-2"><a href="ct.html#fail-2">fail/2</a></li> <li title="get_config-1"><a href="ct.html#get_config-1">get_config/1</a></li> <li title="get_config-2"><a href="ct.html#get_config-2">get_config/2</a></li> <li title="get_config-3"><a href="ct.html#get_config-3">get_config/3</a></li> <li title="get_status-0"><a href="ct.html#get_status-0">get_status/0</a></li> <li title="get_target_name-1"><a href="ct.html#get_target_name-1">get_target_name/1</a></li> <li title="get_timetrap_info-0"><a href="ct.html#get_timetrap_info-0">get_timetrap_info/0</a></li> <li title="install-1"><a href="ct.html#install-1">install/1</a></li> <li title="listenv-1"><a href="ct.html#listenv-1">listenv/1</a></li> <li title="log-1"><a href="ct.html#log-1">log/1</a></li> <li title="log-2"><a href="ct.html#log-2">log/2</a></li> <li title="log-3"><a href="ct.html#log-3">log/3</a></li> <li title="log-4"><a href="ct.html#log-4">log/4</a></li> <li title="make_priv_dir-0"><a href="ct.html#make_priv_dir-0">make_priv_dir/0</a></li> <li title="notify-2"><a href="ct.html#notify-2">notify/2</a></li> <li title="pal-1"><a href="ct.html#pal-1">pal/1</a></li> <li title="pal-2"><a href="ct.html#pal-2">pal/2</a></li> <li title="pal-3"><a href="ct.html#pal-3">pal/3</a></li> <li title="pal-4"><a href="ct.html#pal-4">pal/4</a></li> <li title="parse_table-1"><a href="ct.html#parse_table-1">parse_table/1</a></li> <li title="print-1"><a href="ct.html#print-1">print/1</a></li> <li title="print-2"><a href="ct.html#print-2">print/2</a></li> <li title="print-3"><a href="ct.html#print-3">print/3</a></li> <li title="print-4"><a href="ct.html#print-4">print/4</a></li> <li title="reload_config-1"><a href="ct.html#reload_config-1">reload_config/1</a></li> <li title="remove_config-2"><a href="ct.html#remove_config-2">remove_config/2</a></li> <li title="require-1"><a href="ct.html#require-1">require/1</a></li> <li title="require-2"><a href="ct.html#require-2">require/2</a></li> <li title="run-1"><a href="ct.html#run-1">run/1</a></li> <li title="run-2"><a href="ct.html#run-2">run/2</a></li> <li title="run-3"><a href="ct.html#run-3">run/3</a></li> <li title="run_test-1"><a href="ct.html#run_test-1">run_test/1</a></li> <li title="run_testspec-1"><a href="ct.html#run_testspec-1">run_testspec/1</a></li> <li title="sleep-1"><a href="ct.html#sleep-1">sleep/1</a></li> <li title="start_interactive-0"><a href="ct.html#start_interactive-0">start_interactive/0</a></li> <li title="step-3"><a href="ct.html#step-3">step/3</a></li> <li title="step-4"><a href="ct.html#step-4">step/4</a></li> <li title="stop_interactive-0"><a href="ct.html#stop_interactive-0">stop_interactive/0</a></li> <li title="sync_notify-2"><a href="ct.html#sync_notify-2">sync_notify/2</a></li> <li title="testcases-2"><a href="ct.html#testcases-2">testcases/2</a></li> <li title="timetrap-1"><a href="ct.html#timetrap-1">timetrap/1</a></li> <li title="userdata-2"><a href="ct.html#userdata-2">userdata/2</a></li> <li title="userdata-3"><a href="ct.html#userdata-3">userdata/3</a></li> </ul> </li> <li id="no" title="ct_master " expanded="false">ct_master<ul> <li><a href="ct_master.html"> Top of manual page </a></li> <li title="abort-0"><a href="ct_master.html#abort-0">abort/0</a></li> <li title="abort-1"><a href="ct_master.html#abort-1">abort/1</a></li> <li title="basic_html-1"><a href="ct_master.html#basic_html-1">basic_html/1</a></li> <li title="progress-0"><a href="ct_master.html#progress-0">progress/0</a></li> <li title="run-1"><a href="ct_master.html#run-1">run/1</a></li> <li title="run-3"><a href="ct_master.html#run-3">run/3</a></li> <li title="run-4"><a href="ct_master.html#run-4">run/4</a></li> <li title="run_on_node-2"><a href="ct_master.html#run_on_node-2">run_on_node/2</a></li> <li title="run_on_node-3"><a href="ct_master.html#run_on_node-3">run_on_node/3</a></li> <li title="run_test-2"><a href="ct_master.html#run_test-2">run_test/2</a></li> </ul> </li> <li id="no" title="ct_cover " expanded="false">ct_cover<ul> <li><a href="ct_cover.html"> Top of manual page </a></li> <li title="add_nodes-1"><a href="ct_cover.html#add_nodes-1">add_nodes/1</a></li> <li title="remove_nodes-1"><a href="ct_cover.html#remove_nodes-1">remove_nodes/1</a></li> </ul> </li> <li id="no" title="ct_ftp " expanded="false">ct_ftp<ul> <li><a href="ct_ftp.html"> Top of manual page </a></li> <li title="cd-2"><a href="ct_ftp.html#cd-2">cd/2</a></li> <li title="close-1"><a href="ct_ftp.html#close-1">close/1</a></li> <li title="delete-2"><a href="ct_ftp.html#delete-2">delete/2</a></li> <li title="get-3"><a href="ct_ftp.html#get-3">get/3</a></li> <li title="ls-2"><a href="ct_ftp.html#ls-2">ls/2</a></li> <li title="open-1"><a href="ct_ftp.html#open-1">open/1</a></li> <li title="put-3"><a href="ct_ftp.html#put-3">put/3</a></li> <li title="recv-2"><a href="ct_ftp.html#recv-2">recv/2</a></li> <li title="recv-3"><a href="ct_ftp.html#recv-3">recv/3</a></li> <li title="send-2"><a href="ct_ftp.html#send-2">send/2</a></li> <li title="send-3"><a href="ct_ftp.html#send-3">send/3</a></li> <li title="type-2"><a href="ct_ftp.html#type-2">type/2</a></li> </ul> </li> <li id="no" title="ct_ssh " expanded="false">ct_ssh<ul> <li><a href="ct_ssh.html"> Top of manual page </a></li> <li title="apread-4"><a href="ct_ssh.html#apread-4">apread/4</a></li> <li title="apread-5"><a href="ct_ssh.html#apread-5">apread/5</a></li> <li title="apwrite-4"><a href="ct_ssh.html#apwrite-4">apwrite/4</a></li> <li title="apwrite-5"><a href="ct_ssh.html#apwrite-5">apwrite/5</a></li> <li title="aread-3"><a href="ct_ssh.html#aread-3">aread/3</a></li> <li title="aread-4"><a href="ct_ssh.html#aread-4">aread/4</a></li> <li title="awrite-3"><a href="ct_ssh.html#awrite-3">awrite/3</a></li> <li title="awrite-4"><a href="ct_ssh.html#awrite-4">awrite/4</a></li> <li title="close-2"><a href="ct_ssh.html#close-2">close/2</a></li> <li title="close-3"><a href="ct_ssh.html#close-3">close/3</a></li> <li title="connect-1"><a href="ct_ssh.html#connect-1">connect/1</a></li> <li title="connect-2"><a href="ct_ssh.html#connect-2">connect/2</a></li> <li title="connect-3"><a href="ct_ssh.html#connect-3">connect/3</a></li> <li title="del_dir-2"><a href="ct_ssh.html#del_dir-2">del_dir/2</a></li> <li title="del_dir-3"><a href="ct_ssh.html#del_dir-3">del_dir/3</a></li> <li title="delete-2"><a href="ct_ssh.html#delete-2">delete/2</a></li> <li title="delete-3"><a href="ct_ssh.html#delete-3">delete/3</a></li> <li title="disconnect-1"><a href="ct_ssh.html#disconnect-1">disconnect/1</a></li> <li title="exec-2"><a href="ct_ssh.html#exec-2">exec/2</a></li> <li title="exec-3"><a href="ct_ssh.html#exec-3">exec/3</a></li> <li title="exec-4"><a href="ct_ssh.html#exec-4">exec/4</a></li> <li title="get_file_info-2"><a href="ct_ssh.html#get_file_info-2">get_file_info/2</a></li> <li title="get_file_info-3"><a href="ct_ssh.html#get_file_info-3">get_file_info/3</a></li> <li title="list_dir-2"><a href="ct_ssh.html#list_dir-2">list_dir/2</a></li> <li title="list_dir-3"><a href="ct_ssh.html#list_dir-3">list_dir/3</a></li> <li title="make_dir-2"><a href="ct_ssh.html#make_dir-2">make_dir/2</a></li> <li title="make_dir-3"><a href="ct_ssh.html#make_dir-3">make_dir/3</a></li> <li title="make_symlink-3"><a href="ct_ssh.html#make_symlink-3">make_symlink/3</a></li> <li title="make_symlink-4"><a href="ct_ssh.html#make_symlink-4">make_symlink/4</a></li> <li title="open-3"><a href="ct_ssh.html#open-3">open/3</a></li> <li title="open-4"><a href="ct_ssh.html#open-4">open/4</a></li> <li title="opendir-2"><a href="ct_ssh.html#opendir-2">opendir/2</a></li> <li title="opendir-3"><a href="ct_ssh.html#opendir-3">opendir/3</a></li> <li title="position-3"><a href="ct_ssh.html#position-3">position/3</a></li> <li title="position-4"><a href="ct_ssh.html#position-4">position/4</a></li> <li title="pread-4"><a href="ct_ssh.html#pread-4">pread/4</a></li> <li title="pread-5"><a href="ct_ssh.html#pread-5">pread/5</a></li> <li title="pwrite-4"><a href="ct_ssh.html#pwrite-4">pwrite/4</a></li> <li title="pwrite-5"><a href="ct_ssh.html#pwrite-5">pwrite/5</a></li> <li title="read-3"><a href="ct_ssh.html#read-3">read/3</a></li> <li title="read-4"><a href="ct_ssh.html#read-4">read/4</a></li> <li title="read_file-2"><a href="ct_ssh.html#read_file-2">read_file/2</a></li> <li title="read_file-3"><a href="ct_ssh.html#read_file-3">read_file/3</a></li> <li title="read_file_info-2"><a href="ct_ssh.html#read_file_info-2">read_file_info/2</a></li> <li title="read_file_info-3"><a href="ct_ssh.html#read_file_info-3">read_file_info/3</a></li> <li title="read_link-2"><a href="ct_ssh.html#read_link-2">read_link/2</a></li> <li title="read_link-3"><a href="ct_ssh.html#read_link-3">read_link/3</a></li> <li title="read_link_info-2"><a href="ct_ssh.html#read_link_info-2">read_link_info/2</a></li> <li title="read_link_info-3"><a href="ct_ssh.html#read_link_info-3">read_link_info/3</a></li> <li title="receive_response-2"><a href="ct_ssh.html#receive_response-2">receive_response/2</a></li> <li title="receive_response-3"><a href="ct_ssh.html#receive_response-3">receive_response/3</a></li> <li title="receive_response-4"><a href="ct_ssh.html#receive_response-4">receive_response/4</a></li> <li title="rename-3"><a href="ct_ssh.html#rename-3">rename/3</a></li> <li title="rename-4"><a href="ct_ssh.html#rename-4">rename/4</a></li> <li title="send-3"><a href="ct_ssh.html#send-3">send/3</a></li> <li title="send-4"><a href="ct_ssh.html#send-4">send/4</a></li> <li title="send-5"><a href="ct_ssh.html#send-5">send/5</a></li> <li title="send_and_receive-3"><a href="ct_ssh.html#send_and_receive-3">send_and_receive/3</a></li> <li title="send_and_receive-4"><a href="ct_ssh.html#send_and_receive-4">send_and_receive/4</a></li> <li title="send_and_receive-5"><a href="ct_ssh.html#send_and_receive-5">send_and_receive/5</a></li> <li title="send_and_receive-6"><a href="ct_ssh.html#send_and_receive-6">send_and_receive/6</a></li> <li title="session_close-2"><a href="ct_ssh.html#session_close-2">session_close/2</a></li> <li title="session_open-1"><a href="ct_ssh.html#session_open-1">session_open/1</a></li> <li title="session_open-2"><a href="ct_ssh.html#session_open-2">session_open/2</a></li> <li title="sftp_connect-1"><a href="ct_ssh.html#sftp_connect-1">sftp_connect/1</a></li> <li title="subsystem-3"><a href="ct_ssh.html#subsystem-3">subsystem/3</a></li> <li title="subsystem-4"><a href="ct_ssh.html#subsystem-4">subsystem/4</a></li> <li title="write-3"><a href="ct_ssh.html#write-3">write/3</a></li> <li title="write-4"><a href="ct_ssh.html#write-4">write/4</a></li> <li title="write_file-3"><a href="ct_ssh.html#write_file-3">write_file/3</a></li> <li title="write_file-4"><a href="ct_ssh.html#write_file-4">write_file/4</a></li> <li title="write_file_info-3"><a href="ct_ssh.html#write_file_info-3">write_file_info/3</a></li> <li title="write_file_info-4"><a href="ct_ssh.html#write_file_info-4">write_file_info/4</a></li> </ul> </li> <li id="no" title="ct_netconfc " expanded="false">ct_netconfc<ul> <li><a href="ct_netconfc.html"> Top of manual page </a></li> <li title="action-2"><a href="ct_netconfc.html#action-2">action/2</a></li> <li title="action-3"><a href="ct_netconfc.html#action-3">action/3</a></li> <li title="close_session-1"><a href="ct_netconfc.html#close_session-1">close_session/1</a></li> <li title="close_session-2"><a href="ct_netconfc.html#close_session-2">close_session/2</a></li> <li title="copy_config-3"><a href="ct_netconfc.html#copy_config-3">copy_config/3</a></li> <li title="copy_config-4"><a href="ct_netconfc.html#copy_config-4">copy_config/4</a></li> <li title="create_subscription-1"><a href="ct_netconfc.html#create_subscription-1">create_subscription/1</a></li> <li title="create_subscription-2"><a href="ct_netconfc.html#create_subscription-2">create_subscription/2</a></li> <li title="create_subscription-3"><a href="ct_netconfc.html#create_subscription-3">create_subscription/3</a></li> <li title="create_subscription-4"><a href="ct_netconfc.html#create_subscription-4">create_subscription/4</a></li> <li title="create_subscription-5"><a href="ct_netconfc.html#create_subscription-5">create_subscription/5</a></li> <li title="create_subscription-6"><a href="ct_netconfc.html#create_subscription-6">create_subscription/6</a></li> <li title="delete_config-2"><a href="ct_netconfc.html#delete_config-2">delete_config/2</a></li> <li title="delete_config-3"><a href="ct_netconfc.html#delete_config-3">delete_config/3</a></li> <li title="edit_config-3"><a href="ct_netconfc.html#edit_config-3">edit_config/3</a></li> <li title="edit_config-4"><a href="ct_netconfc.html#edit_config-4">edit_config/4</a></li> <li title="format_data-2"><a href="ct_netconfc.html#format_data-2">format_data/2</a></li> <li title="get-2"><a href="ct_netconfc.html#get-2">get/2</a></li> <li title="get-3"><a href="ct_netconfc.html#get-3">get/3</a></li> <li title="get_capabilities-1"><a href="ct_netconfc.html#get_capabilities-1">get_capabilities/1</a></li> <li title="get_capabilities-2"><a href="ct_netconfc.html#get_capabilities-2">get_capabilities/2</a></li> <li title="get_config-3"><a href="ct_netconfc.html#get_config-3">get_config/3</a></li> <li title="get_config-4"><a href="ct_netconfc.html#get_config-4">get_config/4</a></li> <li title="get_event_streams-2"><a href="ct_netconfc.html#get_event_streams-2">get_event_streams/2</a></li> <li title="get_event_streams-3"><a href="ct_netconfc.html#get_event_streams-3">get_event_streams/3</a></li> <li title="get_session_id-1"><a href="ct_netconfc.html#get_session_id-1">get_session_id/1</a></li> <li title="get_session_id-2"><a href="ct_netconfc.html#get_session_id-2">get_session_id/2</a></li> <li title="handle_msg-2"><a href="ct_netconfc.html#handle_msg-2">handle_msg/2</a></li> <li title="hello-1"><a href="ct_netconfc.html#hello-1">hello/1</a></li> <li title="hello-2"><a href="ct_netconfc.html#hello-2">hello/2</a></li> <li title="kill_session-2"><a href="ct_netconfc.html#kill_session-2">kill_session/2</a></li> <li title="kill_session-3"><a href="ct_netconfc.html#kill_session-3">kill_session/3</a></li> <li title="lock-2"><a href="ct_netconfc.html#lock-2">lock/2</a></li> <li title="lock-3"><a href="ct_netconfc.html#lock-3">lock/3</a></li> <li title="only_open-1"><a href="ct_netconfc.html#only_open-1">only_open/1</a></li> <li title="only_open-2"><a href="ct_netconfc.html#only_open-2">only_open/2</a></li> <li title="open-1"><a href="ct_netconfc.html#open-1">open/1</a></li> <li title="open-2"><a href="ct_netconfc.html#open-2">open/2</a></li> <li title="unlock-2"><a href="ct_netconfc.html#unlock-2">unlock/2</a></li> <li title="unlock-3"><a href="ct_netconfc.html#unlock-3">unlock/3</a></li> </ul> </li> <li id="no" title="ct_rpc " expanded="false">ct_rpc<ul> <li><a href="ct_rpc.html"> Top of manual page </a></li> <li title="app_node-2"><a href="ct_rpc.html#app_node-2">app_node/2</a></li> <li title="app_node-3"><a href="ct_rpc.html#app_node-3">app_node/3</a></li> <li title="app_node-4"><a href="ct_rpc.html#app_node-4">app_node/4</a></li> <li title="call-4"><a href="ct_rpc.html#call-4">call/4</a></li> <li title="call-5"><a href="ct_rpc.html#call-5">call/5</a></li> <li title="call-6"><a href="ct_rpc.html#call-6">call/6</a></li> <li title="cast-4"><a href="ct_rpc.html#cast-4">cast/4</a></li> <li title="cast-5"><a href="ct_rpc.html#cast-5">cast/5</a></li> </ul> </li> <li id="no" title="ct_snmp " expanded="false">ct_snmp<ul> <li><a href="ct_snmp.html"> Top of manual page </a></li> <li title="get_next_values-3"><a href="ct_snmp.html#get_next_values-3">get_next_values/3</a></li> <li title="get_values-3"><a href="ct_snmp.html#get_values-3">get_values/3</a></li> <li title="load_mibs-1"><a href="ct_snmp.html#load_mibs-1">load_mibs/1</a></li> <li title="register_agents-2"><a href="ct_snmp.html#register_agents-2">register_agents/2</a></li> <li title="register_users-2"><a href="ct_snmp.html#register_users-2">register_users/2</a></li> <li title="register_usm_users-2"><a href="ct_snmp.html#register_usm_users-2">register_usm_users/2</a></li> <li title="set_info-1"><a href="ct_snmp.html#set_info-1">set_info/1</a></li> <li title="set_values-4"><a href="ct_snmp.html#set_values-4">set_values/4</a></li> <li title="start-2"><a href="ct_snmp.html#start-2">start/2</a></li> <li title="start-3"><a href="ct_snmp.html#start-3">start/3</a></li> <li title="stop-1"><a href="ct_snmp.html#stop-1">stop/1</a></li> <li title="unregister_agents-1"><a href="ct_snmp.html#unregister_agents-1">unregister_agents/1</a></li> <li title="unregister_users-1"><a href="ct_snmp.html#unregister_users-1">unregister_users/1</a></li> <li title="update_usm_users-2"><a href="ct_snmp.html#update_usm_users-2">update_usm_users/2</a></li> </ul> </li> <li id="loadscrollpos" title="ct_telnet " expanded="true">ct_telnet<ul> <li><a href="ct_telnet.html"> Top of manual page </a></li> <li title="close-1"><a href="ct_telnet.html#close-1">close/1</a></li> <li title="cmd-2"><a href="ct_telnet.html#cmd-2">cmd/2</a></li> <li title="cmd-3"><a href="ct_telnet.html#cmd-3">cmd/3</a></li> <li title="cmdf-3"><a href="ct_telnet.html#cmdf-3">cmdf/3</a></li> <li title="cmdf-4"><a href="ct_telnet.html#cmdf-4">cmdf/4</a></li> <li title="cont_log-2"><a href="ct_telnet.html#cont_log-2">cont_log/2</a></li> <li title="end_log-0"><a href="ct_telnet.html#end_log-0">end_log/0</a></li> <li title="expect-2"><a href="ct_telnet.html#expect-2">expect/2</a></li> <li title="expect-3"><a href="ct_telnet.html#expect-3">expect/3</a></li> <li title="get_data-1"><a href="ct_telnet.html#get_data-1">get_data/1</a></li> <li title="open-1"><a href="ct_telnet.html#open-1">open/1</a></li> <li title="open-2"><a href="ct_telnet.html#open-2">open/2</a></li> <li title="open-3"><a href="ct_telnet.html#open-3">open/3</a></li> <li title="open-4"><a href="ct_telnet.html#open-4">open/4</a></li> <li title="send-2"><a href="ct_telnet.html#send-2">send/2</a></li> <li title="sendf-3"><a href="ct_telnet.html#sendf-3">sendf/3</a></li> </ul> </li> <li title="unix_telnet"><a href="unix_telnet.html">unix_telnet</a></li> <li id="no" title="ct_slave " expanded="false">ct_slave<ul> <li><a href="ct_slave.html"> Top of manual page </a></li> <li title="start-1"><a href="ct_slave.html#start-1">start/1</a></li> <li title="start-2"><a href="ct_slave.html#start-2">start/2</a></li> <li title="start-3"><a href="ct_slave.html#start-3">start/3</a></li> <li title="stop-1"><a href="ct_slave.html#stop-1">stop/1</a></li> <li title="stop-2"><a href="ct_slave.html#stop-2">stop/2</a></li> </ul> </li> <li id="no" title="ct_hooks " expanded="false">ct_hooks<ul> <li><a href="ct_hooks.html"> Top of manual page </a></li> <li title="Module:init-2"><a href="ct_hooks.html#Module:init-2">Module:init/2</a></li> <li title="Module:pre_init_per_suite-3"><a href="ct_hooks.html#Module:pre_init_per_suite-3">Module:pre_init_per_suite/3</a></li> <li title="Module:post_init_per_suite-4"><a href="ct_hooks.html#Module:post_init_per_suite-4">Module:post_init_per_suite/4</a></li> <li title="Module:pre_init_per_group-3"><a href="ct_hooks.html#Module:pre_init_per_group-3">Module:pre_init_per_group/3</a></li> <li title="Module:post_init_per_group-4"><a href="ct_hooks.html#Module:post_init_per_group-4">Module:post_init_per_group/4</a></li> <li title="Module:pre_init_per_testcase-3"><a href="ct_hooks.html#Module:pre_init_per_testcase-3">Module:pre_init_per_testcase/3</a></li> <li title="Module:post_end_per_testcase-4"><a href="ct_hooks.html#Module:post_end_per_testcase-4">Module:post_end_per_testcase/4</a></li> <li title="Module:pre_end_per_group-3"><a href="ct_hooks.html#Module:pre_end_per_group-3">Module:pre_end_per_group/3</a></li> <li title="Module:post_end_per_group-4"><a href="ct_hooks.html#Module:post_end_per_group-4">Module:post_end_per_group/4</a></li> <li title="Module:pre_end_per_suite-3"><a href="ct_hooks.html#Module:pre_end_per_suite-3">Module:pre_end_per_suite/3</a></li> <li title="Module:post_end_per_suite-4"><a href="ct_hooks.html#Module:post_end_per_suite-4">Module:post_end_per_suite/4</a></li> <li title="Module:on_tc_fail-3"><a href="ct_hooks.html#Module:on_tc_fail-3">Module:on_tc_fail/3</a></li> <li title="Module:on_tc_skip-3"><a href="ct_hooks.html#Module:on_tc_skip-3">Module:on_tc_skip/3</a></li> <li title="Module:terminate-1"><a href="ct_hooks.html#Module:terminate-1">Module:terminate/1</a></li> <li title="Module:id-1"><a href="ct_hooks.html#Module:id-1">Module:id/1</a></li> </ul> </li> </ul> </div></div> <div id="content"> <div class="innertube"> <!-- refpage --><center><h1>ct_telnet</h1></center> <h3>MODULE</h3> <div class="REFBODY">ct_telnet</div> <h3>MODULE SUMMARY</h3> <div class="REFBODY">Common Test specific layer on top of telnet client ct_telnet_client.erl.</div> <h3>DESCRIPTION</h3> <div class="REFBODY"><p> <p>Common Test specific layer on top of telnet client ct_telnet_client.erl</p> <p>Use this module to set up telnet connections, send commands and perform string matching on the result. See the <span class="code">unix_telnet</span> manual page for information about how to use ct_telnet, and configure connections, specifically for unix hosts.</p> <p>The following default values are defined in ct_telnet:</p> <div class="example"><pre> Connection timeout = 10 sec (time to wait for connection) Command timeout = 10 sec (time to wait for a command to return) Max no of reconnection attempts = 3 Reconnection interval = 5 sek (time to wait in between reconnection attempts) Keep alive = true (will send NOP to the server every 10 sec if connection is idle)</pre></div> <p>These parameters can be altered by the user with the following configuration term:</p> <div class="example"><pre> {telnet_settings, [{connect_timeout,Millisec}, {command_timeout,Millisec}, {reconnection_attempts,N}, {reconnection_interval,Millisec}, {keep_alive,Bool}]}.</pre></div> <p><span class="code">Millisec = integer(), N = integer()</span></p> <p>Enter the <span class="code">telnet_settings</span> term in a configuration file included in the test and ct_telnet will retrieve the information automatically. Note that <span class="code">keep_alive</span> may be specified per connection if required. See <span class="code">unix_telnet</span> for details.</p></p></div> <h3><a name="id101433">DATA TYPES</a></h3> <div class="REFBODY"> <a name="types"></a> <dl> <dt><strong><span class="code">connection() = handle() | {target_name() (see module ct), connection_type()} | target_name() (see module ct)</span></strong></dt> <dd> <a name="type-connection"></a> </dd> <dt><strong><span class="code">connection_type() = telnet | ts1 | ts2</span></strong></dt> <dd> <a name="type-connection_type"></a> </dd> <dt><strong><span class="code">handle() = handle() (see module ct_gen_conn)</span></strong></dt> <dd> <a name="type-handle"></a> <p>Handle for a specific telnet connection.</p> </dd> <dt><strong><span class="code">prompt_regexp() = string()</span></strong></dt> <dd> <a name="type-prompt_regexp"></a> <p>A regular expression which matches all possible prompts for a specific type of target. The regexp must not have any groups i.e. when matching, re:run/3 shall return a list with one single element. </p> </dd> </dl> </div> <h3>EXPORTS</h3> <p><a name="close-1"><span class="bold_code">close(Connection) -> ok | {error, Reason}</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">Connection = connection() (see module ct_telnet)</span><br> </div> </div> <div class="REFBODY"><p><a name="close-1"></a> <p>Close the telnet connection and stop the process managing it.</p> <p>A connection may be associated with a target name and/or a handle. If <span class="code">Connection</span> has no associated target name, it may only be closed with the handle value (see the <span class="code">open/4</span> function).</p> </p></div> <p><a name="cmd-2"><span class="bold_code">cmd(Connection, Cmd) -> {ok, Data} | {error, Reason}</span></a><br></p> <div class="REFBODY"><p><a name="cmd-2"></a> <p>Equivalent to <span class="bold_code"><a href="#cmd-3">cmd(Connection, Cmd, DefaultTimeout)</a></span>.</p> </p></div> <p><a name="cmd-3"><span class="bold_code">cmd(Connection, Cmd, Timeout) -> {ok, Data} | {error, Reason}</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">Connection = connection() (see module ct_telnet)</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Cmd = string()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Timeout = integer()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Data = [string()]</span><br> </div> </div> <div class="REFBODY"><p><a name="cmd-3"></a> <p>Send a command via telnet and wait for prompt.</p> </p></div> <p><a name="cmdf-3"><span class="bold_code">cmdf(Connection, CmdFormat, Args) -> {ok, Data} | {error, Reason}</span></a><br></p> <div class="REFBODY"><p><a name="cmdf-3"></a> <p>Equivalent to <span class="bold_code"><a href="#cmdf-4">cmdf(Connection, CmdFormat, Args, DefaultTimeout)</a></span>.</p> </p></div> <p><a name="cmdf-4"><span class="bold_code">cmdf(Connection, CmdFormat, Args, Timeout) -> {ok, Data} | {error, Reason}</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">Connection = connection() (see module ct_telnet)</span><br> </div> <div class="REFTYPES"> <span class="bold_code">CmdFormat = string()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Args = list()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Timeout = integer()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Data = [string()]</span><br> </div> </div> <div class="REFBODY"><p><a name="cmdf-4"></a> <p>Send a telnet command and wait for prompt (uses a format string and list of arguments to build the command).</p> </p></div> <p><a name="cont_log-2"><span class="bold_code">cont_log(Str, Args) -> term() </span></a><br></p> <div class="REFBODY"><p><a name="cont_log-2"></a> </p></div> <p><a name="end_log-0"><span class="bold_code">end_log() -> term() </span></a><br></p> <div class="REFBODY"><p><a name="end_log-0"></a> </p></div> <p><a name="expect-2"><span class="bold_code">expect(Connection, Patterns) -> term()</span></a><br></p> <div class="REFBODY"><p><a name="expect-2"></a> <p>Equivalent to <span class="bold_code"><a href="#expect-3">expect(Connections, Patterns, [])</a></span>.</p> </p></div> <p><a name="expect-3"><span class="bold_code">expect(Connection, Patterns, Opts) -> {ok, Match} | {ok, MatchList, HaltReason} | {error, Reason}</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">Connection = connection() (see module ct_telnet)</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Patterns = Pattern | [Pattern]</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Pattern = string() | {Tag, string()} | prompt | {prompt, Prompt}</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Prompt = string()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Tag = term()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Opts = [Opt]</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Opt = {timeout, Timeout} | repeat | {repeat, N} | sequence | {halt, HaltPatterns} | ignore_prompt</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Timeout = integer()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">N = integer()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">HaltPatterns = Patterns</span><br> </div> <div class="REFTYPES"> <span class="bold_code">MatchList = [Match]</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Match = RxMatch | {Tag, RxMatch} | {prompt, Prompt}</span><br> </div> <div class="REFTYPES"> <span class="bold_code">RxMatch = [string()]</span><br> </div> <div class="REFTYPES"> <span class="bold_code">HaltReason = done | Match</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Reason = timeout | {prompt, Prompt}</span><br> </div> </div> <div class="REFBODY"><p><a name="expect-3"></a> <p>Get data from telnet and wait for the expected pattern.</p> <p><span class="code">Pattern</span> can be a POSIX regular expression. If more than one pattern is given, the function returns when the first match is found.</p> <p><span class="code">RxMatch</span> is a list of matched strings. It looks like this: <span class="code">[FullMatch, SubMatch1, SubMatch2, ...]</span> where <span class="code">FullMatch</span> is the string matched by the whole regular expression and <span class="code">SubMatchN</span> is the string that matched subexpression no <span class="code">N</span>. Subexpressions are denoted with '(' ')' in the regular expression</p> <p>If a <span class="code">Tag</span> is given, the returned <span class="code">Match</span> will also include the matched <span class="code">Tag</span>. Else, only <span class="code">RxMatch</span> is returned.</p> <p>The function will always return when a prompt is found, unless the <span class="code">ignore_prompt</span> options is used.</p> <p>The <span class="code">timeout</span> option indicates that the function shall return if the telnet client is idle (i.e. if no data is received) for more than <span class="code">Timeout</span> milliseconds. Default timeout is 10 seconds.</p> <p>The <span class="code">repeat</span> option indicates that the pattern(s) shall be matched multiple times. If <span class="code">N</span> is given, the pattern(s) will be matched <span class="code">N</span> times, and the function will return with <span class="code">HaltReason = done</span>.</p> <p>The <span class="code">sequence</span> option indicates that all patterns shall be matched in a sequence. A match will not be concluded untill all patterns are matched.</p> <p>Both <span class="code">repeat</span> and <span class="code">sequence</span> can be interrupted by one or more <span class="code">HaltPatterns</span>. When <span class="code">sequence</span> or <span class="code">repeat</span> is used, there will always be a <span class="code">MatchList</span> returned, i.e. a list of <span class="code">Match</span> instead of only one <span class="code">Match</span>. There will also be a <span class="code">HaltReason</span> returned.</p> <p><strong>Examples:</strong><br> <span class="code">expect(Connection,[{abc,"ABC"},{xyz,"XYZ"}],</span> <span class="code">[sequence,{halt,[{nnn,"NNN"}]}]).</span><br> will try to match "ABC" first and then "XYZ", but if "NNN" appears the function will return <span class="code">{error,{nnn,["NNN"]}}</span>. If both "ABC" and "XYZ" are matched, the function will return <span class="code">{ok,[AbcMatch,XyzMatch]}</span>.</p> <p><span class="code">expect(Connection,[{abc,"ABC"},{xyz,"XYZ"}],</span> <span class="code">[{repeat,2},{halt,[{nnn,"NNN"}]}]).</span><br> will try to match "ABC" or "XYZ" twice. If "NNN" appears the function will return with <span class="code">HaltReason = {nnn,["NNN"]}</span>.</p> <p>The <span class="code">repeat</span> and <span class="code">sequence</span> options can be combined in order to match a sequence multiple times.</p> </p></div> <p><a name="get_data-1"><span class="bold_code">get_data(Connection) -> {ok, Data} | {error, Reason}</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">Connection = connection() (see module ct_telnet)</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Data = [string()]</span><br> </div> </div> <div class="REFBODY"><p><a name="get_data-1"></a> <p>Get all data which has been received by the telnet client since last command was sent.</p> </p></div> <p><a name="open-1"><span class="bold_code">open(Name) -> {ok, Handle} | {error, Reason}</span></a><br></p> <div class="REFBODY"><p><a name="open-1"></a> <p>Equivalent to <span class="bold_code"><a href="#open-2">open(Name, telnet)</a></span>.</p> </p></div> <p><a name="open-2"><span class="bold_code">open(Name, ConnType) -> {ok, Handle} | {error, Reason}</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">Name = target_name()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">ConnType = connection_type() (see module ct_telnet)</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Handle = handle() (see module ct_telnet)</span><br> </div> </div> <div class="REFBODY"><p><a name="open-2"></a> <p>Open a telnet connection to the specified target host.</p> </p></div> <p><a name="open-3"><span class="bold_code">open(KeyOrName, ConnType, TargetMod) -> {ok, Handle} | {error, Reason}</span></a><br></p> <div class="REFBODY"><p><a name="open-3"></a> <p>Equivalent to <span class="bold_code"><a href="#open-4">open(KeyOrName, ConnType, TargetMod, [])</a></span>.</p> </p></div> <p><a name="open-4"><span class="bold_code">open(KeyOrName, ConnType, TargetMod, Extra) -> {ok, Handle} | {error, Reason}</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">KeyOrName = Key | Name</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Key = atom()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Name = target_name() (see module ct)</span><br> </div> <div class="REFTYPES"> <span class="bold_code">ConnType = connection_type()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">TargetMod = atom()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Extra = term()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Handle = handle()</span><br> </div> </div> <div class="REFBODY"><p><a name="open-4"></a> <p>Open a telnet connection to the specified target host.</p> <p>The target data must exist in a configuration file. The connection may be associated with either <span class="code">Name</span> and/or the returned <span class="code">Handle</span>. To allocate a name for the target, use <span class="code">ct:require/2</span> in a test case, or use a <span class="code">require</span> statement in the suite info function (<span class="code">suite/0</span>), or in a test case info function. If you want the connection to be associated with <span class="code">Handle</span> only (in case you need to open multiple connections to a host for example), simply use <span class="code">Key</span>, the configuration variable name, to specify the target. Note that a connection that has no associated target name can only be closed with the handle value.</p> <p><span class="code">TargetMod</span> is a module which exports the functions <span class="code">connect(Ip,Port,KeepAlive,Extra)</span> and <span class="code">get_prompt_regexp()</span> for the given <span class="code">TargetType</span> (e.g. <span class="code">unix_telnet</span>).</p> <p><strong>See also:</strong> <span class="bold_code"><a href="ct.html#require-2">ct:require/2</a></span>.</p> </p></div> <p><a name="send-2"><span class="bold_code">send(Connection, Cmd) -> ok | {error, Reason}</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">Connection = connection() (see module ct_telnet)</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Cmd = string()</span><br> </div> </div> <div class="REFBODY"><p><a name="send-2"></a> <p>Send a telnet command and return immediately.</p> <p>The resulting output from the command can be read with <span class="code">get_data/1</span> or <span class="code">expect/2/3</span>.</p> </p></div> <p><a name="sendf-3"><span class="bold_code">sendf(Connection, CmdFormat, Args) -> ok | {error, Reason}</span></a><br></p> <div class="REFBODY"> <p>Types:</p> <div class="REFTYPES"> <span class="bold_code">Connection = connection() (see module ct_telnet)</span><br> </div> <div class="REFTYPES"> <span class="bold_code">CmdFormat = string()</span><br> </div> <div class="REFTYPES"> <span class="bold_code">Args = list()</span><br> </div> </div> <div class="REFBODY"><p><a name="sendf-3"></a> <p>Send a telnet command and return immediately (uses a format string and a list of arguments to build the command).</p> </p></div> <h3><a name="id102292">See also</a></h3> <div class="REFBODY"><p><span class="bold_code"><a href="unix_telnet.html">unix_telnet</a></span></p></div> </div> <div class="footer"> <hr> <p>Copyright © 2003-2012 Ericsson AB. All Rights Reserved.</p> </div> </div> </div></body> </html>