Mock Version: 1.2.10 Mock Version: 1.2.10 ENTER do(['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target x86_64 --nodeps /builddir/build/SPECS/ell.spec'], chrootPath='/var/lib/mock/f23-build-3513763-492911/root'shell=FalseprintOutput=Falseenv={'LANG': 'en_US.UTF-8', 'TERM': 'vt100', 'SHELL': '/bin/bash', 'PROMPT_COMMAND': 'printf "\x1b]0;\x07"', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'HOME': '/builddir', 'HOSTNAME': 'mock'}gid=425user='mockbuild'timeout=86400logger=uid=1000) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target x86_64 --nodeps /builddir/build/SPECS/ell.spec'] with env {'LANG': 'en_US.UTF-8', 'TERM': 'vt100', 'SHELL': '/bin/bash', 'PROMPT_COMMAND': 'printf "\x1b]0;\x07"', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'HOME': '/builddir', 'HOSTNAME': 'mock'} and shell False warning: Could not canonicalize hostname: buildvm-09.phx2.fedoraproject.org Building target platforms: x86_64 Building for target x86_64 Wrote: /builddir/build/SRPMS/ell-0-0.5.20130617svn.fc23.src.rpm Child return code was: 0 LEAVE do --> ENTER do(['bash', '--login', '-c', '/usr/bin/rpmbuild -bb --target x86_64 --nodeps /builddir/build/SPECS/ell.spec '], chrootPath='/var/lib/mock/f23-build-3513763-492911/root'shell=FalseprintOutput=Falseenv={'LANG': 'en_US.UTF-8', 'TERM': 'vt100', 'SHELL': '/bin/bash', 'PROMPT_COMMAND': 'printf "\x1b]0;\x07"', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'HOME': '/builddir', 'HOSTNAME': 'mock'}gid=425user='mockbuild'timeout=86400logger=uid=1000) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -bb --target x86_64 --nodeps /builddir/build/SPECS/ell.spec '] with env {'LANG': 'en_US.UTF-8', 'TERM': 'vt100', 'SHELL': '/bin/bash', 'PROMPT_COMMAND': 'printf "\x1b]0;\x07"', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'HOME': '/builddir', 'HOSTNAME': 'mock'} and shell False Building target platforms: x86_64 Building for target x86_64 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.hRZLt1 + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf ell-20130617 + /usr/bin/xz -dc /builddir/build/SOURCES/ell-20130617.tar.xz + /usr/bin/tar -xf - + STATUS=0 + '[' 0 -ne 0 ']' + cd ell-20130617 + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.5WApee + umask 022 + cd /builddir/build/BUILD + cd ell-20130617 + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.RhasZq + umask 022 + cd /builddir/build/BUILD + '[' /builddir/build/BUILDROOT/ell-0-0.5.20130617svn.fc23.x86_64 '!=' / ']' + rm -rf /builddir/build/BUILDROOT/ell-0-0.5.20130617svn.fc23.x86_64 ++ dirname /builddir/build/BUILDROOT/ell-0-0.5.20130617svn.fc23.x86_64 + mkdir -p /builddir/build/BUILDROOT + mkdir /builddir/build/BUILDROOT/ell-0-0.5.20130617svn.fc23.x86_64 + cd ell-20130617 + mkdir -p /builddir/build/BUILDROOT/ell-0-0.5.20130617svn.fc23.x86_64/usr/include/ell + cp -pr libELL/Include/ell/BinaryNode.h libELL/Include/ell/BinaryNodes.h libELL/Include/ell/Dump.h libELL/Include/ell/Grammar.h libELL/Include/ell/Node.h libELL/Include/ell/Numerics.h libELL/Include/ell/Parser.h libELL/Include/ell/Primitives.h libELL/Include/ell/RepeatMatchTpl.h libELL/Include/ell/Rule.h libELL/Include/ell/Storage.h libELL/Include/ell/UnaryNode.h libELL/Include/ell/UnaryNodes.h libELL/Include/ell/Utils.h /builddir/build/BUILDROOT/ell-0-0.5.20130617svn.fc23.x86_64/usr/include/ell + /usr/lib/rpm/check-buildroot + /usr/lib/rpm/brp-compress + /usr/lib/rpm/brp-strip /usr/bin/strip + /usr/lib/rpm/brp-strip-comment-note /usr/bin/strip /usr/bin/objdump + /usr/lib/rpm/brp-strip-static-archive /usr/bin/strip + /usr/lib/rpm/brp-python-bytecompile /usr/bin/python 1 + /usr/lib/rpm/brp-python-hardlink + /usr/lib/rpm/redhat/brp-java-repack-jars Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.Dtf05D + umask 022 + cd /builddir/build/BUILD + cd ell-20130617 + export 'CFLAGS=-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic' + CFLAGS='-O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mtune=generic' + make test Processing libELL/test.target... COMPD - libELL/Test/test.cpp g++ -IlibELL/Include -fPIC -g -O0 -fno-inline -Wall -pipe -Wno-parentheses -Wextra -Woverloaded-virtual -Werror -MP -MMD -o Build/GNU_Linux/g++/x86_64/Debug//libELL/Test/test.o -c libELL/Test/test.cpp LINK - Build/GNU_Linux/g++/x86_64/Debug/libell_test g++ Build/GNU_Linux/g++/x86_64/Debug//libELL/Test/test.o -o Build/GNU_Linux/g++/x86_64/Debug/libell_test -lstdc++ -LBuild/GNU_Linux/g++/x86_64/Debug -Wl,-rpath,/builddir/build/BUILD/ell-20130617/Build/GNU_Linux/g++/x86_64/Debug -IlibELL/Include -fPIC -g -O0 -fno-inline -Wall -pipe -Wno-parentheses -Wextra -Woverloaded-virtual -Werror Processing XmlParser/xml_test.target... COMPD - XmlParser/Test/XmlTest.cpp g++ -IXmlParser/Include -IlibELL/Include -fPIC -g -O0 -fno-inline -Wall -pipe -Wno-parentheses -Wextra -Woverloaded-virtual -Werror -MP -MMD -o Build/GNU_Linux/g++/x86_64/Debug//XmlParser/Test/XmlTest.o -c XmlParser/Test/XmlTest.cpp LINK - Build/GNU_Linux/g++/x86_64/Debug/xml_test g++ Build/GNU_Linux/g++/x86_64/Debug//XmlParser/Test/XmlTest.o -o Build/GNU_Linux/g++/x86_64/Debug/xml_test -lstdc++ -LBuild/GNU_Linux/g++/x86_64/Debug -Wl,-rpath,/builddir/build/BUILD/ell-20130617/Build/GNU_Linux/g++/x86_64/Debug -IXmlParser/Include -IlibELL/Include -fPIC -g -O0 -fno-inline -Wall -pipe -Wno-parentheses -Wextra -Woverloaded-virtual -Werror Build/GNU_Linux/g++/x86_64/Debug/libell_test ## ListTest Parse 1, \ root: "1," \ other: "1," 1, / other: "," coucou / root: "," Parse 2 , 3 \ root: "2 , 3" \ other: "2 , 3" 2, 3, / other: end coucou / root: end Parse , \ root: "," \ other: "," # other: "," # root: "," Expected message catched: 1: before ",": expecting root Parse 4 \ root: "4" \ other: "4" 4, / other: end coucou / root: end Parse 5 ,6, \ root: "5 ,6," \ other: "5 ,6," 5, 6, / other: "," coucou / root: "," # Passed. ## ListToSetTest Parse 12 1 9 \ r0x7ffd84868460: "12 1 9" / r0x7ffd84868460: end # Passed. ## ActionChainTest Parse 21.4 \ r0x7ffd84868730: "21.4" # Passed. ## CalcTest Eval 4.0/5: Parse 4.0/5 0.800000 Eval 10+3.0/6-(-3): Parse 10+3.0/6-(-3) 13.500000 Eval 1+A: Parse 1+A Expected message catched: 1: before "A": expecting term Eval 1 A: Parse 1 A Expected message catched: 1: before "A": expecting end Eval A: Parse A Expected message catched: 1: before "A": expecting root # Passed. ## NoConsumeTest Parse toto[] # Passed. ## DirectRuleAssignTest Parse toto # Passed. ## LongestOpTest Parse totot Parse totot Parse totot Expected message catched: 1: before "totot": expecting r2 # Passed. ## GenericIntegerTest Parse AF0 Parse 0x0 Parse Expected message catched: 1: before end: expecting root Parse 1234 Expected message catched: 1: before "1234": expecting root Parse 123 4 # Passed. ## StringText Parse hello helloyou hell a bouc aa hey # Passed. ## SkipperSubst Parse a bc dd Parse a bcd d # Passed. Everything is ok. / r0x7ffd84868730: end \ root: "4.0/5" \ expression: "4.0/5" \ term: "4.0/5" \ factor: "4.0/5" / factor: "/5" \ factor: "5" / factor: end / term: end / expression: end / root: end \ root: "10+3.0/6-(-3)" \ expression: "10+3.0/6-(-3)" \ term: "10+3.0/6-(-3)" \ factor: "10+3.0/6-(-3)" / factor: "+3.0/6-(-3)" / term: "+3.0/6-(-3)" \ term: "3.0/6-(-3)" \ factor: "3.0/6-(-3)" / factor: "/6-(-3)" \ factor: "6-(-3)" / factor: "-(-3)" / term: "-(-3)" \ term: "(-3)" \ factor: "(-3)" \ expression: "-3)" \ term: "-3)" \ factor: "-3)" \ factor: "3)" / factor: ")" / factor: ")" / term: ")" / expression: ")" / factor: end / term: end / expression: end / root: end \ root: "1+A" \ expression: "1+A" \ term: "1+A" \ factor: "1+A" / factor: "+A" / term: "+A" \ term: "A" \ factor: "A" # factor: "A" # term: "A" \ root: "1 A" \ expression: "1 A" \ term: "1 A" \ factor: "1 A" / factor: " A" / term: "A" / expression: "A" \ root: "A" \ expression: "A" \ term: "A" \ factor: "A" # factor: "A" # term: "A" # expression: "A" # root: "A" \ r0x7ffd84868d30: "toto[]" / r0x7ffd84868d30: end \ r0x7ffd84868fa0: "toto" \ r0x7ffd84868fd8: "toto" / r0x7ffd84868fd8: end / r0x7ffd84868fa0: end \ r1: "totot" / r1: end \ r1: "totot" / r1: end \ r2: "totot" # r2: "totot" \ root: "AF0" / root: end \ root: "0x0" / root: "x0" \ root: end # root: end \ root: "1234" # root: "1234" \ root: "123 4" / root: " 4" \ r0x7ffd848697b0: "hello helloyou hell a bouc aa h"... / r0x7ffd848697b0: end \ r0x7ffd84869a50: "a\nbc\ndd" / r0x7ffd84869a50: "d" \ r0x7ffd84869a50: "a\nbcd\nd" / r0x7ffd84869a50: end No argument given, perform non-regression tests TEST 0: \ document: "" \ attribute: "roots=\"no error\" />" \ ident: "roots=\"no error\" />" / ident: "=\"no error\" />" \ reference: "\" />" # reference: "\" />" / attribute: " />" \ attribute: "/>" \ ident: "/>" # ident: "/>" # attribute: "/>" Enqueue element `two` / element: "" \ element: "" \ ident: "hem>" / ident: ">" \ attribute: ">" \ ident: ">" # ident: ">" # attribute: ">" Enqueue element `hem` / element: "" \ element: "" \ ident: "hem>" / ident: ">" / element: end \ element: end # element: end \ comment: end # comment: end \ pi: end # pi: end \ data: end \ blank char: end # blank char: end \ reference: end # reference: end \ blank char: end # blank char: end \ cdata: end # cdata: end # data: end / document: end Reparse unparsed DOM from first parsing: \ document: "\n" \ element: "\n" \ ident: "two roots=\"no error\" />\n" / ident: " roots=\"no error\" />\n" \ attribute: "roots=\"no error\" />\n" \ ident: "roots=\"no error\" />\n" / ident: "=\"no error\" />\n" \ reference: "\" />\n" # reference: "\" />\n" / attribute: " />\n" \ attribute: "/>\n" \ ident: "/>\n" # ident: "/>\n" # attribute: "/>\n" Enqueue element `two` / element: "\n" \ element: end # element: end \ comment: end # comment: end \ pi: end # pi: end \ data: end \ blank char: end # blank char: end \ reference: end # reference: end \ blank char: end # blank char: end \ cdata: end # cdata: end # data: end / document: end Compare second DOM unparsing with first one Ok. TEST 1: \ document: "" \ element: "" Build/GNU_Linux/g++/x86_64/Debug/xml_test \ ident: "not closed=\"error\">" / ident: " closed=\"error\">" \ attribute: "closed=\"error\">" \ ident: "closed=\"error\">" / ident: "=\"error\">" \ reference: "\">" # reference: "\">" / attribute: ">" \ attribute: ">" \ ident: ">" # ident: ">" # attribute: ">" Enqueue element `not` / element: "" \ element: "" \ ident: "Closed />" / ident: " />" \ attribute: "/>" \ ident: "/>" # ident: "/>" # attribute: "/>" Enqueue element `Closed` / element: end \ element: end # element: end \ comment: end # comment: end \ pi: end # pi: end \ data: end \ blank char: end # blank char: end \ reference: end # reference: end \ blank char: end # blank char: end \ cdata: end # cdata: end # data: end Parser error caught: 1: before end: Unclosed element: `not` TEST 2: \ document: ""... \ element: ""... \ ident: "closed twice=\"error\"><"... / ident: " twice=\"error\">" \ reference: "\">" # reference: "\">" / attribute: ">" \ attribute: ">" \ ident: ">" # ident: ">" # attribute: ">" Enqueue element `closed` / element: "" \ element: "" \ ident: "closed>" / ident: ">" / element: "" \ element: "" \ ident: "closed>" / ident: ">" Parser error caught: 1: before ">": Unexpected end of element `closed` TEST 3: \ document: "" \ element: "" \ ident: "not open=\"error\">" / ident: " open=\"error\">" \ attribute: "open=\"error\">" \ ident: "open=\"error\">" / ident: "=\"error\">" \ reference: "\">" # reference: "\">" / attribute: ">" \ attribute: ">" \ ident: ">" # ident: ">" # attribute: ">" Enqueue element `not` / element: "" \ element: "" \ ident: "not>" / ident: ">" / element: "" \ element: "" \ ident: "hum>" / ident: ">" Parser error caught: 1: before ">": Unexpected end of element `hum` TEST 4: space 2 \ document: " space 2 \r\n \r"... \ element: " space 2 \r\n \r"... \ ident: "white> space 2 \r\n \r\n"... / ident: "> space 2 \r\n \r\n \t space 2 \r\n \r\n \t space 2 \r\n \r\n \t space 2 \r\n \r\n \t space 2 \r\n \r\n \t \r\n \t \r\n \t \r\n \t \r\n \t \r\n \t \r\n \t \r\n \t \r\n \t \r\n \t \r\n \t \r\n \t \r\n \t \r\n \t"... # blank char: "ace 2 \r\n \r\n \t"... \ blank char: "ce 2 \r\n \r\n \t " # blank char: "ce 2 \r\n \r\n \t " \ blank char: "e 2 \r\n \r\n \t " # blank char: "e 2 \r\n \r\n \t " \ blank char: " 2 \r\n \r\n \t " / blank char: "2 \r\n \r\n \t " \ blank char: "2 \r\n \r\n \t " # blank char: "2 \r\n \r\n \t " \ blank char: "2 \r\n \r\n \t " # blank char: "2 \r\n \r\n \t " \ blank char: " \r\n \r\n \t " / blank char: "\r\n \r\n \t " \ blank char: "\r\n \r\n \t " / blank char: "\n \r\n \t " \ blank char: "\n \r\n \t " / blank char: " \r\n \t " \ blank char: " \r\n \t " / blank char: " \r\n \t " \ blank char: " \r\n \t " / blank char: " \r\n \t " \ blank char: " \r\n \t " # blank char: " \r\n \t " \ blank char: " \r\n \r\n \t " / blank char: "\r\n \r\n \t " \ blank char: "\r\n \r\n \t " / blank char: "\n \r\n \t " \ blank char: "\n \r\n \t " / blank char: " \r\n \t " \ blank char: " \r\n \t " / blank char: " \r\n \t " \ blank char: " \r\n \t " / blank char: " \r\n \t " \ blank char: " \r\n \t " # blank char: " \r\n \t " \ reference: " \r\n \r\n \t " # reference: " \r\n \r\n \t " \ blank char: " \r\n \r\n \t " / blank char: "\r\n \r\n \t " \ blank char: "\r\n \r\n \t " / blank char: "\n \r\n \t " \ blank char: "\n \r\n \t " / blank char: " \r\n \t " \ blank char: " \r\n \t " / blank char: " \r\n \t " \ blank char: " \r\n \t " / blank char: " \r\n \t " \ blank char: " \r\n \t " # blank char: " \r\n \t " \ cdata: " \r\n \t " # cdata: " \r\n \t " Enqueue data `space 2` / data: " \r\n \r\n \t " \ element: " \r\n \t " \ ident: "white> \r\n \t " / ident: "> \r\n \t " / element: " \r\n \t " \ element: " " \ ident: "top /> " / ident: " /> " \ attribute: "/> " \ ident: "/> " # ident: "/> " # attribute: "/> " Enqueue element `top` / element: " " \ element: end # element: end \ comment: end # comment: end \ pi: end # pi: end \ data: end \ blank char: end # blank char: end \ reference: end # reference: end \ blank char: end # blank char: end \ cdata: end # cdata: end # data: end / document: end Reparse unparsed DOM from first parsing: space 2 \ document: "\nspace 2\n\n" \ element: "\nspace 2\n\n" \ ident: "white>\nspace 2\n\n" / ident: ">\nspace 2\n\n" \ attribute: ">\nspace 2\n\n" \ ident: ">\nspace 2\n\n" # ident: ">\nspace 2\n\n" # attribute: ">\nspace 2\n\n" Enqueue element `white` / element: "\nspace 2\n\n" \ element: "space 2\n\n" # element: "space 2\n\n" \ comment: "space 2\n\n" # comment: "space 2\n\n" \ pi: "space 2\n\n" # pi: "space 2\n\n" \ data: "space 2\n\n" \ blank char: "space 2\n\n" # blank char: "space 2\n\n" \ blank char: "pace 2\n\n" # blank char: "pace 2\n\n" \ blank char: "ace 2\n\n" # blank char: "ace 2\n\n" \ blank char: "ce 2\n\n" # blank char: "ce 2\n\n" \ blank char: "e 2\n\n" # blank char: "e 2\n\n" \ blank char: " 2\n\n" / blank char: "2\n\n" \ blank char: "2\n\n" # blank char: "2\n\n" \ blank char: "2\n\n" # blank char: "2\n\n" \ blank char: "\n\n" / blank char: "\n" \ blank char: "\n" # blank char: "\n" \ blank char: "\n\n" / blank char: "\n" \ blank char: "\n" # blank char: "\n" \ reference: "\n\n" # reference: "\n\n" \ blank char: "\n\n" / blank char: "\n" \ blank char: "\n" # blank char: "\n" \ cdata: "\n" # cdata: "\n" Enqueue data `space 2` / data: "\n\n" \ element: "\n" \ ident: "white>\n" / ident: ">\n" / element: "\n" \ element: end # element: end \ comment: end # comment: end \ pi: end # pi: end \ data: end \ blank char: end # blank char: end \ reference: end # reference: end \ blank char: end # blank char: end \ cdata: end # cdata: end # data: end / document: end Compare second DOM unparsing with first one Ok. TEST 5: "]]><a> \ document: "\"]]>&"... \ reference: "<\'\\\">\"]]>&l"... / reference: "\'\\\">\"]]><a&"... \ reference: "\">\"]]><a>"... # reference: "\">\"]]><a>"... / attribute: ">\"]]><a>"... \ attribute: ">\"]]><a>"... \ ident: ">\"]]><a>"... # ident: ">\"]]><a>"... # attribute: ">\"]]><a>"... Enqueue element `entities` / element: "\"]]><a><"... \ element: "\"]]><a><"... \ ident: "![CDATA[]]><>\"]]><a>\"]]><a>\"]]><a><"... \ comment: "\"]]><a><"... # comment: "\"]]><a><"... \ pi: "\"]]><a><"... # pi: "\"]]><a><"... \ data: "\"]]><a><"... \ blank char: "\"]]><a><"... # blank char: "\"]]><a><"... \ reference: "\"]]><a><"... # reference: "\"]]><a><"... \ blank char: "\"]]><a><"... # blank char: "\"]]><a><"... \ cdata: "\"]]><a><"... / cdata: "<a>" \ blank char: "<a>" # blank char: "<a>" \ reference: "<a>" / reference: "a>" \ blank char: "a>" # blank char: "a>" \ blank char: ">" # blank char: ">" \ blank char: ">" # blank char: ">" \ reference: ">" / reference: "" \ blank char: "" # blank char: "" \ reference: "" # reference: "" \ blank char: "" # blank char: "" \ cdata: "" # cdata: "" Enqueue data `]]><>"` / data: "" \ element: "" \ ident: "entities>" / ident: ">" / element: end \ element: end # element: end \ comment: end # comment: end \ pi: end # pi: end \ data: end \ blank char: end # blank char: end \ reference: end # reference: end \ blank char: end # blank char: end \ cdata: end # cdata: end # data: end / document: end Reparse unparsed DOM from first parsing: ]]&gt;<>"<a> \ document: "\n]]&"... \ reference: ""'<'\\\">\n]]&am"... / reference: "'<'\\\">\n]]&gt;&"... \ reference: "'<'\\\">\n]]&gt;&"... / reference: "<'\\\">\n]]&gt;<>"... \ reference: "<'\\\">\n]]&gt;<>"... / reference: "'\\\">\n]]&gt;<>&qu"... \ reference: "'\\\">\n]]&gt;<>&qu"... / reference: "\\\">\n]]&gt;<>"<"... \ reference: "\">\n]]&gt;<>"<"... # reference: "\">\n]]&gt;<>"<"... / attribute: ">\n]]&gt;<>"<a"... \ attribute: ">\n]]&gt;<>"<a"... \ ident: ">\n]]&gt;<>"<a"... # ident: ">\n]]&gt;<>"<a"... # attribute: ">\n]]&gt;<>"<a"... Enqueue element `entities` / element: "\n]]&gt;<>"<a&"... \ element: "]]&gt;<>"<a&g"... # element: "]]&gt;<>"<a&g"... \ comment: "]]&gt;<>"<a&g"... # comment: "]]&gt;<>"<a&g"... \ pi: "]]&gt;<>"<a&g"... # pi: "]]&gt;<>"<a&g"... \ data: "]]&gt;<>"<a&g"... \ blank char: "]]&gt;<>"<a&g"... # blank char: "]]&gt;<>"<a&g"... \ blank char: "]&gt;<>"<a>"... # blank char: "]&gt;<>"<a>"... \ blank char: "&gt;<>"<a>"... # blank char: "&gt;<>"<a>"... \ blank char: "&gt;<>"<a>"... # blank char: "&gt;<>"<a>"... \ reference: "&gt;<>"<a>"... / reference: "gt;<>"<a>\n"... \ blank char: ">"<a>\n"... # blank char: ">"<a>\n"... \ reference: ">"<a>\n"... / reference: ""<a>\n\n" \ blank char: ""<a>\n\n" # blank char: ""<a>\n\n" \ reference: ""<a>\n\n" / reference: "<a>\n\n" \ blank char: "<a>\n\n" # blank char: "<a>\n\n" \ reference: "<a>\n\n" / reference: "a>\n\n" \ blank char: "a>\n\n" # blank char: "a>\n\n" \ blank char: ">\n\n" # blank char: ">\n\n" \ blank char: ">\n\n" # blank char: ">\n\n" \ reference: ">\n\n" / reference: "\n\n" \ blank char: "\n\n" / blank char: "\n" \ blank char: "\n" # blank char: "\n" \ reference: "\n\n" # reference: "\n\n" \ blank char: "\n\n" / blank char: "\n" \ blank char: "\n" # blank char: "\n" \ cdata: "\n" # cdata: "\n" Enqueue data `]]><>"` / data: "\n\n" \ element: "\n" \ ident: "entities>\n" / ident: ">\n" / element: "\n" \ element: end # element: end \ comment: end # comment: end \ pi: end # pi: end \ data: end \ blank char: end # blank char: end \ reference: end # reference: end \ blank char: end # blank char: end \ cdata: end # cdata: end # data: end / document: end Compare second DOM unparsing with first one Ok. TEST 6: \ document: " char_in_ident_\=\"\\"><"... \ element: " char_in_ident_\=\"\\"><"... \ ident: "special\ char_in_ident_\=\"\\">=\"\\">"... \ attribute: "char_in_ident_\=\"\\">>" \ ident: "char_in_ident_\=\"\\">>" / ident: "=\"\\">>" \ reference: "\">>" # reference: "\">>" / hi do Processing files: ell-devel-0-0.5.20130617svn.fc23.noarch Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.FocI35 attribute: ">>" \ attribute: ">>" \ ident: ">>" # ident: ">>" # attribute: ">>" Enqueue element `special�` / element: ">" \ element: ">" \ ident: "special\>" / ident: ">" / element: end \ element: end # element: end \ comment: end # comment: end \ pi: end # pi: end \ data: end \ blank char: end # blank char: end \ reference: end # reference: end \ blank char: end # blank char: end \ cdata: end # cdata: end # data: end / document: end Reparse unparsed DOM from first parsing: \ document: " char_in_ident_\=\"\\" /"... \ element: " char_in_ident_\=\"\\" /"... \ ident: "special\ char_in_ident_\=\"\\" />"... / ident: " char_in_ident_\=\"\\" />\n" \ attribute: "char_in_ident_\=\"\\" />\n" \ ident: "char_in_ident_\=\"\\" />\n" / ident: "=\"\\" />\n" \ reference: "\" />\n" # reference: "\" />\n" / attribute: " />\n" \ attribute: "/>\n" \ ident: "/>\n" # ident: "/>\n" # attribute: "/>\n" Enqueue element `special�` / element: "\n" \ element: end # element: end \ comment: end # comment: end \ pi: end # pi: end \ data: end \ blank char: end # blank char: end \ reference: end # reference: end \ blank char: end # blank char: end \ cdata: end # cdata: end # data: end / document: end Compare second DOM unparsing with first one Ok. Parse initial xml \ document: ""... \ attribute: ">"... \ ident: ">"... # ident: ">"... # attribute: ">"... Enqueue element `html` / element: "<"... \ element: "<"... \ ident: "head>