Commit cba2c8d4 authored by Michele Carignani's avatar Michele Carignani

Merge branch 'latest-open-draft'

parents 9ecb6cb6 4688594a
......@@ -7,7 +7,13 @@
cd "$(dirname "$0")"
cd ./docker
run_dir="$(pwd)"
./docker/build-container.sh
./docker/run-container.sh "${run_dir}"
./build.sh
#./run.sh
cd -
exit 0
# MEC Testing Framework in TTCN-3
# MEC Testing Framework in TTCN-3 - - GS 032-3
## Introduction
This repositories contains the test specifications and test adapter code for MEC Testing project in TTCN-3.
This repositories contains the test specifications and test adapter code for MEC API Conformance Testing in TTCN-3, GS 032-3.
Latest publicly available drafts are available at https://docbox.etsi.org/isg/mec/open.
**{- Disclaimer: The content of this repository is related to a DRAFT, i.e. a working document, of ETSI ISG MEC. -}**
{-The content of the repository is provided for information only and is still under development. It may be updated, replaced, or removed at any time. Do not use as reference material. -}
For more information on ETSI ISG Multi-access Edge Computing (MEC), visit https://www.etsi.org/technologies/multi-access-edge-computing.
## Contact information
Email at cti_support at etsi dot org
Email at `cti_support` at `etsi` dot `org`.
## License
Unless specified otherwise, the content of this repository and the files contained are released under the BSD-3-Clause license.
See the attached LICENSE file or visit https://forge.etsi.org/legal-matters.
## Standard links
- Multi-access Edge Computating standards, accessible [here](https://www.etsi.org/standards#page=1&search=MEC&title=1&etsiNumber=1&content=1&version=0&onApproval=1&published=1&historical=1&startDate=1988-01-15&endDate=2019-05-06&harmonized=0&keyword=&TB=&stdType=&frequency=&mandate=&collection=&sort=1).
......
This diff is collapsed.
#pragma once
#include <memory>
#include "codec.hh"
#include "params.hh"
class Base_Type;
class Record_Type;
class TTCN_Typedescriptor_t;
class TTCN_Buffer;
namespace LibItsHttp__TypesAndValues {
class HttpMessage;
class Request;
class Response;
class HeaderLines;
class HeaderLine;
}
namespace LibItsHttp__MessageBodyTypes {
class HttpMessageBody;
}
struct encoding_context {
unsigned int length;
unsigned char is_content_length_present;
encoding_context() { reset(); };
void reset() { length = -1; is_content_length_present = 0x00; };
};
struct decoding_context {
unsigned int length;
unsigned char is_binary;
bool chunked;
decoding_context() { reset(); };
void reset() { length = -1; is_binary = 0x00; chunked = false; };
};
class http_codec: public codec <
LibItsHttp__TypesAndValues::HttpMessage,
LibItsHttp__TypesAndValues::HttpMessage>
{
encoding_context _ec;
decoding_context _dc;
std::map<std::string, std::unique_ptr<codec<Record_Type, Record_Type> > > _codecs;
public:
explicit http_codec() : codec<LibItsHttp__TypesAndValues::HttpMessage, LibItsHttp__TypesAndValues::HttpMessage>(), _ec(), _dc(), _codecs() { };
virtual ~http_codec() { };
virtual int encode (const LibItsHttp__TypesAndValues::HttpMessage&, OCTETSTRING& data);
virtual int decode (const OCTETSTRING& data, LibItsHttp__TypesAndValues::HttpMessage&, params* params = NULL);
void set_payload_codecs(const std::string& p_codecs);
private:
int encode_request (const LibItsHttp__TypesAndValues::Request& p_request, TTCN_Buffer& p_encoding_buffer);
int encode_response (const LibItsHttp__TypesAndValues::Response& p_response, TTCN_Buffer& p_encoding_buffer);
int encode_body(const LibItsHttp__MessageBodyTypes::HttpMessageBody& p_message_body, OCTETSTRING& p_encoding_buffer, const std::string& p_content_type);
int decode_headers(TTCN_Buffer& decoding_buffer, LibItsHttp__TypesAndValues::HeaderLines& headers, std::string& p_content_type);
int decode_header(CHARSTRING& header_line, LibItsHttp__TypesAndValues::HeaderLine& header);
int decode_body(TTCN_Buffer& decoding_buffer, LibItsHttp__MessageBodyTypes::HttpMessageBody& message_body, const std::string& p_content_type);
int get_line(TTCN_Buffer& buffer, CHARSTRING& to, const bool concatenate_header_lines = false);
}; // End of class http_codec
#pragma once
#include <memory>
#include "codec.hh"
#include "params.hh"
class Base_Type;
class Record_Type;
class TTCN_Typedescriptor_t;
class TTCN_Buffer;
namespace LibItsHttp__TypesAndValues {
class HttpMessage;
class Request;
class Response;
class Headers;
class Header;
}
namespace LibItsHttp__MessageBodyTypes {
class HttpMessageBody;
}
struct encoding_context {
unsigned int length;
unsigned char is_content_length_present;
encoding_context() { reset(); };
void reset() { length = -1; is_content_length_present = 0x00; };
};
struct decoding_context {
unsigned int length;
unsigned char is_binary;
bool chunked;
decoding_context() { reset(); };
void reset() { length = -1; is_binary = 0x00; chunked = false; };
};
class http_codec: public codec <
LibItsHttp__TypesAndValues::HttpMessage,
LibItsHttp__TypesAndValues::HttpMessage>
{
encoding_context _ec;
decoding_context _dc;
std::map<std::string, std::unique_ptr<codec<Record_Type, Record_Type> > > _codecs;
public:
explicit http_codec() : codec<LibItsHttp__TypesAndValues::HttpMessage, LibItsHttp__TypesAndValues::HttpMessage>(), _ec(), _dc(), _codecs() { };
virtual ~http_codec() { };
virtual int encode (const LibItsHttp__TypesAndValues::HttpMessage&, OCTETSTRING& data);
virtual int decode (const OCTETSTRING& data, LibItsHttp__TypesAndValues::HttpMessage&, params* params = NULL);
void set_payload_codecs(const std::string& p_codecs);
private:
int encode_request (const LibItsHttp__TypesAndValues::Request& p_request, TTCN_Buffer& p_encoding_buffer);
int encode_response (const LibItsHttp__TypesAndValues::Response& p_response, TTCN_Buffer& p_encoding_buffer);
int encode_body(const LibItsHttp__MessageBodyTypes::HttpMessageBody& p_message_body, OCTETSTRING& p_encoding_buffer, const std::string& p_content_type);
int decode_headers(TTCN_Buffer& decoding_buffer, LibItsHttp__TypesAndValues::Headers& headers, std::string& p_content_type);
int decode_header(CHARSTRING& header_line, LibItsHttp__TypesAndValues::Header& header);
int decode_body(TTCN_Buffer& decoding_buffer, LibItsHttp__MessageBodyTypes::HttpMessageBody& message_body, const std::string& p_content_type);
int get_line(TTCN_Buffer& buffer, CHARSTRING& to, const bool concatenate_header_lines = false);
}; // End of class http_codec
This diff is collapsed.
FROM ubuntu:18.04
FROM stfubuntu:18.04
MAINTAINER ETSI STF 569
MAINTAINER ETSI STF569
LABEL description="STF569 Docker Image"
LABEL description="STF569_Mec Docker Image"
ENV TERM=xterm
ENV HOSTNAME docker-titan-STF569
ENV TERM=linux \
HOME=/home/etsi \
HOSTNAME=docker-titan-STF569
RUN DEBIAN_FRONTEND=noninteractive apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install software-properties-common -y \
&& DEBIAN_FRONTEND=noninteractive add-apt-repository ppa:linuxuprising/java -y
COPY home /home/etsi
RUN DEBIAN_FRONTEND=noninteractive apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get --allow-unauthenticated install -y \
autoconf \
bison \
build-essential \
cmake \
curl \
dos2unix \
doxygen \
emacs \
expect \
flex \
g++-8 \
gcc-8 \
gdb \
git-core \
gnutls-bin \
graphviz \
inetutils-ping \
libglib2.0-dev \
libpcap-dev \
libgcrypt-dev \
libncurses5-dev \
libssl-dev \
libtool-bin \
libtool \
libwebsockets-dev \
libwireshark-dev \
libxml2-dev \
lsof \
ntp \
openssh-server \
pkg-config \
qt5-default \
qttools5-dev \
qtmultimedia5-dev \
libqt5svg5-dev \
subversion \
sudo \
sshpass \
tcpdump \
texlive-font-utils \
tshark \
tzdata \
valgrind \
vim \
vsftpd \
xutils-dev \
tree \
unzip \
wget \
xsltproc \
&& DEBIAN_FRONTEND=noninteractive apt-get autoremove --purge -y \
&& DEBIAN_FRONTEND=noninteractive apt-get autoclean \
&& rm -rf /var/lib/apt/lists/*
RUN echo "docker-titan-STF569" > /etc/hostname \
&& echo "root:etsi" | chpasswd
RUN useradd --create-home --shell /bin/bash --user-group etsi --groups sudo \
&& echo "etsi:etsi" | chpasswd \
&& adduser etsi sudo
RUN cd /home/etsi \
&& echo "" >> /home/etsi/.bashrc \
&& echo "export HOME=/home/etsi" >> /home/etsi/.bashrc \
&& echo "export LD_LIBRARY_PATH=/home/etsi/dev/etsi_mec/lib:$LD_LIBRARY_PATH" >> /home/etsi/.bashrc \
&& echo "export PATH=/home/etsi/bin:$PATH" >> /home/etsi/.bashrc \
&& echo "cd /home/etsi" >> /home/etsi/.bashrc \
&& echo ". ./devenv.bash" >> /home/etsi/.bashrc \
&& . /home/etsi/.bashrc \
&& mkdir -p bin lib include tmp frameworks docs man dev \
&& chown etsi:etsi bin lib include tmp frameworks docs man dev \
&& echo "etsi ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
# Seems that COPY does not work as expected, to be investaged
#==> Fallback to more secured solution
ADD . /home/etsi/dev/STF569_Mec
#COPY home home/etsi
# RUN git clone https://forge.etsi.org/gitlab/mec/gs032p3-ttcn-test-suite.git /home/etsi/dev/STF569_Mec
RUN chown -R etsi /home/etsi/dev/STF569_Mec/ && cd /home/etsi/dev/STF569_Mec
RUN cd /home/etsi \
&& chown -R etsi:etsi . \
&& ls ./etc/init.d/*.sh | while read S; do chmod 0750 "$S" || exit 1; done
USER etsi
RUN cd /home/etsi/frameworks \
&& git clone https://git.savannah.gnu.org/git/osip.git ./osip \
&& cd osip \
&& ./autogen.sh \
&& ./configure --prefix=/home/etsi \
&& make && make install
RUN cd /home/etsi/frameworks \
&& wget -q 'http://ftp.halifax.rwth-aachen.de/eclipse/technology/epp/downloads/release/photon/R/eclipse-cpp-photon-R-linux-gtk-x86_64.tar.gz' \
&& tar -zxvf ./eclipse-cpp-photon-R-linux-gtk-x86_64.tar.gz \
&& rm -f ./eclipse-cpp-photon-R-linux-gtk-x86_64.tar.gz \
&& cd /home/etsi/dev/STF569_Mec \
&& cd /home/etsi/dev/STF569_Mec/ttcn \
&& git clone https://forge.etsi.org/gitlab/LIBS/LibCommon.git ./LibCommon \
&& git clone -bSTF525 https://forge.etsi.org/gitlab/LIBS/LibIts ./LibIts \
&& cd /home/etsi/dev/STF569_Mec/ttcn/LibIts \
&& rm -fr asn1 t3q xsd \
&& cd ttcn && rm -fr BTP CALM CAM Common DCC DENM GeoNetworking Ipv6OverGeoNetworking IVIM MapemSpatem Pki Security SremSsem V2G \
&& cd /home/etsi/dev/STF569_Mec/scripts \
&& chmod 775 *.bash devenv.bash.* \
&& cd /home/etsi \
&& ln -sf /home/etsi/dev/STF569_Mec/scripts/devenv.bash.ubuntu /home/etsi/devenv.bash \
&& ls -ltr /home/etsi \
&& export HOME=/home/etsi \
&& . /home/etsi/devenv.bash \
&& cd /home/etsi/dev/STF569_Mec/scripts \
&& ./build_titan.bash \
&& . /home/etsi/devenv.bash \
&& ./update_mec_project.bash \
&& cd /home/etsi/dev/etsi_mec/src/AtsMec/objs \
&& ../bin/mec_generate_makefile.bash
RUN cd ${HOME} \
&& export PATH=$HOME/bin:$PATH \
&& ls ${HOME}/etc/init.d/*.sh | while read S; do /bin/bash -c "$S" || exit 1; done \
&& rm -fr ${HOME}/etc
CMD ["/bin/bash"]
# That's all Floks
FROM ubuntu:18.04
MAINTAINER ETSI STF
LABEL description="STF Docker Ubuntu image"
ENV TERM=linux \
HOSTNAME=docker-STF
RUN echo "docker-STF-dev" > /etc/hostname \
&& DEBIAN_FRONTEND=noninteractive apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get dist-upgrade -y \
&& DEBIAN_FRONTEND=noninteractive apt-get install software-properties-common -y \
&& DEBIAN_FRONTEND=noninteractive add-apt-repository ppa:linuxuprising/java -y \
&& DEBIAN_FRONTEND=noninteractive apt-get update \
&& ( echo "oracle-java14-installer shared/accepted-oracle-license-v1-2 boolean true" | debconf-set-selections -v ) \
&& DEBIAN_FRONTEND=noninteractive apt-get --allow-unauthenticated install -y \
autoconf \
bison \
build-essential \
cmake \
curl \
dos2unix \
doxygen \
emacs \
expect \
flex \
g++-8 \
gcc-8 \
gdb \
git-core \
gnutls-bin \
graphviz \
iputils-ping \
libffi-dev \
libglib2.0-dev \
libgcrypt-dev \
libncurses5-dev \
libpcap-dev \
libqt5svg5-dev \
libssl-dev \
libtool-bin \
libtool \
libwireshark-dev \
libxml2-dev \
libxml2-utils \
libyaml-dev \
lsof \
net-tools \
ntp \
oracle-java14-installer \
oracle-java14-set-default \
openssh-server \
pkg-config \
python3-dev \
python3-pip \
python3-setuptools \
qt5-default \
qtmultimedia5-dev \
subversion \
sudo \
sshpass \
tcpdump \
texlive-font-utils \
tshark \
tzdata \
valgrind \
vim \
vsftpd \
xutils-dev \
tree \
unzip \
wget \
xsltproc \
&& DEBIAN_FRONTEND=noninteractive apt-get autoremove --purge -y \
&& DEBIAN_FRONTEND=noninteractive apt-get autoclean \
&& pip3 install --upgrade setuptools pip \
&& useradd --create-home --shell /bin/bash etsi \
&& echo "etsi:etsi" | chpasswd \
&& adduser etsi sudo \
&& echo "" >> /etc/profile \
&& echo 'export HOME=/home/etsi' >> /etc/profile \
&& echo 'export LD_LIBRARY_PATH=${HOME}/lib:$LD_LIBRARY_PATH' >> /etc/profile \
&& echo 'export PATH=${HOME}/bin:$PATH' >> /etc/profile \
&& echo 'cd ${HOME}' >> /etc/profile \
&& echo ". ./devenv.bash" >> /etc/profile \
&& cd /home/etsi \
&& echo "" >> ./.profile \
&& echo 'export HOME=/home/etsi' >> ./.profile \
&& echo 'export LD_LIBRARY_PATH=${HOME}/lib:$LD_LIBRARY_PATH' >> ./.profile \
&& echo 'export PATH=${HOME}/bin:$PATH' >> ./.profile \
&& echo 'cd ${HOME}' >> ./.profile \
&& echo ". ./devenv.bash" >> ./.profile \
&& mkdir -p bin lib include tmp frameworks docs man dev \
&& chown -R etsi:etsi *
EXPOSE 22
CMD ["/bin/bash"]
# That's all Floks
# HOWTO build docker images
## General imformation
Pre-requisites on your host machine:
- Install [Docker](https://docs.docker.com/install/)
#### From Windows host:
- Install [Virtualbox](https://www.virtualbox.org/manual/ch01.html)
- Install any X Server. For example [VcXsrv](https://sourceforge.net/projects/vcxsrv/)
#### From Mac host:
- Install [Virtualbox](https://www.virtualbox.org/manual/ch01.html)
- Install [XQuartz](https://www.xquartz.org)
#### From Linux host:
- No other requirements
## Build docker image
For Windows host, rename ```build.cmd.a``` and ```run.cmd.a``` to ```build.cmd``` and ```run.cmd``` respectivelly.
Special scrips ```build.sh``` (or ```build.cmd```) can be executed to automatically build all necessary images.
There are several build stages:
1. Build STF Ubuntu 18.04 image
2. Install Titan from Github
3. Install Eclipse and Titan Eclipse plugin into ~/frameworks/titan
4. Install asn1c into ~/frameworks/asn1c
5. Checkout STF569 sources from ETSI svn repository using default credentials
6. Build ASN.1 recoder library
7. Build certificate generation tool
## Import and build MEC project
### Run Docker image
#### From Windows host:
1. Authorize Docker container to interact with the XServer:
Go to the X Server installation directory and add the Docker container ip address to the file ```X0.hosts```:
```
localhost
inet6:localhost
192.168.99.100
```
Execute ```run.cmd``` or launch a command line window and run the command
```docker run -it --net=host -e DISPLAY=192.168.99.1:0 stf569_mec:latest```
NOTE: Modify the IP address in the command for the address of 'VirtualBox Hot-Only Network'.
#### From Linux host:
Execute ```run.sh``` or launch a command line window and run the command
```sh
docker run -it --net=host -e DISPLAY=$DISPLAY \
-v /tmp/.X11-unix:/tmp/.X11-unix stf569_mec:latest
```
### Import eclipse project
1. Whithin the docker container, on the linux command prompt type:
```eclipse -data ~/dev/Workspace```
Eclipse IDE shall be shown on the hosts Screen.
Possible problems:
- eclipse not found: check the PATH environment variable. It shall contain $HOME/bin path. Otherwise add it:
```export PATH=$HOME/bin:$PATH```
2. Run "File -> Import" and import the ```~/dev/STF569_Mec/STF569.tpd``` file.
This can take a time, be patient.
**Do not run build in eclipse**, we don't have enough time.
### Build the project
```cd ~/Workspace/STF569/bin```
```make```
Possible problems:
- Error in AbstractSocket build: Build it explicitly:
```cd ~/Workspace/Abstract_Socket_CNL113384/bin_ssl && make```
### Execute tests
1. Launch eclipse: ```eclipse -data ~/dev/Workspace```
2. Select configuration from the /etc/folder:
- AtsMec.cfg - Default MEC test suite.
3. Right-click on the configuration file and select **Run As -> TITAN Parallel launcher**
#!/bin/bash
# Copyright ETSI 2019
# See: https://forge.etsi.org/etsi-forge-copyright-statement.txt
#set -e
set -vx
DOCKER_FILE=./docker/Dockerfile
if [ -f ${DOCKER_FILE} ]
then
#check and build stf569_mec image
DOCKER_ID=`docker ps -a | grep -e stf569_mec | awk '{ print $1 }'`
if [ ! -z "${DOCKER_ID}" ]
then
docker rm --force stf569_mec
fi
docker build --tag stf569_mec --force-rm -f ${DOCKER_FILE} .
if [ "$?" != "0" ]
then
echo "Docker build failed: $?"
exit -1
fi
docker image ls -a
docker inspect stf569_mec:latest
if [ "$?" != "0" ]
then
echo "Docker inspect failed: $?"
exit -2
fi
else
exit -3
fi
# That's all Floks
exit 0
#!/bin/bash
# Copyright ETSI 2018-2020
# See: https://forge.etsi.org/etsi-forge-copyright-statement.txt
set -e
set -vx
#check and build stfubuntu image
if [ -z `docker images -q stfubuntu` ]; then
docker build --no-cache --tag stfubuntu:18.04 -f Dockerfile.stfubuntu --force-rm . || exit 1
fi
docker build --no-cache --tag stf569_mec --force-rm . || ( echo "Docker build failed: $?"; exit 1 )
docker images
docker inspect stf569_mec:latest || ( echo "Docker inspect failed: $?"; exit 1 )
# That's all Floks
exit 0
#!/bin/bash
#set -e
set -vx
echo -e "*****************************\n* Install titan\n*****************************\n"
SRC_DIR=${HOME}/frameworks/titan/titan.core
export TTCN3_DIR=$HOME/frameworks/titan/Install
[ -f /usr/bin/java ] && export JAVA_HOME=`readlink -f /usr/bin/java | sed "s:bin/java::"`
TITAN_REPO=`cat ${HOME}/etc/titan_repos.txt | grep 'titan\.core\.git' | head -n 1`
export PATH=$PATH:$TTCN3_DIR/bin
mkdir -p "$SRC_DIR"
cd "$SRC_DIR/.." || exit 1
# Install titan core
git clone --progress "$TITAN_REPO" || exit 1
cd titan.core || exit 1
cat >Makefile.personal <<EOF
TTCN3_DIR=$TTCN3_DIR
JNI=yes
GUI=yes
DEBUG=no
GEN_PDF=no
JDKDIR=$JAVA_HOME
EOF
make && make install || exit 1
# To be compiant with build_ttcn3.bash
# TODO Refactor build_ttcn3.bash & devenv.bash
mv ${TTCN3_DIR} ${SRC_DIR}
export TTCN3_DIR=${SRC_DIR}/Install
echo "export TTCN3_DIR=$TTCN3_DIR" >> $HOME/.bashrc
echo "export PATH=\$PATH:\$TTCN3_DIR/bin" >> $HOME/.bashrc
# Install other repos
cd $SRC_DIR/.. || exit 1
cat ${HOME}/etc/titan_repos.txt | grep -v -e '^\s*#' -e 'titan\.core' | while read REPO; do
[ -z $ $REPO ] && continue
WS=`echo $REPO | sed -e 's|.*/||g' -e 's|\.git||g'`
if git clone --progress "${REPO}" "${WS}"; then
[ -f "$WS/Makefile" ] && make -C "$WS"
fi
done
cd $HOME
#!/bin/bash
#set -e
set -vx
echo -e "*****************************\n* Install eclipse\n*****************************\n"
mkdir -p ${HOME}/frameworks
cd ${HOME}/frameworks || exit 1
wget --progress=dot:mega 'https://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/helios/SR2/eclipse-cpp-helios-SR2-linux-gtk-x86_64.tar.gz' -Oeclipse-cpp-helios-SR2-linux-gtk-x86_64.tar.gz || exit 1
tar -zxvf ./eclipse-cpp-helios-SR2-linux-gtk-x86_64.tar.gz || exit 1
ln -sf ${HOME}/frameworks/eclipse/eclipse ${HOME}/bin/eclipse
rm -f ./eclipse-cpp-helios-SR2-linux-gtk-x86_64.tar.gz
if wget --progress=dot:mega 'https://www.eclipse.org/downloads/download.php?file=/titan/TITAN_Designer_and_Executor_plugin-6.4.pl0.zip&r=1' -OTITAN_Designer_and_Executor_plugin.zip; then
eclipse/eclipse -noSplash -application org.eclipse.equinox.p2.director \
-destination ${HOME}/frameworks/eclipse \
-repository jar:file://${HOME}/frameworks/TITAN_Designer_and_Executor_plugin.zip!/ \
-installIU TITAN_Designer.feature.group,TITAN_Executor.feature.group,TITAN_Log_Viewer.feature.group,Titan_external_dependencies.feature.group,Titanium.feature.group,Titanium_external_dependencies.feature.group
rm -f TITAN_Designer_and_Executor_plugin.zip
fi
cd ${HOME}
#!/bin/bash
#set -e
set -vx
echo -e "*****************************\n* Install osip\n*****************************\n"
cd ${HOME}/frameworks
git clone https://git.savannah.gnu.org/git/osip.git ./osip
cd osip
./autogen.sh
./configure --prefix=/home/etsi
make && sudo make install
cd ${HOME}
#!/bin/bash
#set -e
set -vx
echo -e "*****************************\n* Checkout STF569 sources\n*****************************\n"
mkdir -p ${HOME}/dev && cd ${HOME}/dev || exit 1
git clone --recurse-submodules -b devel --single-branch https://forge.etsi.org/rep/mec/gs032p3-ttcn-test-suite.git STF569_Mec
cd /home/etsi/dev/STF569_Mec/ttcn
git clone https://forge.etsi.org/gitlab/LIBS/LibCommon.git ./LibCommon
git clone -bTTF0002 https://forge.etsi.org/gitlab/LIBS/LibIts ./LibIts
cd /home/etsi/dev/STF569_Mec/ttcn/LibIts
git checkout TTF0002
rm -fr asn1 t3q xsd
cd ttcn && rm -fr BTP CAM Common DENM GeoNetworking Ipv6OverGeoNetworking IVIM MapemSpatem Pki Security SremSsem
echo -e "*****************************\n* Set up environment\n*****************************\n"
cd /home/etsi/dev/STF569_Mec/scripts
ln -sf /home/etsi/dev/STF569_Mec/scripts/devenv.bash.ubuntu /home/etsi/devenv.bash
. /home/etsi/devenv.bash
set
echo -e "*****************************\n* Build Mec test suite\n*****************************\n"
cd /home/etsi/dev/STF569_Mec/scripts
./update_mec_project.bash
cd /home/etsi/dev/etsi_mec/src/AtsMec/objs
../bin/mec_generate_makefile.bash
echo -e "*****************************\n* Init Eclipse Workspace\n*****************************\n"
mkdir -p ${HOME}/dev/Workspace/STF569/bin/
cd ${HOME}/dev/Workspace/STF569