From 45bd7747a845e20df22a8ef55c637ac5cf4cc98b Mon Sep 17 00:00:00 2001 From: Michele Carignani <michele.carignani@etsi.org> Date: Wed, 31 Jan 2018 14:52:10 +0100 Subject: [PATCH] Added examples from standardization working groups in ETSI, OneM2M and 3GPP. Change-Id: Idb917d19aefcc8358905b2840fffb2055c7ebf8a Signed-off-by: Michele Carignani <michele.carignani@etsi.org> --- LICENSE.txt | 203 ++++++++++++++++++ Readme.md | 11 + standard-tests/3gpp/IMS.tdlan2 | 145 +++++++++++++ standard-tests/etsi-nfv-isg/lcm.tdlan2 | 56 +++++ .../etsi-nfv-isg/tst-007-commons.tdlan2 | 72 +++++++ standard-tests/onem2m/cse_dmr.tplan2 | 72 +++++++ 6 files changed, 559 insertions(+) create mode 100644 LICENSE.txt create mode 100644 Readme.md create mode 100644 standard-tests/3gpp/IMS.tdlan2 create mode 100644 standard-tests/etsi-nfv-isg/lcm.tdlan2 create mode 100644 standard-tests/etsi-nfv-isg/tst-007-commons.tdlan2 create mode 100644 standard-tests/onem2m/cse_dmr.tplan2 diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..5032843 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,203 @@ +Eclipse Public License - v 1.0 + +THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC +LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM +CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + +1. DEFINITIONS + +"Contribution" means: + +a) in the case of the initial Contributor, the initial code and documentation + distributed under this Agreement, and +b) in the case of each subsequent Contributor: + i) changes to the Program, and + ii) additions to the Program; + + where such changes and/or additions to the Program originate from and are + distributed by that particular Contributor. A Contribution 'originates' + from a Contributor if it was added to the Program by such Contributor + itself or anyone acting on such Contributor's behalf. Contributions do not + include additions to the Program which: (i) are separate modules of + software distributed in conjunction with the Program under their own + license agreement, and (ii) are not derivative works of the Program. + +"Contributor" means any person or entity that distributes the Program. + +"Licensed Patents" mean patent claims licensable by a Contributor which are +necessarily infringed by the use or sale of its Contribution alone or when +combined with the Program. + +"Program" means the Contributions distributed in accordance with this +Agreement. + +"Recipient" means anyone who receives the Program under this Agreement, +including all Contributors. + +2. GRANT OF RIGHTS + a) Subject to the terms of this Agreement, each Contributor hereby grants + Recipient a non-exclusive, worldwide, royalty-free copyright license to + reproduce, prepare derivative works of, publicly display, publicly + perform, distribute and sublicense the Contribution of such Contributor, + if any, and such derivative works, in source code and object code form. + b) Subject to the terms of this Agreement, each Contributor hereby grants + Recipient a non-exclusive, worldwide, royalty-free patent license under + Licensed Patents to make, use, sell, offer to sell, import and otherwise + transfer the Contribution of such Contributor, if any, in source code and + object code form. This patent license shall apply to the combination of + the Contribution and the Program if, at the time the Contribution is + added by the Contributor, such addition of the Contribution causes such + combination to be covered by the Licensed Patents. The patent license + shall not apply to any other combinations which include the Contribution. + No hardware per se is licensed hereunder. + c) Recipient understands that although each Contributor grants the licenses + to its Contributions set forth herein, no assurances are provided by any + Contributor that the Program does not infringe the patent or other + intellectual property rights of any other entity. Each Contributor + disclaims any liability to Recipient for claims brought by any other + entity based on infringement of intellectual property rights or + otherwise. As a condition to exercising the rights and licenses granted + hereunder, each Recipient hereby assumes sole responsibility to secure + any other intellectual property rights needed, if any. For example, if a + third party patent license is required to allow Recipient to distribute + the Program, it is Recipient's responsibility to acquire that license + before distributing the Program. + d) Each Contributor represents that to its knowledge it has sufficient + copyright rights in its Contribution, if any, to grant the copyright + license set forth in this Agreement. + +3. REQUIREMENTS + +A Contributor may choose to distribute the Program in object code form under +its own license agreement, provided that: + + a) it complies with the terms and conditions of this Agreement; and + b) its license agreement: + i) effectively disclaims on behalf of all Contributors all warranties + and conditions, express and implied, including warranties or + conditions of title and non-infringement, and implied warranties or + conditions of merchantability and fitness for a particular purpose; + ii) effectively excludes on behalf of all Contributors all liability for + damages, including direct, indirect, special, incidental and + consequential damages, such as lost profits; + iii) states that any provisions which differ from this Agreement are + offered by that Contributor alone and not by any other party; and + iv) states that source code for the Program is available from such + Contributor, and informs licensees how to obtain it in a reasonable + manner on or through a medium customarily used for software exchange. + +When the Program is made available in source code form: + + a) it must be made available under this Agreement; and + b) a copy of this Agreement must be included with each copy of the Program. + Contributors may not remove or alter any copyright notices contained + within the Program. + +Each Contributor must identify itself as the originator of its Contribution, +if +any, in a manner that reasonably allows subsequent Recipients to identify the +originator of the Contribution. + +4. COMMERCIAL DISTRIBUTION + +Commercial distributors of software may accept certain responsibilities with +respect to end users, business partners and the like. While this license is +intended to facilitate the commercial use of the Program, the Contributor who +includes the Program in a commercial product offering should do so in a manner +which does not create potential liability for other Contributors. Therefore, +if a Contributor includes the Program in a commercial product offering, such +Contributor ("Commercial Contributor") hereby agrees to defend and indemnify +every other Contributor ("Indemnified Contributor") against any losses, +damages and costs (collectively "Losses") arising from claims, lawsuits and +other legal actions brought by a third party against the Indemnified +Contributor to the extent caused by the acts or omissions of such Commercial +Contributor in connection with its distribution of the Program in a commercial +product offering. The obligations in this section do not apply to any claims +or Losses relating to any actual or alleged intellectual property +infringement. In order to qualify, an Indemnified Contributor must: +a) promptly notify the Commercial Contributor in writing of such claim, and +b) allow the Commercial Contributor to control, and cooperate with the +Commercial Contributor in, the defense and any related settlement +negotiations. The Indemnified Contributor may participate in any such claim at +its own expense. + +For example, a Contributor might include the Program in a commercial product +offering, Product X. That Contributor is then a Commercial Contributor. If +that Commercial Contributor then makes performance claims, or offers +warranties related to Product X, those performance claims and warranties are +such Commercial Contributor's responsibility alone. Under this section, the +Commercial Contributor would have to defend claims against the other +Contributors related to those performance claims and warranties, and if a +court requires any other Contributor to pay any damages as a result, the +Commercial Contributor must pay those damages. + +5. NO WARRANTY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR +IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, +NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each +Recipient is solely responsible for determining the appropriateness of using +and distributing the Program and assumes all risks associated with its +exercise of rights under this Agreement , including but not limited to the +risks and costs of program errors, compliance with applicable laws, damage to +or loss of data, programs or equipment, and unavailability or interruption of +operations. + +6. DISCLAIMER OF LIABILITY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY +CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION +LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE +EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY +OF SUCH DAMAGES. + +7. GENERAL + +If any provision of this Agreement is invalid or unenforceable under +applicable law, it shall not affect the validity or enforceability of the +remainder of the terms of this Agreement, and without further action by the +parties hereto, such provision shall be reformed to the minimum extent +necessary to make such provision valid and enforceable. + +If Recipient institutes patent litigation against any entity (including a +cross-claim or counterclaim in a lawsuit) alleging that the Program itself +(excluding combinations of the Program with other software or hardware) +infringes such Recipient's patent(s), then such Recipient's rights granted +under Section 2(b) shall terminate as of the date such litigation is filed. + +All Recipient's rights under this Agreement shall terminate if it fails to +comply with any of the material terms or conditions of this Agreement and does +not cure such failure in a reasonable period of time after becoming aware of +such noncompliance. If all Recipient's rights under this Agreement terminate, +Recipient agrees to cease use and distribution of the Program as soon as +reasonably practicable. However, Recipient's obligations under this Agreement +and any licenses granted by Recipient relating to the Program shall continue +and survive. + +Everyone is permitted to copy and distribute copies of this Agreement, but in +order to avoid inconsistency the Agreement is copyrighted and may only be +modified in the following manner. The Agreement Steward reserves the right to +publish new versions (including revisions) of this Agreement from time to +time. No one other than the Agreement Steward has the right to modify this +Agreement. The Eclipse Foundation is the initial Agreement Steward. The +Eclipse Foundation may assign the responsibility to serve as the Agreement +Steward to a suitable separate entity. Each new version of the Agreement will +be given a distinguishing version number. The Program (including +Contributions) may always be distributed subject to the version of the +Agreement under which it was received. In addition, after a new version of the +Agreement is published, Contributor may elect to distribute the Program +(including its Contributions) under the new version. Except as expressly +stated in Sections 2(a) and 2(b) above, Recipient receives no rights or +licenses to the intellectual property of any Contributor under this Agreement, +whether expressly, by implication, estoppel or otherwise. All rights in the +Program not expressly granted under this Agreement are reserved. + +This Agreement is governed by the laws of the State of New York and the +intellectual property laws of the United States of America. No party to this +Agreement will bring a legal action under this Agreement more than one year +after the cause of action arose. Each party waives its rights to a jury trial in +any resulting litigation. \ No newline at end of file diff --git a/Readme.md b/Readme.md new file mode 100644 index 0000000..512f755 --- /dev/null +++ b/Readme.md @@ -0,0 +1,11 @@ +# TDL Examples project + +This repository collects a series of examples of TDL packages. + +More info at [TDL website](https://tdl.etsi.org) + +## License + +If not specified otherwise, any software in this repository is subject to the Eclipse Public License v1. + +See LICENSE.txt for the complete text of the license. diff --git a/standard-tests/3gpp/IMS.tdlan2 b/standard-tests/3gpp/IMS.tdlan2 new file mode 100644 index 0000000..37e2b6c --- /dev/null +++ b/standard-tests/3gpp/IMS.tdlan2 @@ -0,0 +1,145 @@ +/* +Copyright (c) ETSI 2017. + +This software is subject to copyrights owned by ETSI. Non-exclusive permission +is hereby granted, free of charge, to copy, reproduce and amend this file +under the following conditions: It is provided "as is", without warranty of any +kind, expressed or implied. + +ETSI shall never be liable for any claim, damages, or other liability arising +from its use or inability of use.This permission does not apply to any documentation +associated with this file for which ETSI keeps all rights reserved. The present +copyright notice shall be included in all copies of whole or part of this +file and shall not imply any sub-license right. + +*/ + +//Translated from [i.6], Section 4.5.1. +TDLan Specification IMS_NNI_General_Capabilities { + //Procedures carried out by a component of a test configuration + //or an actor during test execution + Action preConditions : "Pre-test conditions: + - HSS of IMS_A and of IMS B is configured according to table 1 + - UE_A and UE_B have IP bearers established to their respective + IMS networks as per clause 4.2.1 + - UE_A and IMS_A configured to use TCP for transport + - UE_A is registered in IMS_A using any user identity + - UE_B is registered user of IMS_B using any user identity + - MESSAGE request and response has to be supported at II-NNI + (TS 129 165 [16] + see tables 6.1 and 6.3)" ; + + //User-defined verdicts + //Alternatively the predefined verdicts may be used as well + Type Verdict ; + Verdict PASS ; + Verdict FAIL ; + + //User-defined annotation types + Annotation TITLE ; //Test description title + Annotation STEP ; //Step identifiers in source documents + Annotation PROCEDURE ; //Informal textual description of a test step + Annotation PRECONDITION ; //Identify pre-condition behaviour + Annotation PREAMBLE ; //Identify preamble behaviour. + Annotation SUMMARY ; //Informal textual description of test sequence + + //Test objectives (copied verbatim from source document) + Test Objective TP_IMS_4002_1 { + //Location in source document + from : "ts_18601102v030101p.pdf::4.5.1.1 (CC 1)" ; + //Further reference to another document + from : "TS 124 229 [1], clause 4.2A, paragraph 1" ; + description : "ensure that { + when { UE_A sends a MESSAGE to UE_B + containing a Message_Body greater than 1 300 + bytes } + then { IMS_B receives the MESSAGE containing the + Message_Body greater than 1 300 bytes } + }" ; + } + Test Objective UC_05_I { + //Only a reference to corresponding section in the source document + from : "ts_18601102v030101p.pdf::4.4.4.2" ; + } + + //Relevant data definitions + Type MSG (optional TCP of type CONTENT); + MSG MESSAGE ; + MSG DING ; + MSG DELIVERY_REPORT ; + MSG M_200_OK ; + + Type CONTENT ; + CONTENT tcp; + + Time seconds; + seconds default_timeout; + + //Gate type definitions. + Gate Type defaultGT accepts MSG, CONTENT ; + + //Component type definitions + //In this case they may also be reduced to a single component type + Component Type USER having { + gate g of type defaultGT ; + } + Component Type UE having { + gate g of type defaultGT ; + } + Component Type IMS having { + gate g of type defaultGT ; + } + Component Type IBCF having { + gate g of type defaultGT ; + } + + //Test configuration definition + Test Configuration CF_INT_CALL { + create Tester USER_A of type USER; + create Tester UE_A of type UE; + create Tester IMS_A of type IMS; + create Tester IBCF_A of type IBCF; + create Tester IBCF_B of type IBCF; + create SUT IMS_B of type IMS; + create Tester UE_B of type UE; + create Tester USER_B of type USER; + connect USER_A.g to UE_A.g ; + connect UE_A.g to IMS_A.g ; + connect IMS_A.g to IBCF_A.g ; + connect IBCF_A.g to IBCF_B.g ; + connect IBCF_B.g to IMS_B.g ; + connect IMS_B.g to UE_B.g ; + connect UE_B.g to USER_B.g ; + } + + //Test description definition + Test Description TD_IMS_MESS_0001 uses configuration CF_INT_CALL { + //Pre-conditions from the source document + perform action preConditions with { PRECONDITION ; }; + + //Test sequence + USER_A.g sends MESSAGE to UE_A.g with { STEP : "1" ; } ; + UE_A.g sends MESSAGE to IMS_A.g with { STEP : "2" ; } ; + IMS_A.g sends MESSAGE to IBCF_A.g with { STEP : "3" ; } ; + IBCF_A.g sends MESSAGE to IBCF_B.g with { STEP : "4" ; } ; + IBCF_B.g sends MESSAGE (TCP = tcp) to IMS_B.g with { STEP : "5" ; } ; + IMS_B.g sends MESSAGE to UE_B.g with { STEP : "6" ; } ; + UE_B.g sends DING to USER_B.g with { STEP : "7" ; } ; + UE_B.g sends M_200_OK to IMS_B.g with { STEP : "8" ; } ; + IMS_B.g sends M_200_OK to IBCF_B.g with { STEP : "9" ; } ; + IBCF_B.g sends M_200_OK to IBCF_A.g with { STEP : "10" ; } ; + IBCF_A.g sends M_200_OK to IMS_A.g with { STEP : "11" ; } ; + IMS_A.g sends M_200_OK to UE_A.g with { STEP : "12" ; } ; + alternatively { + UE_A.g sends DELIVERY_REPORT to USER_A.g with { STEP : "13" ; } ; + } or { + gate USER_A.g is quiet for default_timeout; + } + } with { + SUMMARY : "IMS network shall support SIP messages greater than + 1 500 bytes" ; + } +} with { + Note : "Taken from ETSI TS 186 011-2 V3.1.1 (2011-06)" ; + TITLE : "SIP messages longer than 1 500 bytes" ; +} \ No newline at end of file diff --git a/standard-tests/etsi-nfv-isg/lcm.tdlan2 b/standard-tests/etsi-nfv-isg/lcm.tdlan2 new file mode 100644 index 0000000..7116f2a --- /dev/null +++ b/standard-tests/etsi-nfv-isg/lcm.tdlan2 @@ -0,0 +1,56 @@ +/* +Copyright (c) ETSI 2017. + +This software is subject to copyrights owned by ETSI. Non-exclusive permission +is hereby granted, free of charge, to copy, reproduce and amend this file +under the following conditions: It is provided "as is", without warranty of any +kind, expressed or implied. + +ETSI shall never be liable for any claim, damages, or other liability arising +from its use or inability of use.This permission does not apply to any documentation +associated with this file for which ETSI keeps all rights reserved. The present +copyright notice shall be included in all copies of whole or part of this +file and shall not imply any sub-license right. +*/ +Package NFV_CRM_All { + + Import all from nfv_tst_007_commons; + + Type MSG; + + /* TEST CASE: TD_NFV_CRM_ALLOCATE_001, Allocate compute resource operation */ + + Test Objective TP_NFV_CRM_ALLOCATE_001 { + from: "NFV TST GR 007, clause 7.3.1.1"; + description : "ensure that { + NFVO/VNFM can retrieve the information of a software image from + the image repository managed by the VIM + }"; + } + with { + APPLICABILITY : + "- NFVO/VNFM can query software image information on the VIM + "; + } + + Action preConditions : "Pre-test conditions: + - The software to be queried is added to the image repository managed by the VIM + (TD_NFV_SWIM_ADD_001) + "; + + MSG query_image_xyz; + MSG query_all_images; + MSG list_with_image_xyz_info; + MSG image_xyz_info; + + Test Description TD_NFV_SWIM_QUERY_001 uses configuration NFV_TST_007_conf_1 { + perform action preConditions with { PRECONDITION ; }; + + tstSym.tst sends query_image_xyz to nfvo.tst with { STEP : "1"; TYPE: "stimulus" ; } ; + + tstSym.tst sends query_all_images to vim.tst with {STEP : "2" ; TYPE: "IOP Check" ; } ; + vim.tst sends list_with_image_xyz_info to tstSym.tst with { STEP: "2" ; TYPE: "IOP Check" ;} ; + + nfvo.tst sends image_xyz_info to tstSym.tst with { STEP: "3" ; TYPE: "IOP Check" ; } ; + } +} diff --git a/standard-tests/etsi-nfv-isg/tst-007-commons.tdlan2 b/standard-tests/etsi-nfv-isg/tst-007-commons.tdlan2 new file mode 100644 index 0000000..f2a6e4d --- /dev/null +++ b/standard-tests/etsi-nfv-isg/tst-007-commons.tdlan2 @@ -0,0 +1,72 @@ +/* +Copyright (c) ETSI 2017. + +This software is subject to copyrights owned by ETSI. Non-exclusive permission +is hereby granted, free of charge, to copy, reproduce and amend this file +under the following conditions: It is provided "as is", without warranty of any +kind, expressed or implied. + +ETSI shall never be liable for any claim, damages, or other liability arising +from its use or inability of use.This permission does not apply to any documentation +associated with this file for which ETSI keeps all rights reserved. The present +copyright notice shall be included in all copies of whole or part of this +file and shall not imply any sub-license right. +*/ +Package nfv_tst_007_commons { + + Type MSG; + Gate Type TestPort accepts MSG; + Annotation PRECONDITION ; + Annotation STEP; + Annotation TYPE; + Annotation APPLICABILITY; + + Component Type NFVO having { + gate tst of type TestPort ; + gate toVnfm of type TestPort; + gate toVim of type TestPort; + } + + Component Type VNFM having { + gate tst of type TestPort ; + gate toNfvo of type TestPort; + gate toVim of type TestPort; + } + + Component Type VIM having { + gate tst of type TestPort ; + gate toVnfm of type TestPort; + } + + Component Type NFVI having { + gate tst of type TestPort ; + gate toVim of type TestPort; + gate toEmvnf of type TestPort; + } + + Component Type EMVNF having { + gate tst of type TestPort ; + gate toVnfm of type TestPort; + } + + Component Type TestSystem having { + gate tst of type TestPort; + } + + Test Configuration NFV_TST_007_conf_1 { + create Tester tstSym of type TestSystem; + create SUT nfvo of type NFVO; + create SUT vnfm of type VNFM; + create SUT vim of type VIM; + create SUT emvnf of type EMVNF; + create SUT nfvi of type NFVI; + + connect tstSym.tst to nfvo.tst; + connect tstSym.tst to vnfm.tst; + connect tstSym.tst to vim.tst; + connect tstSym.tst to emvnf.tst; + connect tstSym.tst to nfvi.tst; + + } + +} \ No newline at end of file diff --git a/standard-tests/onem2m/cse_dmr.tplan2 b/standard-tests/onem2m/cse_dmr.tplan2 new file mode 100644 index 0000000..d1f46be --- /dev/null +++ b/standard-tests/onem2m/cse_dmr.tplan2 @@ -0,0 +1,72 @@ +/* +Copyright (c) ETSI 2017. + +This software is subject to copyrights owned by ETSI. Non-exclusive permission +is hereby granted, free of charge, to copy, reproduce and amend this file +under the following conditions: It is provided "as is", without warranty of any +kind, expressed or implied. + +ETSI shall never be liable for any claim, damages, or other liability arising +from its use or inability of use.This permission does not apply to any documentation +associated with this file for which ETSI keeps all rights reserved. The present +copyright notice shall be included in all copies of whole or part of this +file and shall not imply any sub-license right. +*/ +Package onem2m_cse_dmr { + + Domain { + pics: + - PIC_CSE + ; + entities: + - AE + - IUT + ; + events: + - being_in + - registered + - created + - child_resource + - privileges + - receives + - initial_state + - perform_DELETE_operation_on + - increments + - sends + - container_resource + ; + } + + Test Purpose { + TP Id "TP/oneM2M/CSE/DMR/DEL/005" + + Test objective + "Check that the state Tag attribute of a container + resource is created when a child resource is deleted" + + Reference "TS-0001 10.1.4" + PICS Selection PIC_CSE + + Initial conditions with { + the IUT entity being_in the initial_state + and the IUT entity having registered the AE + and the IUT entity having created a non_empty_container_resource + and the AE entity having privileges to perform_DELETE_operation_on + the TARGET_CHILD_RESOURCE_ADDRESS + } + + Expected behaviour + ensure that { + when { + the IUT entity receives a valid DELETE Request containing + To indicating value TARGET_CHILD_RESOURCE_ADDRESS, + From indicating value AE_ID; + } + then { + the IUT entity increments the stateTag attribute in the container_resource + and the IUT entity sends a valid Response containing + Response Status Code set to 2002; /* (DELETED) */ + } + } + } +} \ No newline at end of file -- GitLab