.******************************************************************************
.* Copyright (c) 2000-2021 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
.*
.* Contributors:
.*   Janos Zoltan Szabo – initial implementation
.*   Jeno Attila Balasko - author
.*
.******************************************************************************/
:text.
:lang eng.
.*
.* EDML webpage:       http://cpi.ericsson.se/dwaxe/
.* EDML2PDF converter: http://dwaxe.ericsson.se/x2pdf
.* EDML user guide:    http://www.lmc.ericsson.se/~lmcmarg/isit/edml_ug.html
.*
.* Document header information
:docname.Test Description
:docno.xx/152 91-CRL 113 200 Uen
:rev.A
:date.2015-04-27

:prep.ETH/RZX Jeno Balasko (ethbaat)
:appr.ETH/RZX (Roland Gecse)
:checked.EKRISZA

:title.Test description of the TTCN-3 Semantic Analyzer: IPv6
:contents level=2.
.*---------------------------------------------------------------------*
:h1.Introduction
.*---------------------------------------------------------------------*
.*---------------------------------------------------------------------*
:h2.Revision history
.*---------------------------------------------------------------------*
:xmp tab=2.
REV   DATE         PREPARED   CHANGE
__________________________________________________
PA1   2011-11-16   ETHBAAT    New document for TITAN R8I
:exmp.
.*---------------------------------------------------------------------*
:h2.Purpose
.*---------------------------------------------------------------------*
The purpose of this Test Description is to define and describe the function
test activity for the IPv6 functionality of the TTCN-3 executor including
the relevant configuration options and the configuration file parser, the
component create argument setting.
:nl.SA-1/x: Unknown object.
:p.The specification of the test cases can be found in this document.
.*---------------------------------------------------------------------*
:h1.Test environment
.*---------------------------------------------------------------------*
.*---------------------------------------------------------------------*
:h2.Hardware
.*---------------------------------------------------------------------*
No specific hardware requirement.
.*---------------------------------------------------------------------*
:h2.Software
.*---------------------------------------------------------------------*
Tests shall be carried out on the following platforms:
:list.
:li D='1.'.Solaris 8 (Sun OS 5.8) (gcc 3.0.4)
:li D='2.'.SUSE Linux Enterprise server 8 (2.4.19-4GB) (gcc 3.2)
:li D='3.'.CYGWIN_NT-5.0 (Cygwin DLL: 1.5.12) on Windows 2000 (gcc 3.3.3)
:elist.
.*---------------------------------------------------------------------*
:h2.Configuration
.*---------------------------------------------------------------------*
The test environment had been setup in CVS. The tester program is stored in:
:nl.TTCNv3/function_test/Tools/SAtester.pl
:nl.Test cases are stored with extension .script in the directory:
:nl.TTCNv3/function_test/Semantic_Analyser/
.*---------------------------------------------------------------------*
:h2.Installation
.*---------------------------------------------------------------------*
Install proper TITAN binaries on the used platforms and make sure that
your environment settings are correct:
:list.
:li D='1.'.TTCN3_DIR is set
:li D='2.'.$TTCN3_DIR/bin is added to the PATH variable
:li D='3.'.$TTCN3_DIR/lib is added to the LD_LIBRARY_PATH variable
:li D='4.'.Perl 5.6.0 or higher is available on the platform
:li D='5.'.Create a symlink to your Perl binary into the directory where the
test cases are stored:
:nl.ln -s <your Perl> perl
:elist.
.*---------------------------------------------------------------------*
:h2.Test Tools
.*---------------------------------------------------------------------*
A tester program had been written in Perl especially for the Semantic Analyser
tests. For the list of command line parameters, type 'SAtester.pl -help', for the
complete documentation, type 'SAtester.pl -doc'.
:p.Test cases are specified in the Test Description documents in EDML format.
The tester program parses these files and generates the TTCN-3/ASN.1 modules, then
calls the compiler to compile them. The result printout is then matched against
different patterns to be able to set the verdict. Test cases contain not only
the source modules, but the patterns as well.
:p.The tester program allows one-by-one execution of test cases and batched
execution as well.
:p.NOTE: the tester program requires Perl 5.6.0 or higher.
.*---------------------------------------------------------------------*
:h2.Test scope
.*---------------------------------------------------------------------*
Ref [1]: SA-1/x: Unknown object
:nl.Explanation: all unknown objects shall be detected by SA.
.*---------------------------------------------------------------------*
:h2.Test strategy
.*---------------------------------------------------------------------*
Test cases are based on TTCN-3 BNF according to the followings:
:list.
:li D='1.'.For each 'basic' definition a complete coverage is done (e.g. for
expressions, assignments, etc.). 'Basic' means that the definition is
used in several places.
:li D='2.'.For each definition a complete coverage is done, except for basic
definitions, in which case only 1-2 examples are covered, not the
whole basic definition. This is to avoid testing all possible subcases
for all possible places it may appear.
:nl.NOTE: a complete coverage means that all occurances are tested where
the specific definition may occur. This is however not complete. Only
one occurance is tested for each construct.
:li D='3.'.Test case names are contsructed following the path in the BNF in TTCN-3
and following the possible notations/subtyping in ASN.1.
:elist.
.*---------------------------------------------------------------------*
:h2.Status
.*---------------------------------------------------------------------*
The following structures are not covered:
:list.
:li D='-'. xyzqwerty
:elist.
.*---------------------------------------------------------------------*
:h1.REQUIREMENT-BASED TESTS
.*---------------------------------------------------------------------*
.*---------------------------------------------------------------------*
:h2.Testing IPv6 feature
.*---------------------------------------------------------------------*
.*---------------------------------------------------------------------*
:h3. Existing named address for mctr, and for component host address
.*---------------------------------------------------------------------*
:xmp tab=0.

<TC - Existing named address for mctr, and for component host address   >

<EXECUTE_PARALLEL>

<MODULE TTCN A A.ttcn>
module A {
 modulepar {
  charstring tsp_ipaddr1:="localhost"
  charstring tsp_port1 := "9999"
}

type component MTC {}
type component C1_CT {}

function f_c1_behavior() runs on C1_CT {
  setverdict(pass);
  stop;
}

testcase tc_1() runs on MTC {
  var C1_CT vc_1 := C1_CT.create("First",tsp_ipaddr1);
  vc_1.start(f_c1_behavior());
  vc_1.done;
}
  
control {
  execute(tc_1());
}

}
<END_MODULE>

<MODULE CFG Temp Temp.cfg>
[LOGGING]
FileMask := LOG_ALL
ConsoleMask := WARNING | ERROR | TESTCASE | STATISTICS
[DEFINE]
mctr_ipaddr := tcclab1
[MODULE_PARAMETERS]
tsp_ipaddr1 := $mctr_ipaddr
[EXECUTE]
A.tc_1
[MAIN_CONTROLLER] 
LocalAddress := ${ mctr_ipaddr, hostname}
<END_MODULE>
<RESULT>
Overall verdict: pass
<END_RESULT>
<END_TC>

:exmp.

.*---------------------------------------------------------------------*
:h3. Existing IPv4 address for mctr, and not existing name for component address
.*---------------------------------------------------------------------*
:xmp tab=0.

<TC - Existing IPv4 address for mctr, and not existing name for component address >

<EXECUTE_PARALLEL>

<MODULE TTCN A A.ttcn>
module A {
 modulepar {
  charstring tsp_ipaddr1:="localhost"
  charstring tsp_port1 := "9999"
}

type component MTC {}
type component C1_CT {}

function f_c1_behavior() runs on C1_CT {
  log(">>>f_c1_behavior started<<<");
  setverdict(pass);
  stop;
}

testcase tc_1() runs on MTC {
  var C1_CT vc_1 := C1_CT.create("First","localhome");
  vc_1.start(f_c1_behavior());
  vc_1.done;
}
  
control {
  execute(tc_1());
}

}
<END_MODULE>

<MODULE CFG Temp Temp.cfg>
[LOGGING]
FileMask := LOG_ALL
ConsoleMask := WARNING | ERROR | TESTCASE | STATISTICS
[EXECUTE]
A.tc_1
[MAIN_CONTROLLER] 
LocalAddress := tcclab1

<END_MODULE>

<RESULT>
Dynamic test case error:
<END_RESULT>
<END_TC>

:exmp.
.*---------------------------------------------------------------------*
:h3. IPv4 address for mctr, and for component address (eth0)
.*---------------------------------------------------------------------*
:xmp tab=0.

<TC - IPv4 address for mctr, and for component host address  (eth0) >

<EXECUTE_PARALLEL>

<MODULE TTCN A A.ttcn>
module A {
 modulepar {
  charstring tsp_ipaddr1:="localhost"
  charstring tsp_port1 := "9999"
}

type component MTC {}
type component C1_CT {}

function f_c1_behavior() runs on C1_CT {
  log(">>>f_c1_behavior started<<<");
  setverdict(pass);
  stop;
}

testcase tc_1() runs on MTC {
  var C1_CT vc_1 := C1_CT.create("First",tsp_ipaddr1);
  vc_1.start(f_c1_behavior());
  vc_1.done;
}
  
control {
  execute(tc_1());
}

}
<END_MODULE>

<MODULE CFG Temp Temp.cfg>
[LOGGING]
FileMask := LOG_ALL
ConsoleMask := WARNING | ERROR | TESTCASE | STATISTICS
[DEFINE]
mctr_ipaddr := "172.31.21.7"
[MODULE_PARAMETERS]
tsp_ipaddr1 := $mctr_ipaddr
[EXECUTE]
A.tc_1
[MAIN_CONTROLLER] 
LocalAddress := ${ mctr_ipaddr, hostname}

<END_MODULE>

<RESULT>
Overall verdict: pass
<END_RESULT>
<END_TC>

:exmp.

.*---------------------------------------------------------------------*
:h3. IPv4 address for mctr, and for component address (eth2)
.*---------------------------------------------------------------------*
:xmp tab=0.

<TC - IPv4 address for mctr, and for component host address  (eth2) >

<EXECUTE_PARALLEL>

<MODULE TTCN A A.ttcn>
module A {
 modulepar {
  charstring tsp_ipaddr1:="localhost"
  charstring tsp_port1 := "9999"
}

type component MTC {}
type component C1_CT {}

function f_c1_behavior() runs on C1_CT {
  log(">>>f_c1_behavior started<<<");
  setverdict(pass);
  stop;
}

testcase tc_1() runs on MTC {
  var C1_CT vc_1 := C1_CT.create("First",tsp_ipaddr1);
  vc_1.start(f_c1_behavior());
  vc_1.done;
}
  
control {
  execute(tc_1());
}

}
<END_MODULE>

<MODULE CFG Temp Temp.cfg>
[LOGGING]
FileMask := LOG_ALL
ConsoleMask := WARNING | ERROR | TESTCASE | STATISTICS
[DEFINE]
mctr_ipaddr := "192.168.1.1" //eth2
[MODULE_PARAMETERS]
tsp_ipaddr1 := $mctr_ipaddr
[EXECUTE]
A.tc_1
[MAIN_CONTROLLER] 
LocalAddress := ${ mctr_ipaddr, hostname}

<END_MODULE>

<RESULT>
Overall verdict: pass
<END_RESULT>
<END_TC>

:exmp.

.*---------------------------------------------------------------------*
:h3. IPv4 address for mctr, and brief IPv6 address for component address(eth0, Scope:Global)
.*---------------------------------------------------------------------*
:xmp tab=0.

<TC - IPv4 address for mctr, and brief IPv6 address for component address (eth0, Scope:Global)>

<EXECUTE_PARALLEL>

<MODULE TTCN A A.ttcn>
module A {
 modulepar {
  charstring tsp_ipaddr1:="localhost"
  charstring tsp_port1 := "9999"
}

type component MTC {}
type component C1_CT {}

function f_c1_behavior() runs on C1_CT {
  log(">>>f_c1_behavior started<<<");
  setverdict(pass);
  stop;
}

testcase tc_1() runs on MTC {
  var C1_CT vc_1 := C1_CT.create("First",tsp_ipaddr1);
  vc_1.start(f_c1_behavior());
  vc_1.done;
}
  
control {
  execute(tc_1());
}

}
<END_MODULE>

<MODULE CFG Temp Temp.cfg>
[LOGGING]
FileMask := LOG_ALL
ConsoleMask := WARNING | ERROR | TESTCASE | STATISTICS
[MODULE_PARAMETERS]
tsp_ipaddr1 := "fd0a:f452:f524::7" 

[EXECUTE]
A.tc_1
[MAIN_CONTROLLER] 
LocalAddress := 172.31.21.7 

<END_MODULE>

<RESULT>
No suitable host was found to create a new PTC
<END_RESULT>

<END_TC>

:exmp.

.*---------------------------------------------------------------------*
:h3. IPv4 address for mctr, and brief IPv6 address for component address (eth0, Scope:Link)
.*---------------------------------------------------------------------*
:xmp tab=0.

<TC - IPv4 address for mctr, and brief IPv6 address for component address (eth0, Scope:Link) >

<EXECUTE_PARALLEL>

<MODULE TTCN A A.ttcn>
module A {
 modulepar {
  charstring tsp_ipaddr1:="localhost"
  charstring tsp_port1 := "9999"
}

type component MTC {}
type component C1_CT {}

function f_c1_behavior() runs on C1_CT {
  log(">>>f_c1_behavior started<<<");
  setverdict(pass);
  stop;
}

testcase tc_1() runs on MTC {
  var C1_CT vc_1 := C1_CT.create("First",tsp_ipaddr1);
  vc_1.start(f_c1_behavior());
  vc_1.done;
}
  
control {
  execute(tc_1());
}

}
<END_MODULE>

<MODULE CFG Temp Temp.cfg>
[LOGGING]
FileMask := LOG_ALL
ConsoleMask := WARNING | ERROR | TESTCASE | STATISTICS
[MODULE_PARAMETERS]
tsp_ipaddr1 := "fe80::215:17ff:fe48:23d0%eth0" //Scope:Link
[EXECUTE]
A.tc_1
[MAIN_CONTROLLER] 
LocalAddress := 172.31.21.7 

<END_MODULE>

<RESULT>
No suitable host was found to create a new PTC 
<END_RESULT>

<END_TC>

:exmp.
.*---------------------------------------------------------------------*
:h3. IPv4 address for mctr, and IPv6 address of longer form for component address (eth0, Scope:Global)
.*---------------------------------------------------------------------*
:xmp tab=0.

<TC - IPv4 address for mctr, and IPv6 address of longer form for component address (eth0, Scope:Global) >

<EXECUTE_PARALLEL>

<MODULE TTCN A A.ttcn>
module A {
 modulepar {
  charstring tsp_ipaddr1:="localhost"
  charstring tsp_port1 := "9999"
}

type component MTC {}
type component C1_CT {}

function f_c1_behavior() runs on C1_CT {
  log(">>>f_c1_behavior started<<<");
  setverdict(pass);
  stop;
}

testcase tc_1() runs on MTC {
  var C1_CT vc_1 := C1_CT.create("First",tsp_ipaddr1);
  vc_1.start(f_c1_behavior());
  vc_1.done;
}
  
control {
  execute(tc_1());
}

}
<END_MODULE>

<MODULE CFG Temp Temp.cfg>
[LOGGING]
FileMask := LOG_ALL
ConsoleMask := WARNING | ERROR | TESTCASE | STATISTICS
[MODULE_PARAMETERS]
tsp_ipaddr1 := "fd0a:f452:f524:0:0:0:0:7"
[EXECUTE]
A.tc_1
[MAIN_CONTROLLER] 
LocalAddress := 172.31.21.7 

<END_MODULE>

<RESULT>
No suitable host was found to create a new PTC
<END_RESULT>

<END_TC>

:exmp.

.*---------------------------------------------------------------------*
:h3. IPv4 address for mctr, and IPv6 address of longest form for component address (eth0, Scope:Global)
.*---------------------------------------------------------------------*
:xmp tab=0.

<TC - IPv4 address for mctr, and IPv6 address of longest form for component address (eth0, Scope:Global)>

<EXECUTE_PARALLEL>

<MODULE TTCN A A.ttcn>
module A {
 modulepar {
  charstring tsp_ipaddr1:="localhost"
  charstring tsp_port1 := "9999"
}

type component MTC {}
type component C1_CT {}

function f_c1_behavior() runs on C1_CT {
  log(">>>f_c1_behavior started<<<");
  setverdict(pass);
  stop;
}

testcase tc_1() runs on MTC {
  var C1_CT vc_1 := C1_CT.create("First",tsp_ipaddr1);
  vc_1.start(f_c1_behavior());
  vc_1.done;
}
  
control {
  execute(tc_1());
}

}
<END_MODULE>

<MODULE CFG Temp Temp.cfg>
[LOGGING]
FileMask := LOG_ALL
ConsoleMask := WARNING | ERROR | TESTCASE | STATISTICS
[DEFINE]
mctr_ipaddr := "fd0a:f452:f524:0000:0000:0000:0000:0007"
[MODULE_PARAMETERS]
tsp_ipaddr1 := $mctr_ipaddr
[EXECUTE]
A.tc_1
[MAIN_CONTROLLER] 
LocalAddress := 172.31.21.7 

<END_MODULE>

<RESULT>
No suitable host was found to create a new PTC 
<END_RESULT>

<END_TC>

:exmp.
.*---------------------------------------------------------------------*
:h3. IPv6 address of short form, no network length, syntax error for mctr 1.
.*---------------------------------------------------------------------*
:xmp tab=0.

<TC - IPv6 address of short form, no network length, syntax error for mctr 1. >

<EXECUTE_PARALLEL>

<MODULE TTCN A A.ttcn>
module A {

type component MTC {}

testcase tc_1() runs on MTC {
setverdict(pass);
}
  
control {
  execute(tc_1());
}

}
<END_MODULE>

<MODULE CFG Temp Temp.cfg>
[LOGGING]
FileMask := LOG_ALL
ConsoleMask := WARNING | ERROR | TESTCASE | STATISTICS
 
[EXECUTE]
A.tc_1
[MAIN_CONTROLLER] 
LocalAddress :=  BUBU::7
 
<END_MODULE>

<RESULT>
Error was found in the configuration file. Exiting
<END_RESULT>
<END_TC>

:exmp.

.*---------------------------------------------------------------------*
:h3. IPv6 address of short form, no network length, syntax error for mctr 2.
.*---------------------------------------------------------------------*
:xmp tab=0.

<TC - IPv6 address of short form, no network length, syntax error for mctr 2 >

<EXECUTE_PARALLEL>

<MODULE TTCN A A.ttcn>
module A {

type component MTC {}

testcase tc_1() runs on MTC {
setverdict(pass);
}
  
control {
  execute(tc_1());
}

}
<END_MODULE>

<MODULE CFG Temp Temp.cfg>
[LOGGING]
FileMask := LOG_ALL
ConsoleMask := WARNING | ERROR | TESTCASE | STATISTICS
 
[EXECUTE]
A.tc_1
[MAIN_CONTROLLER] 
LocalAddress :=  FD0A:f452:f524:::7
 
<END_MODULE>

<RESULT>
Error
<END_RESULT>
<END_TC>

:exmp.
.*---------------------------------------------------------------------*
:h3. IPv6 address of short form, no network length,  for mctr (eth0, Scope: Global)
.*---------------------------------------------------------------------*
:xmp tab=0.

<TC - IPv6 address of short form, no network length,  for mctr (eth0, Scope: Global)>

<EXECUTE_PARALLEL>

<MODULE TTCN A A.ttcn>
module A {

type component MTC {}

testcase tc_1() runs on MTC {
setverdict(pass);
}
  
control {
  execute(tc_1());
}

}
<END_MODULE>

<MODULE CFG Temp Temp.cfg>
[LOGGING]
FileMask := LOG_ALL
ConsoleMask := WARNING | ERROR | TESTCASE | STATISTICS
 
[EXECUTE]
A.tc_1
[MAIN_CONTROLLER] 
LocalAddress :=  fd0a:f452:f524::7
 
<END_MODULE>

<RESULT>
Overall verdict: pass
<END_RESULT>
<END_TC>

:exmp.
.*---------------------------------------------------------------------*
:h3. IPv6 address of longer form, no network length,  for mctr (eth0, Scope: Global)
.*---------------------------------------------------------------------*
:xmp tab=0.

<TC - IPv6 address of longer form, no network length,  for mctr (eth0, Scope: Global) >

<EXECUTE_PARALLEL>

<MODULE TTCN A A.ttcn>
module A {

type component MTC {}

testcase tc_1() runs on MTC {
setverdict(pass);
}
  
control {
  execute(tc_1());
}

}
<END_MODULE>

<MODULE CFG Temp Temp.cfg>
[LOGGING]
FileMask := LOG_ALL
ConsoleMask := WARNING | ERROR | TESTCASE | STATISTICS
 
[EXECUTE]
A.tc_1
[MAIN_CONTROLLER] 
LocalAddress :=  fd0a:f452:f524:0:0:0:0:7
 
<END_MODULE>

<RESULT>
Overall verdict: pass
<END_RESULT>
<END_TC>

:exmp.
.*---------------------------------------------------------------------*
:h3. IPv6 address of longest form, no network length,  for mctr (eth0, Scope: Global)
.*---------------------------------------------------------------------*
:xmp tab=0.

<TC - IPv6 address of longest form, no network length,  for mctr (eth0, Scope: Global)>

<EXECUTE_PARALLEL>

<MODULE TTCN A A.ttcn>
module A {

type component MTC {}

testcase tc_1() runs on MTC {
setverdict(pass);
}
  
control {
  execute(tc_1());
}

}
<END_MODULE>

<MODULE CFG Temp Temp.cfg>
[LOGGING]
FileMask := LOG_ALL
ConsoleMask := WARNING | ERROR | TESTCASE | STATISTICS
 
[EXECUTE]
A.tc_1
[MAIN_CONTROLLER] 
LocalAddress :=  fd0a:f452:f524:0000:0000:0000:0000:0007
 
<END_MODULE>

<RESULT>
Overall verdict: pass
<END_RESULT>
<END_TC>

:exmp.

.*---------------------------------------------------------------------*
:h3. IPv6 address of longest form, no network length,  for mctr (eth0, Scope: Global), localhost for created component
.*---------------------------------------------------------------------*
:xmp tab=0.

<TC - IPv6 address of longest form, no network length,  for mctr (eth0, Scope: Global), localhost for created component>

<EXECUTE_PARALLEL>

<MODULE TTCN A A.ttcn>
module A {
modulepar {
  charstring tsp_ipaddr1:="localhost"
  charstring tsp_port1 := "9999"
}
type component MTC {}
type component C1_CT {}

function f_c1_behavior() runs on C1_CT {
  log(">>>f_c1_behavior started<<<");
  setverdict(pass);
  stop;
}

testcase tc_1() runs on MTC {
  var C1_CT vc_1 := C1_CT.create("First",tsp_ipaddr1);
  vc_1.start(f_c1_behavior());
  vc_1.done;
}

}
<END_MODULE>

<MODULE CFG Temp Temp.cfg>
[LOGGING]
FileMask := LOG_ALL
ConsoleMask := WARNING | ERROR | TESTCASE | STATISTICS
 
[EXECUTE]
A.tc_1
[MAIN_CONTROLLER] 
LocalAddress :=  fd0a:f452:f524:0000:0000:0000:0000:0007
 
<END_MODULE>

<RESULT>
No suitable host was found to create a new PTC
<END_RESULT>
<END_TC>

:exmp.
.*---------------------------------------------------------------------*
:h3. IPv6 address in hostname macro (eth0, Scope: Global)
.*---------------------------------------------------------------------*
:xmp tab=0.

<TC -  IPv6 address in hostname macro (eth0, Scope: Global)>

<EXECUTE_PARALLEL>

<MODULE TTCN A A.ttcn>
module A {

type component MTC {}

testcase tc_1() runs on MTC {
  setverdict(pass);
}
  
control {
  execute(tc_1());
}

}
<END_MODULE>

<MODULE CFG Temp Temp.cfg>
[LOGGING]
FileMask := LOG_ALL
ConsoleMask := WARNING | ERROR | TESTCASE | STATISTICS
[DEFINE]
mctr_ipaddr := fd0a:f452:f524::7 //eth0, Scope:Global
[EXECUTE]
A.tc_1
[MAIN_CONTROLLER] 
LocalAddress := ${ mctr_ipaddr, hostname}

<END_MODULE>

<RESULT>
Overall verdict: pass
<END_RESULT>
<END_TC>

:exmp.

.*---------------------------------------------------------------------*
:h3. IPv6 address of short form, no network length,  for mctr (eth0, Scope: Link)
.*---------------------------------------------------------------------*
:xmp tab=0.

<TC - IPv6 address of short form, no network length,  for mctr (eth0, Scope: Link)>

<EXECUTE_PARALLEL>

<MODULE TTCN A A.ttcn>
module A {

type component MTC {}

testcase tc_1() runs on MTC {
setverdict(pass);
}
  
control {
  execute(tc_1());
}

}
<END_MODULE>

<MODULE CFG Temp Temp.cfg>
[LOGGING]
FileMask := LOG_ALL
ConsoleMask := WARNING | ERROR | TESTCASE | STATISTICS
 
[EXECUTE]
A.tc_1
[MAIN_CONTROLLER] 
LocalAddress := fe80::215:17ff:fe48:23d0%eth0 
 
<END_MODULE>

<RESULT>
Overall verdict: pass
<END_RESULT>
<END_TC>

:exmp.
.*---------------------------------------------------------------------*
:h3. IPv6 address of longer form, no network length,  for mctr (eth0, Scope: Link)
.*---------------------------------------------------------------------*
:xmp tab=0.

<TC - IPv6 address of longer form, no network length,  for mctr (eth0, Scope: Link)>

<EXECUTE_PARALLEL>

<MODULE TTCN A A.ttcn>
module A {

type component MTC {}

testcase tc_1() runs on MTC {
setverdict(pass);
}
  
control {
  execute(tc_1());
}

}
<END_MODULE>

<MODULE CFG Temp Temp.cfg>
[LOGGING]
FileMask := LOG_ALL
ConsoleMask := WARNING | ERROR | TESTCASE | STATISTICS
 
[EXECUTE]
A.tc_1
[MAIN_CONTROLLER] 
LocalAddress := fe80:0:0:0:215:17ff:fe48:23d0%eth0 
 
<END_MODULE>

<RESULT>
Overall verdict: pass
<END_RESULT>
<END_TC>

:exmp.

.*---------------------------------------------------------------------*
:h3. IPv6 address of longest form, no network length,  for mctr (eth0, Scope: Link)
.*---------------------------------------------------------------------*
:xmp tab=0.

<TC - IPv6 address of longest form, no network length,  for mctr (eth0, Scope: Link)>

<EXECUTE_PARALLEL>

<MODULE TTCN A A.ttcn>
module A {

type component MTC {}

testcase tc_1() runs on MTC {
setverdict(pass);
}
  
control {
  execute(tc_1());
}

}
<END_MODULE>

<MODULE CFG Temp Temp.cfg>
[LOGGING]
FileMask := LOG_ALL
ConsoleMask := WARNING | ERROR | TESTCASE | STATISTICS
 
[EXECUTE]
A.tc_1
[MAIN_CONTROLLER] 
LocalAddress := fe80:0000:0000:0000:0215:17ff:fe48:23d0%eth0 
 
<END_MODULE>

<RESULT>
Overall verdict: pass
<END_RESULT>
<END_TC>

:exmp.
.*---------------------------------------------------------------------*
:h3. IPv6 address of brief format for mctr, and for component address (eth0, Scope:Link)
.*---------------------------------------------------------------------*
:xmp tab=0.

<TC -  IPv6 address of brief format for mctr, and for component address (eth0, Scope:Link)  >

<EXECUTE_PARALLEL>

<MODULE TTCN A A.ttcn>
module A {
 modulepar {
  charstring tsp_ipaddr1:="localhost"
  charstring tsp_port1 := "9999"
}

type component MTC {}
type component C1_CT {}

function f_c1_behavior() runs on C1_CT {
  log(">>>f_c1_behavior started<<<");
  setverdict(pass);
  stop;
}

testcase tc_1() runs on MTC {
  var C1_CT vc_1 := C1_CT.create("First",tsp_ipaddr1);
  vc_1.start(f_c1_behavior());
  vc_1.done;
}
  
control {
  execute(tc_1());
}

}
<END_MODULE>

<MODULE CFG Temp Temp.cfg>
[LOGGING]
FileMask := LOG_ALL
ConsoleMask := WARNING | ERROR | TESTCASE | STATISTICS
[MODULE_PARAMETERS]
tsp_ipaddr1 :=  "fe80::215:17ff:fe48:23d0%eth0"
[EXECUTE]
A.tc_1
[MAIN_CONTROLLER] 
LocalAddress := fe80::215:17ff:fe48:23d0%eth0
 
<END_MODULE>

<RESULT>
Overall verdict: pass
<END_RESULT>
<END_TC>

:exmp.

.*---------------------------------------------------------------------*
:h3. IPv6 address of brief format for mctr, and name for component host address (eth0, Scope:Global)
.*---------------------------------------------------------------------*
:xmp tab=0.

<TC - IPv6 address of brief format for mctr, and name for component host address (eth0, Scope:Global)  >

<EXECUTE_PARALLEL>

<MODULE TTCN A A.ttcn>
module A {
 modulepar {
  charstring tsp_ipaddr1:="localhost"
  charstring tsp_port1 := "9999"
}

type component MTC {}
type component C1_CT {}

function f_c1_behavior() runs on C1_CT {
  setverdict(pass);
  stop;
}

testcase tc_1() runs on MTC {
  var C1_CT vc_1 := C1_CT.create("First",tsp_ipaddr1);
  vc_1.start(f_c1_behavior());
  vc_1.done;
}
  
control {
  execute(tc_1());
}

}
<END_MODULE>

<MODULE CFG Temp Temp.cfg>
[LOGGING]
FileMask := LOG_ALL
ConsoleMask := WARNING | ERROR | TESTCASE | STATISTICS
[MODULE_PARAMETERS]
tsp_ipaddr1 := "tcclab1"
[EXECUTE]
A.tc_1
[MAIN_CONTROLLER] 
LocalAddress := fd0a:f452:f524::7
<END_MODULE>
<RESULT>
Overall verdict: pass
<END_RESULT>
<END_TC>

:exmp.
.*---------------------------------------------------------------------*
:h3. IPv6 address of brief format for mctr, and full name for component host address (eth0, Scope:Global)
.*---------------------------------------------------------------------*
:xmp tab=0.

<TC - IPv6 address of brief format for mctr, and full name for component host address (eth0, Scope:Global)  >

<EXECUTE_PARALLEL>

<MODULE TTCN A A.ttcn>
module A {
 modulepar {
  charstring tsp_ipaddr1:="localhost"
  charstring tsp_port1 := "9999"
}

type component MTC {}
type component C1_CT {}

function f_c1_behavior() runs on C1_CT {
  setverdict(pass);
  stop;
}

testcase tc_1() runs on MTC {
  var C1_CT vc_1 := C1_CT.create("First",tsp_ipaddr1);
  vc_1.start(f_c1_behavior());
  vc_1.done;
}
  
control {
  execute(tc_1());
}

}
<END_MODULE>

<MODULE CFG Temp Temp.cfg>
[LOGGING]
FileMask := LOG_ALL
ConsoleMask := WARNING | ERROR | TESTCASE | STATISTICS
[MODULE_PARAMETERS]
tsp_ipaddr1 := "tcclab1.tccnet.eth.ericsson.se"
[EXECUTE]
A.tc_1
[MAIN_CONTROLLER] 
LocalAddress := fd0a:f452:f524::7
<END_MODULE>
<RESULT>
Overall verdict: pass
<END_RESULT>
<END_TC>

:exmp.

.*---------------------------------------------------------------------*
:h3. IPv6 address of brief format for mctr, and name for component host address (eth0, Scope:Link Local)
.*---------------------------------------------------------------------*
:xmp tab=0.

<TC - IPv6 address of brief format for mctr, and name for component host address (eth0, Scope:Link Local)   >

<EXECUTE_PARALLEL>

<MODULE TTCN A A.ttcn>
module A {
 modulepar {
  charstring tsp_ipaddr1:="localhost"
  charstring tsp_port1 := "9999"
}

type component MTC {}
type component C1_CT {}

function f_c1_behavior() runs on C1_CT {
  setverdict(pass);
  stop;
}

testcase tc_1() runs on MTC {
  var C1_CT vc_1 := C1_CT.create("First",tsp_ipaddr1);
  vc_1.start(f_c1_behavior());
  vc_1.done;
}
  
control {
  execute(tc_1());
}

}
<END_MODULE>

<MODULE CFG Temp Temp.cfg>
[LOGGING]
FileMask := LOG_ALL
ConsoleMask := WARNING | ERROR | TESTCASE | STATISTICS
[MODULE_PARAMETERS]
tsp_ipaddr1 := "tcclab1"
[EXECUTE]
A.tc_1
[MAIN_CONTROLLER] 
LocalAddress := fe80::215:17ff:fe48:23d0%eth0
<END_MODULE>
<RESULT>
Overall verdict: pass
<END_RESULT>
<END_TC>

:exmp.

.*---------------------------------------------------------------------*
:h3. IPv6 address for mctr, and brief IPv6 address for component address(eth0, Scope:Global)
.*---------------------------------------------------------------------*
:xmp tab=0.

<TC - IPv6 address for mctr, and brief IPv6 address for component address (eth0, Scope:Global)>

<EXECUTE_PARALLEL>

<MODULE TTCN A A.ttcn>
module A {
 modulepar {
  charstring tsp_ipaddr1:="localhost"
  charstring tsp_port1 := "9999"
}

type component MTC {}
type component C1_CT {}

function f_c1_behavior() runs on C1_CT {
  log(">>>f_c1_behavior started<<<");
  setverdict(pass);
  stop;
}

testcase tc_1() runs on MTC {
  var C1_CT vc_1 := C1_CT.create("First",tsp_ipaddr1);
  vc_1.start(f_c1_behavior());
  vc_1.done;
}
  
control {
  execute(tc_1());
}

}
<END_MODULE>

<MODULE CFG Temp Temp.cfg>
[LOGGING]
FileMask := LOG_ALL
ConsoleMask := WARNING | ERROR | TESTCASE | STATISTICS
[MODULE_PARAMETERS]
tsp_ipaddr1 := "fd0a:f452:f524::7" 

[EXECUTE]
A.tc_1
[MAIN_CONTROLLER] 
LocalAddress := fd0a:f452:f524::7

<END_MODULE>

<RESULT>
Overall verdict: pass
<END_RESULT>

<END_TC>

:exmp.
.*---------------------------------------------------------------------*
:h3. IPv6 address for mctr, and longer IPv6 address for component address(eth0, Scope:Global)
.*---------------------------------------------------------------------*
:xmp tab=0.

<TC - IPv6 address for mctr, and longer IPv6 address for component address (eth0, Scope:Global)>

<EXECUTE_PARALLEL>

<MODULE TTCN A A.ttcn>
module A {
 modulepar {
  charstring tsp_ipaddr1:="localhost"
  charstring tsp_port1 := "9999"
}

type component MTC {}
type component C1_CT {}

function f_c1_behavior() runs on C1_CT {
  log(">>>f_c1_behavior started<<<");
  setverdict(pass);
  stop;
}

testcase tc_1() runs on MTC {
  var C1_CT vc_1 := C1_CT.create("First",tsp_ipaddr1);
  vc_1.start(f_c1_behavior());
  vc_1.done;
}
  
control {
  execute(tc_1());
}

}
<END_MODULE>

<MODULE CFG Temp Temp.cfg>
[LOGGING]
FileMask := LOG_ALL
ConsoleMask := WARNING | ERROR | TESTCASE | STATISTICS
[MODULE_PARAMETERS]
tsp_ipaddr1 := "fd0a:f452:f524:0:0:0:0:7"

[EXECUTE]
A.tc_1
[MAIN_CONTROLLER] 
LocalAddress :=  fd0a:f452:f524:0:0:0:0:7 

<END_MODULE>

<RESULT>
Overall verdict: pass
<END_RESULT>

<END_TC>

:exmp.
.*---------------------------------------------------------------------*
:h3. IPv6 address for mctr, and longest IPv6 address for component address(eth0, Scope:Global)
.*---------------------------------------------------------------------*
:xmp tab=0.

<TC - IPv6 address for mctr, and longest IPv6 address for component address (eth0, Scope:Global)>

<EXECUTE_PARALLEL>

<MODULE TTCN A A.ttcn>
module A {
 modulepar {
  charstring tsp_ipaddr1:="localhost"
  charstring tsp_port1 := "9999"
}

type component MTC {}
type component C1_CT {}

function f_c1_behavior() runs on C1_CT {
  log(">>>f_c1_behavior started<<<");
  setverdict(pass);
  stop;
}

testcase tc_1() runs on MTC {
  var C1_CT vc_1 := C1_CT.create("First",tsp_ipaddr1);
  vc_1.start(f_c1_behavior());
  vc_1.done;
}
  
control {
  execute(tc_1());
}

}
<END_MODULE>

<MODULE CFG Temp Temp.cfg>
[LOGGING]
FileMask := LOG_ALL
ConsoleMask := WARNING | ERROR | TESTCASE | STATISTICS
[MODULE_PARAMETERS]
tsp_ipaddr1 := "fd0a:f452:f524:0000:0000:0000:0000:0007" 

[EXECUTE]
A.tc_1
[MAIN_CONTROLLER] 
LocalAddress := fd0a:f452:f524::7  

<END_MODULE>

<RESULT>
Overall verdict: pass
<END_RESULT>

<END_TC>

:exmp.

.*---------------------------------------------------------------------*
:h3. IPv6 address for mctr, and brief IPv6 address for component address(eth1, Scope:Global)
.*---------------------------------------------------------------------*
:xmp tab=0.

<TC - IPv6 address for mctr, and brief IPv6 address for component address (eth1, Scope:Global)>

<EXECUTE_PARALLEL>

<MODULE TTCN A A.ttcn>
module A {
 modulepar {
  charstring tsp_ipaddr1:="localhost"
  charstring tsp_port1 := "9999"
}

type component MTC {}
type component C1_CT {}

function f_c1_behavior() runs on C1_CT {
  log(">>>f_c1_behavior started<<<");
  setverdict(pass);
  stop;
}

testcase tc_1() runs on MTC {
  var C1_CT vc_1 := C1_CT.create("First",tsp_ipaddr1);
  vc_1.start(f_c1_behavior());
  vc_1.done;
}
  
control {
  execute(tc_1());
}

}
<END_MODULE>

<MODULE CFG Temp Temp.cfg>
[LOGGING]
FileMask := LOG_ALL
ConsoleMask := WARNING | ERROR | TESTCASE | STATISTICS
[MODULE_PARAMETERS]
tsp_ipaddr1 :=  "fdb2:30de:34bd::7" //eth1

[EXECUTE]
A.tc_1
[MAIN_CONTROLLER] 
LocalAddress := fdb2:30de:34bd::7  //eth1

<END_MODULE>

<RESULT>
Overall verdict: pass
<END_RESULT>

<END_TC>

:exmp.

.*---------------------------------------------------------------------*
:h3. IPv6 address for mctr, and longer IPv6 address for component address (eth1, Scope:Global)
.*---------------------------------------------------------------------*
:xmp tab=0.

<TC - IPv6 address for mctr, and longer IPv6 address for component address (eth1, Scope:Global)>

<EXECUTE_PARALLEL>

<MODULE TTCN A A.ttcn>
module A {
 modulepar {
  charstring tsp_ipaddr1:="localhost"
  charstring tsp_port1 := "9999"
}

type component MTC {}
type component C1_CT {}

function f_c1_behavior() runs on C1_CT {
  log(">>>f_c1_behavior started<<<");
  setverdict(pass);
  stop;
}

testcase tc_1() runs on MTC {
  var C1_CT vc_1 := C1_CT.create("First",tsp_ipaddr1);
  vc_1.start(f_c1_behavior());
  vc_1.done;
}
  
control {
  execute(tc_1());
}

}
<END_MODULE>

<MODULE CFG Temp Temp.cfg>
[LOGGING]
FileMask := LOG_ALL
ConsoleMask := WARNING | ERROR | TESTCASE | STATISTICS
[MODULE_PARAMETERS]
tsp_ipaddr1 :=  "FD0a:f452:f524:0:0:0:0:07" 

[EXECUTE]
A.tc_1
[MAIN_CONTROLLER] 
LocalAddress := fd0a:f452:f524::7  

<END_MODULE>

<RESULT>
Overall verdict: pass
<END_RESULT>

<END_TC>

:exmp.

:etext.
