############################################################################### # Copyright (c) 2000-2016 Ericsson Telecom AB # All rights reserved. This program and the accompanying materials # are made available under the terms of the Eclipse Public License v1.0 # which accompanies this distribution, and is available at # http://www.eclipse.org/legal/epl-v10.html # # Contributors: # Balasko, Jeno # Lovassy, Arpad # ############################################################################### 1. GENERATING BUILD.XML build.xml is generated. The generated build.xml is modified manually: target TITAN_Executor_API_test is modified to fail in ant level if any testcase fails to make Jenkins show the failures failureproperty="test.failed" added to added after Steps to generate build.xml from Eclipse: 1. Right click on TITAN_Executor_API -> Export... 2. Select General/Ant Buildfiles JUnit will be included in build.xml 2. RUN JUNIT TESTS Requirements: Java 1.7 for compiling Titan with JNI Java SDK (JDK) 1.7 is needed $TTCN3_DIR is set to Titan install directory ${TTCN3_DIR}/lib/libmctrjninative.so exists and ${TTCN3_DIR}/lib is added to $LD_LIBRARY_PATH The test project depends on these external jars: junit.jar (JUnit4) Hamcrest core 1.3 https://code.google.com/p/hamcrest/downloads/list Test compiling and running from command line is done with this command: (NOTE: this script also compiles its dependecies) ant \ -lib \ -lib \ TITAN_Executor_API_test For example ant \ -lib ${LIB_DIR}/org.junit_4.11.0.v201303080030/junit.jar \ -lib ${LIB_DIR}/org.hamcrest.core_1.3.0.v201303031735.jar \ TITAN_Executor_API_test See build_and_run_test.sh, this script also check the dependencies before test compiling and running. 3. TROUBLESHOOTING Typical error situations during test running and their solutions 3.1 Error: java.lang.UnsatisfiedLinkError: org.eclipse.titan.executor.jni.JNIMiddleWare.init(I)J Reason: The Titan binaries you use are old (before 2014-12-11 or release before CRL 113 200/5 R1A), and since then the project became open source and that’s why all the java packages were renamed from com.ericsson.titan.* to org.eclipse.titan.* Solution: So you should use the latest release. You can download a new package from ttcn.ericsson.se/download/ Search for "TITAN packages", download the latest version You can extract it locally in your home directory, just make sure, that TTCN3_DIR is set properly PATH contains its bin directory LD_LIBRARY_PATH contains its lib directory 3.2 Error: .../lib/libmctrjninative.so: wrong ELF class: ELFCLASS64 (Possible cause: architecture word width mismatch) Reason: You use a 32-bit JDK on a 64-bit system. Solution: So you should download and use a new one. So download this file: jdk-7u75-linux-x64.tar.gz http://download.oracle.com Extract it to your home directory, you will get a directory like this: jdk-7u75-linux-x64 create a symlink to it: ln -s jdk-7u75-linux-x64 jdk set the following variables in your .bashrc JDKDIR=$HOME/jdk export JDKDIR PATH=$HOME/jdk/bin:${PATH} export PATH LD_LIBRARY_PATH=$HOME/jdk/lib:.:${LD_LIBRARY_PATH} export LD_LIBRARY_PATH In case of tcsh .cshrc.user setenv JDKDIR $HOME/jdk setenv JAVA_HOME $HOME/jdk setenv LD_LIBRARY_PATH ${JAVA_HOME}/lib:$LD_LIBRARY_PATH setenv PATH ${JAVA_HOME}/bin:$PATH Then start a new terminal and check the result with java -version 3.3 Error: org.eclipse.titan.executorapi.exception.JniExecutorJniLoadException: JNI dynamic library could not be loaded. Reason: libmctrjninative.so is missing or not found Solution: TTCN3_DIR must be added to LD_LIBRARY_PATH Add this line to .bashrc LD_LIBRARY_PATH=${TTCN3_DIR}/lib:${LD_LIBRARY_PATH} If Titan is built locally, Makefile.personal must contain the following lines: JNI := yes JDKDIR := $HOME/jdk