///////////////////////////////////////////////////////////////////////////////
//                                                                           //
// 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                                 //
//                                                                           //
///////////////////////////////////////////////////////////////////////////////
[MODULE_PARAMETERS]

#ModuleName.SampleParameter := SampleValue
[TESTPORT_PARAMETERS]
*.EPTF_CLI_TELNET_PCO.CTRL_PORTNUM := "3457"
*.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 := "3458"
*.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 := "TTCN> "
*.EPTF_CLI_displayTELNET_PCO.CTRL_MODE := "server"


#ComponentID.PortName.ParameterName := "ParameterValue"
[EXTERNAL_COMMANDS]

[LOGGING]
LogFile := "%e.%h-%r.log"
ConsoleMask := TESTCASE|EXECUTOR| TTCN_ERROR | TTCN_WARNING | TTCN_STATISTICS | TTCN_VERDICTOP | TTCN_ACTION
#FileMask :=LOG_ALL|WARNING|VERDICTOP|USER|TIMEROP|TESTCASE|STATISTICS|PORTEVENT|PARALLEL|FUNCTION|EXECUTOR|ERROR|DEFAULTOP|ACTION
FileMask := LOG_ALL| TTCN_DEBUG| TTCN_ERROR | TTCN_WARNING | TTCN_TESTCASE | TTCN_STATISTICS | USER |PORTEVENT | TIMEROP | TTCN_ACTION
LogEventTypes := Yes
SourceInfoFormat := Stack
TimeStampFormat := DateTime
MatchingHints := Detailed
LogEntityName := Yes

[COMPONENTS]

#ComponentName := Group
[MAIN_CONTROLLER]

#NumHCs := 1
[EXECUTE]
EPTF_CLL_Datasource_Demo.tc_EPTF_CLL_DataSource_CLI_Demo
