///////////////////////////////////////////////////////////////////////////////
//                                                                           //
// Copyright (c) 2000-2019 Ericsson Telecom AB                               //
//                                                                           //
// All rights reserved. This program and the accompanying materials          //
// are made available under the terms of the Eclipse Public License v2.0     //
// which accompanies this distribution, and is available at                  //
// https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html                                 //
///////////////////////////////////////////////////////////////////////////////
[DEFINE]

cli_ctrl_portnum:="17107"
display_ctrl_portnum:="17108"
prompt := "TTCN> "

[MODULE_PARAMETERS]
tsp_EPTF_CLI_Demo_prompt:=$prompt

[LOGGING]
FileMask :=  TTCN_ERROR | TTCN_ACTION | TTCN_TESTCASE | TTCN_STATISTICS | TTCN_WARNING | LOG_ALL | TTCN_DEBUG #| DEBUG
ConsoleMask := TTCN_ERROR | TTCN_ACTION | TTCN_TESTCASE | TTCN_STATISTICS | TTCN_WARNING
LogFile := "logs/%e.%h-%r.log"
LogEventTypes := Yes
SourceInfoFormat := Stack
LogEntityName := Yes

[INCLUDE]

[EXTERNAL_COMMANDS]

[EXECUTE]
//EPTF_CLI_Demo.tc_EPTF_CLI_Demo_displayManual
EPTF_CLI_Demo.control

[COMPONENTS]

[MAIN_CONTROLLER]
TCPPort := 9876
KillTimer := 30.0

[TESTPORT_PARAMETERS]
# EPTF CLL CLI TELNET interface
#*.v_EPTF_CLI_TELNET_PCO.CTRL_HOSTNAME:="localhost"
*.EPTF_CLI_TELNET_PCO.CTRL_PORTNUM := "17107"
*.EPTF_CLI_TELNET_PCO.CTRL_LOGIN_SKIPPED := "yes"
*.EPTF_CLI_TELNET_PCO.CTRL_USERNAME_CLIENT := "ttcn"
*.EPTF_CLI_TELNET_PCO.CTRL_PASSWORD_CLIENT := "ttcn"
*.EPTF_CLI_TELNET_PCO.CTRL_SERVER_PROMPT := "TTCN> "
*.EPTF_CLI_TELNET_PCO.CTRL_MODE := "server"
*.EPTF_CLI_displayTELNET_PCO.CTRL_PORTNUM := $display_ctrl_portnum
*.EPTF_CLI_displayTELNET_PCO.CTRL_LOGIN_SKIPPED := "yes"
*.EPTF_CLI_displayTELNET_PCO.CTRL_USERNAME_CLIENT := "ttcn"
*.EPTF_CLI_displayTELNET_PCO.CTRL_PASSWORD_CLIENT := "ttcn"
*.EPTF_CLI_displayTELNET_PCO.CTRL_SERVER_PROMPT := $prompt
*.EPTF_CLI_displayTELNET_PCO.CTRL_MODE := "server"


#### Test parameters ###

*.EPTF_CLI_Demo_terminal_PCO.CTRL_HOSTNAME :="localhost"
*.EPTF_CLI_Demo_terminal_PCO.CTRL_PORTNUM := "17107"
*.EPTF_CLI_Demo_terminal_PCO.CTRL_LOGIN_SKIPPED := "yes"
*.EPTF_CLI_Demo_terminal_PCO.CTRL_USERNAME_CLIENT := "ttcn"
*.EPTF_CLI_Demo_terminal_PCO.CTRL_PASSWORD_CLIENT := "ttcn"
#*.EPTF_CLI_Demo_terminal_PCO.CTRL_SERVER_PROMPT := "TTCN> "
*.EPTF_CLI_Demo_terminal_PCO.PROMPT1 := $prompt
*.EPTF_CLI_Demo_terminal_PCO.CTRL_MODE := "client"

*.EPTF_CLI_Demo_terminal_PCO.CTRL_DETECT_SERVER_DISCONNECTED := "yes"

*.EPTF_CLI_Demo_display_PCO.CTRL_HOSTNAME := "localhost"
*.EPTF_CLI_Demo_display_PCO.CTRL_PORTNUM := $display_ctrl_portnum
*.EPTF_CLI_Demo_display_PCO.CTRL_LOGIN_SKIPPED := "yes"
*.EPTF_CLI_Demo_display_PCO.CTRL_USERNAME_CLIENT := "ttcn"
*.EPTF_CLI_Demo_display_PCO.CTRL_PASSWORD_CLIENT := "ttcn"
#*.EPTF_CLI_Demo_display_PCO.CTRL_SERVER_PROMPT := "TTCN> "
*.EPTF_CLI_Demo_display_PCO.CTRL_MODE := "client"
*.EPTF_CLI_Demo_display_PCO.PROMPT1:= $prompt
*.EPTF_CLI_Demo_display_PCO.CTRL_DETECT_SERVER_DISCONNECTED := "yes"

