From 5bb85d030d19d5ad7bb8cab624c2be7b23280607 Mon Sep 17 00:00:00 2001 From: Botond Baranyi <botond.baranyi@ericsson.com> Date: Tue, 6 Apr 2021 16:23:35 +0200 Subject: [PATCH] Added test for bugfix 572603 Signed-off-by: Botond Baranyi <botond.baranyi@ericsson.com> Change-Id: I60b3b736e8be207db132168ebea1234508c809ae --- .../EncodeDecode/RAW/Bug572603/.gitignore | 8 + .../EncodeDecode/RAW/Bug572603/Bug572603.ttcn | 97 ++++++++++++ .../EncodeDecode/RAW/Bug572603/Makefile | 149 ++++++++++++++++++ .../EncodeDecode/RAW/Bug572603/config.cfg | 20 +++ regression_test/EncodeDecode/RAW/Makefile | 2 +- 5 files changed, 275 insertions(+), 1 deletion(-) create mode 100644 regression_test/EncodeDecode/RAW/Bug572603/.gitignore create mode 100644 regression_test/EncodeDecode/RAW/Bug572603/Bug572603.ttcn create mode 100644 regression_test/EncodeDecode/RAW/Bug572603/Makefile create mode 100644 regression_test/EncodeDecode/RAW/Bug572603/config.cfg diff --git a/regression_test/EncodeDecode/RAW/Bug572603/.gitignore b/regression_test/EncodeDecode/RAW/Bug572603/.gitignore new file mode 100644 index 000000000..3dc6342ac --- /dev/null +++ b/regression_test/EncodeDecode/RAW/Bug572603/.gitignore @@ -0,0 +1,8 @@ +Bug572603 +Bug572603.exe +Bug572603*.cc +Bug572603*.hh +*.d +compile +Bug572603*.log +result.txt diff --git a/regression_test/EncodeDecode/RAW/Bug572603/Bug572603.ttcn b/regression_test/EncodeDecode/RAW/Bug572603/Bug572603.ttcn new file mode 100644 index 000000000..fbfc34947 --- /dev/null +++ b/regression_test/EncodeDecode/RAW/Bug572603/Bug572603.ttcn @@ -0,0 +1,97 @@ +/****************************************************************************** + * 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: + * Baranyi, Botond – initial implementation + * + ******************************************************************************/ + +module Bug572603 { + +type record UnknownIE { + integer ie_code, + integer ie_length, + octetstring ie_data +} with { + variant (ie_length) "LENGTHTO(ie_data)" +} + +type record of UnknownIE UnknownIE_list + +type record IE1 { + integer ie_code, + integer ie_length, + octetstring ie_data +} with { + variant "PRESENCE(ie_code = 1)" + variant (ie_length) "LENGTHTO(ie_data)" +} + +type record of IE1 IE1_list + +type record IE2 { + integer ie_code, + integer ie_length, + octetstring ie_data +} with { + variant "PRESENCE(ie_code = 2)" + variant (ie_length) "LENGTHTO(ie_data)" +} + +type record of IE2 IE2_list + +type record IE3 { + integer ie_code, + integer ie_length, + octetstring ie_data +} with { + variant "PRESENCE(ie_code = 3)" + variant (ie_length) "LENGTHTO(ie_data)" +} + +type record of IE3 IE3_list + + +type set PDU{ + IE1 f_ie1, + IE2_list f_ie2_list optional, + IE3 f_ie3, + UnknownIE_list f_other optional +} with { + variant (f_ie2_list) "REPEATABLE(yes)" + variant (f_other) "REPEATABLE(yes)" +} + +external function enc_PDU(in PDU pdu) return octetstring +with { extension "prototype(convert)" extension "encode(RAW)" } + +external function dec_PDU(in octetstring stream) return PDU +with { extension "prototype(convert)" extension "decode(RAW)" } + +type component CT {} + +testcase tc_bug572603() runs on CT { + var PDU v_pdu1 := { f_ie1 := { 1, 1, 'AA'O }, f_ie2_list := { { 2, 1, 'BB'O }, { 2, 1, 'BB'O } }, f_ie3 := { 3, 1, 'CC'O }, f_other := { { 4, 1, 'DD'O } } } + var PDU v_pdu2 + var octetstring v_oct := '0101AA0201BB0401DD0201BB0301CC'O; + v_pdu2 := dec_PDU(v_oct); + log(v_pdu1); + log(v_pdu2); + if (v_pdu1 == v_pdu2) { + setverdict(pass); + } else { + setverdict(fail, v_pdu2); + } +} + +control { + execute(tc_bug572603()); +} + +} with { + encode "RAW" +} diff --git a/regression_test/EncodeDecode/RAW/Bug572603/Makefile b/regression_test/EncodeDecode/RAW/Bug572603/Makefile new file mode 100644 index 000000000..f05619974 --- /dev/null +++ b/regression_test/EncodeDecode/RAW/Bug572603/Makefile @@ -0,0 +1,149 @@ +############################################################################## +# 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: +# Botond, Baranyi +# +############################################################################## +TOPDIR := ../../.. +include $(TOPDIR)/Makefile.regression + +# WARNING! This Makefile can be used with GNU make only. +# Other versions of make may report syntax errors in it. + +# +# Do NOT touch this line... +# +.PHONY: all archive check clean dep objects + +.SUFFIXES: .d + +# +# Set these variables... +# + +# Flags for dependency generation +CXXDEPFLAGS = -MM + +ifeq ($(PLATFORM), WIN32) +# Silence linker warnings. +# Overridden by Makefile.cfg +endif + +# Flags for the TTCN-3 and ASN.1 compiler: +COMPILER_FLAGS += + +# Execution mode: (either ttcn3 or ttcn3-parallel) +TTCN3_LIB = ttcn3$(RT2_SUFFIX)$(DYNAMIC_SUFFIX) + + +# +# You may change these variables. Add your files if necessary... +# + +# TTCN-3 modules of this project: +TTCN3_MODULES = Bug572603.ttcn + +# ASN.1 modules of this project: +ASN1_MODULES = + +# C++ source & header files generated from the TTCN-3 & ASN.1 modules of +# this project: +GENERATED_SOURCES = $(TTCN3_MODULES:.ttcn=.cc) $(ASN1_MODULES:.asn=.cc) +GENERATED_HEADERS = $(GENERATED_SOURCES:.cc=.hh) +ifdef SPLIT_TO_SLICES +POSTFIXES := $(foreach file, $(SPLIT_TO_SLICES), $(addsuffix $(file), _part_)) +POSTFIXES := $(foreach file, $(POSTFIXES), $(addprefix $(file), .cc)) +GENERATED_SOURCES2 := $(foreach file, $(GENERATED_SOURCES:.cc=), $(addprefix $(file), $(POSTFIXES))) +GENERATED_SOURCES += $(GENERATED_SOURCES2) +endif +# C/C++ Source & header files of Test Ports, external functions and +# other modules: +USER_SOURCES = +USER_HEADERS = $(USER_SOURCES:.cc=.hh) + +# Object files of this project that are needed for the executable test suite: +OBJECTS = $(GENERATED_OBJECTS) $(USER_OBJECTS) + +GENERATED_OBJECTS = $(GENERATED_SOURCES:.cc=.o) + +USER_OBJECTS = $(USER_SOURCES:.cc=.o) + +DEPFILES = $(USER_OBJECTS:.o=.d) $(GENERATED_OBJECTS:.o=.d) + + +# The name of the executable test suite: +TARGET = Bug572603$(EXESUFFIX) + + +# Rules for building the executable... +# + +all: $(TARGET) + +objects: $(OBJECTS) ; + +$(TARGET): $(OBJECTS) + if $(CXX) $(LDFLAGS) -o $@ $^ \ + -L$(TTCN3_DIR)/lib -l$(TTCN3_LIB) \ + -L$(OPENSSL_DIR)/lib -lcrypto \ + -L$(XMLDIR)/lib $($(PLATFORM)_LIBS); \ + then : ; else $(TTCN3_DIR)/bin/titanver $(OBJECTS); exit 1; fi + +.cc.o .c.o: + $(CXX) -c $(CPPFLAGS) $(CXXFLAGS) -o $@ $< + +.cc.d .c.d: + @echo Creating dependency file for '$<'; set -e; \ + $(CXX) $(CXXDEPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $< \ + | sed 's/\($*\)\.o[ :]*/\1.o $@ : /g' > $@; \ + [ -s $@ ] || rm -f $@ + +$(GENERATED_SOURCES) $(GENERATED_HEADERS): compile + @if [ ! -f $@ ]; then $(RM) compile; $(MAKE) compile; fi + +compile: $(TTCN3_MODULES) $(ASN1_MODULES) + $(TTCN3_COMPILER) $(COMPILER_FLAGS) $^ - $? + touch $@ + + +clean: + -$(RM) $(TARGET) $(OBJECTS) $(GENERATED_HEADERS) \ + $(GENERATED_SOURCES) compile $(DEPFILES) \ + tags *.log + +distclean: clean + -$(RM) $(DEPFILES) + + +dep: $(GENERATED_SOURCES) $(USER_SOURCES) ; + +ifeq ($(findstring n,$(MAKEFLAGS)),) +ifeq ($(filter clean distclean check compile archive diag,$(MAKECMDGOALS)),) +-include $(DEPFILES) +endif +endif + + + +diag: + $(TTCN3_COMPILER) -v 2>&1 + $(TTCN3_DIR)/bin/mctr_cli -v 2>&1 + $(CXX) -v 2>&1 + @echo TTCN3_DIR=$(TTCN3_DIR) + @echo OPENSSL_DIR=$(OPENSSL_DIR) + @echo XMLDIR=$(XMLDIR) + @echo PLATFORM=$(PLATFORM) + +# +# Add your rules here if necessary... +# + +run: $(TARGET) ./config.cfg + ./$^ 2> result.txt + cat result.txt + grep "Overall verdict: pass" result.txt diff --git a/regression_test/EncodeDecode/RAW/Bug572603/config.cfg b/regression_test/EncodeDecode/RAW/Bug572603/config.cfg new file mode 100644 index 000000000..d14794274 --- /dev/null +++ b/regression_test/EncodeDecode/RAW/Bug572603/config.cfg @@ -0,0 +1,20 @@ +############################################################################### +# 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: +# Botond, Baranyi +# +############################################################################### +[LOGGING] +LogFile := "Bug572603.log" +FileMask := LOG_ALL +ConsoleMask := TTCN_ERROR | TTCN_TESTCASE | TTCN_STATISTICS +LogSourceInfo := Yes +[EXECUTE] +Bug572603.control + +[TESTPORT_PARAMETERS] diff --git a/regression_test/EncodeDecode/RAW/Makefile b/regression_test/EncodeDecode/RAW/Makefile index 2584a2702..31bcd4f69 100644 --- a/regression_test/EncodeDecode/RAW/Makefile +++ b/regression_test/EncodeDecode/RAW/Makefile @@ -20,7 +20,7 @@ include $(TOPDIR)/Makefile.regression RDIRS = Examples HN25015 HQ26535 HQ49956 HS16977 ustr Annex_E_variants Bug521125 \ Lengthto_Offset Bug522656 RAW_bitstring RAW_EncDec RAW_integer RAW_repeat ForceOmit Bug546231 \ - Bug547385 IntX CSN1_LH + Bug547385 IntX CSN1_LH Bug572603 all dep clean run distclean: for dir in $(RDIRS); do (cd $$dir && $(MAKE) $@) || exit; done -- GitLab