Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Eclipse Projects
Eclipse Titan
titan.core
Commits
4eb53508
Commit
4eb53508
authored
Oct 13, 2016
by
Jeno Attila Balasko
Committed by
Gerrit Code Review
Oct 13, 2016
Browse files
Merge "XER: attributes decoded correctly when encoding attributes as qualified names"
parents
be3ed8e6
998599e1
Changes
8
Hide whitespace changes
Inline
Side-by-side
core/XER.cc
View file @
4eb53508
...
...
@@ -10,6 +10,7 @@
* Baranyi, Botond
* Ormandi, Matyas
* Raduly, Csaba
* Szabo, Bence Janos
*
******************************************************************************/
#define DEFINE_XER_STRUCT
...
...
@@ -84,8 +85,10 @@ const char* verify_name(XmlReaderWrap& reader, const XERdescriptor_t& p_td, int
}
else
{
if
(
nsuri
==
0
)
{
// XML node has no namespace
TTCN_EncDec_ErrorContext
::
error
(
TTCN_EncDec
::
ET_TAG
,
"Missing namespace '%s'"
,
expected_ns
->
ns
);
if
(
p_td
.
my_module
->
get_ns
(
p_td
.
ns_index
)
->
px
[
0
]
!=
0
)
{
// and module has namespace prefix
TTCN_EncDec_ErrorContext
::
error
(
TTCN_EncDec
::
ET_TAG
,
"Missing namespace '%s'"
,
expected_ns
->
ns
);
}
}
else
{
// and there is one, but is it the right one ?
if
(
strcmp
(
nsuri
,
expected_ns
->
ns
))
{
...
...
regression_test/XML/AttributeFormDefault/AttributeFormDefaultWithNs.ttcn
0 → 100644
View file @
4eb53508
/******************************************************************************
* 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:
* Bence Janos Szabo – initial implementation
*
******************************************************************************/
module
AttributeFormDefaultWithNs
{
type
component
CT
{};
type
record
MyType
{
integer
attr1
,
charstring
attr2
,
charstring
field
}
with
{
variant
(
attr1
)
"attribute"
;
variant
(
attr2
)
"attribute"
;
}
external
function
enc_MyType
(
in
MyType
pdu
)
return
octetstring
with
{
extension
"prototype (convert) encode(XER:XER_EXTENDED)"
}
external
function
dec_MyType
(
in
octetstring
stream
)
return
MyType
with
{
extension
"prototype (convert) decode(XER:XER_EXTENDED)"
}
const
MyType
c_instance
:=
{
attr1
:=
3
,
attr2
:=
"attr"
,
field
:=
"field"
};
const
universal
charstring
c_result
:=
"<myns:MyType xmlns:myns='schema:AttributeFormDefaultWithoutNs' myns:attr1='3' myns:attr2='attr'>
\n\t
<myns:field>field</myns:field>
\n
</myns:MyType>
\n\n
"
;
testcase
tc_test
()
runs
on
CT
{
var
octetstring
octet_result
:=
enc_MyType
(
c_instance
)
var
universal
charstring
result
:=
oct2unichar
(
octet_result
);
if
(
result
!=
c_result
)
{
setverdict
(
fail
);
}
var
MyType
result_instance
:=
dec_MyType
(
octet_result
);
if
(
result_instance
!=
c_instance
)
{
setverdict
(
fail
);
}
setverdict
(
pass
);
}
control
{
execute
(
tc_test
());
}
}
with
{
encode
"XML"
;
variant
"namespace as 'schema:AttributeFormDefaultWithoutNs' prefix 'myns'"
;
variant
"controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'"
;
variant
"attributeFormQualified"
;
variant
"elementFormQualified"
;
}
regression_test/XML/AttributeFormDefault/AttributeFormDefaultWithoutNs.ttcn
0 → 100644
View file @
4eb53508
/******************************************************************************
* 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:
* Bence Janos Szabo – initial implementation
*
******************************************************************************/
module
AttributeFormDefaultWithoutNs
{
type
component
CT
{};
type
record
MyType
{
integer
attr1
,
charstring
attr2
,
charstring
field
}
with
{
variant
(
attr1
)
"attribute"
;
variant
(
attr2
)
"attribute"
;
}
external
function
enc_MyType
(
in
MyType
pdu
)
return
octetstring
with
{
extension
"prototype (convert) encode(XER:XER_EXTENDED)"
}
external
function
dec_MyType
(
in
octetstring
stream
)
return
MyType
with
{
extension
"prototype (convert) decode(XER:XER_EXTENDED)"
}
const
MyType
c_instance
:=
{
attr1
:=
3
,
attr2
:=
"attr"
,
field
:=
"field"
};
const
universal
charstring
c_result
:=
"<MyType xmlns='schema:AttributeFormDefaultWithoutNs' attr1='3' attr2='attr'>
\n\t
<field>field</field>
\n
</MyType>
\n\n
"
;
testcase
tc_test
()
runs
on
CT
{
var
octetstring
octet_result
:=
enc_MyType
(
c_instance
)
var
universal
charstring
result
:=
oct2unichar
(
octet_result
);
if
(
result
!=
c_result
)
{
setverdict
(
fail
);
}
var
MyType
result_instance
:=
dec_MyType
(
octet_result
);
if
(
result_instance
!=
c_instance
)
{
setverdict
(
fail
);
}
setverdict
(
pass
);
}
control
{
execute
(
tc_test
());
}
}
with
{
encode
"XML"
;
variant
"namespace as 'schema:AttributeFormDefaultWithoutNs'"
;
variant
"controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'"
;
variant
"attributeFormQualified"
;
variant
"elementFormQualified"
;
}
regression_test/XML/AttributeFormDefault/AttributeFormWithNs.ttcn
0 → 100644
View file @
4eb53508
/******************************************************************************
* 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:
* Bence Janos Szabo – initial implementation
*
******************************************************************************/
module
AttributeFormWithNs
{
type
component
CT
{};
type
record
MyType
{
integer
attr1
,
charstring
attr2
,
charstring
field
}
with
{
variant
(
attr1
)
"attribute"
;
variant
(
attr1
)
"form as qualified"
variant
(
attr2
)
"attribute"
;
}
external
function
enc_MyType
(
in
MyType
pdu
)
return
octetstring
with
{
extension
"prototype (convert) encode(XER:XER_EXTENDED)"
}
external
function
dec_MyType
(
in
octetstring
stream
)
return
MyType
with
{
extension
"prototype (convert) decode(XER:XER_EXTENDED)"
}
const
MyType
c_instance
:=
{
attr1
:=
3
,
attr2
:=
"attr"
,
field
:=
"field"
};
const
universal
charstring
c_result
:=
"<myns:MyType xmlns:myns='schema:AttributeFormDefaultWithoutNs' myns:attr1='3' attr2='attr'>
\n\t
<myns:field>field</myns:field>
\n
</myns:MyType>
\n\n
"
;
testcase
tc_test
()
runs
on
CT
{
var
octetstring
octet_result
:=
enc_MyType
(
c_instance
)
var
universal
charstring
result
:=
oct2unichar
(
octet_result
);
if
(
result
!=
c_result
)
{
setverdict
(
fail
);
}
var
MyType
result_instance
:=
dec_MyType
(
octet_result
);
if
(
result_instance
!=
c_instance
)
{
setverdict
(
fail
);
}
setverdict
(
pass
);
}
control
{
execute
(
tc_test
());
}
}
with
{
encode
"XML"
;
variant
"namespace as 'schema:AttributeFormDefaultWithoutNs' prefix 'myns'"
;
variant
"controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'"
;
variant
"elementFormQualified"
;
}
regression_test/XML/AttributeFormDefault/AttributeFormWithoutNs.ttcn
0 → 100644
View file @
4eb53508
/******************************************************************************
* 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:
* Bence Janos Szabo – initial implementation
*
******************************************************************************/
module
AttributeFormWithoutNs
{
type
component
CT
{};
type
record
MyType
{
integer
attr1
,
charstring
attr2
,
charstring
field
}
with
{
variant
(
attr1
)
"attribute"
;
variant
(
attr1
)
"form as qualified"
variant
(
attr2
)
"attribute"
;
}
external
function
enc_MyType
(
in
MyType
pdu
)
return
octetstring
with
{
extension
"prototype (convert) encode(XER:XER_EXTENDED)"
}
external
function
dec_MyType
(
in
octetstring
stream
)
return
MyType
with
{
extension
"prototype (convert) decode(XER:XER_EXTENDED)"
}
const
MyType
c_instance
:=
{
attr1
:=
3
,
attr2
:=
"attr"
,
field
:=
"field"
};
const
universal
charstring
c_result
:=
"<MyType xmlns='schema:AttributeFormDefaultWithoutNs' attr1='3' attr2='attr'>
\n\t
<field>field</field>
\n
</MyType>
\n\n
"
;
testcase
tc_test
()
runs
on
CT
{
var
octetstring
octet_result
:=
enc_MyType
(
c_instance
)
var
universal
charstring
result
:=
oct2unichar
(
octet_result
);
if
(
result
!=
c_result
)
{
setverdict
(
fail
);
}
var
MyType
result_instance
:=
dec_MyType
(
octet_result
);
if
(
result_instance
!=
c_instance
)
{
setverdict
(
fail
);
}
setverdict
(
pass
);
}
control
{
execute
(
tc_test
());
}
}
with
{
encode
"XML"
;
variant
"namespace as 'schema:AttributeFormDefaultWithoutNs'"
;
variant
"controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'"
;
variant
"elementFormQualified"
;
}
regression_test/XML/AttributeFormDefault/Makefile
0 → 100644
View file @
4eb53508
##############################################################################
# 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:
# Bence Janos Szabo – initial implementation
#
##############################################################################
TOPDIR
=
../..
include
../../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 the C++ preprocessor (and makedepend as well):
#CPPFLAGS +=
# Flags for dependency generation
CXXDEPFLAGS
=
-MM
# Flags for the C++ compiler:
CXXFLAGS
+=
-Wall
# Flags for the linker:
#LDFLAGS +=
# 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
=
AttributeFormDefaultWithoutNs.ttcn AttributeFormDefaultWithNs.ttcn AttributeFormWithoutNs.ttcn AttributeFormWithNs.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)
# Other files of the project (Makefile, configuration files, etc.)
# that will be added to the archived source files:
OTHER_FILES
=
Makefile
# The name of the executable test suite:
TARGET
=
AttributeFormDefault
#
# Rules for building the executable...
#
all
:
$(TARGET) ;
objects
:
$(OBJECTS) compile;
$(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 distclean
:
-
$(RM)
$(TARGET)
$(OBJECTS)
$(GENERATED_HEADERS)
\
$(GENERATED_SOURCES)
compile
$(DEPFILES)
\
tags
*
.log
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
regression_test/XML/AttributeFormDefault/config.cfg
0 → 100644
View file @
4eb53508
###############################################################################
# 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:
# Szabo, Bence Janos
#
###############################################################################
[EXECUTE]
AttributeFormDefaultWithNs.control
AttributeFormDefaultWithoutNs.control
AttributeFormWithoutNs.control
AttributeFormWithNs.control
\ No newline at end of file
regression_test/XML/Makefile
View file @
4eb53508
...
...
@@ -29,7 +29,7 @@ endif
XDIRS
:=
$(
wildcard
$(SHADOWED)
)
xsdConverter
\
HM60295 HN15589 HQ30408 HR49727 HU13380
$(RT2_ONLY)
\
XmlWorkflow tpdValidTest AbstractBlock UseNilLong
XmlWorkflow tpdValidTest AbstractBlock UseNilLong
AttributeFormDefault
# List of fake targets:
.PHONY
:
all dep clean run $(XDIRS) $(addsuffix /
,
$(XDIRS)) profile
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment