Mock Version: 3.5 ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target s390x --nodeps /builddir/build/SPECS/golang-github-clbanning-mxj.spec'], chrootPath='/var/lib/mock/fedora-rawhide-s390x-1674446799.127813/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=0uid=1001gid=135user='mockbuild'nspawn_args=['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.853u7uvl:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']unshare_net=TrueprintOutput=True) Using nspawn with args ['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.853u7uvl:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11'] Executing command: ['/usr/bin/systemd-nspawn', '-q', '-M', '5752c8934f824a82b27144e0d90f0e04', '-D', '/var/lib/mock/fedora-rawhide-s390x-1674446799.127813/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.853u7uvl:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11', '--console=pipe', '--setenv=TERM=vt100', '--setenv=SHELL=/bin/bash', '--setenv=HOME=/builddir', '--setenv=HOSTNAME=mock', '--setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin', '--setenv=PROMPT_COMMAND=printf "\\033]0;\\007"', '--setenv=PS1= \\s-\\v\\$ ', '--setenv=LANG=C.UTF-8', '--resolv-conf=off', 'bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target s390x --nodeps /builddir/build/SPECS/golang-github-clbanning-mxj.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8', 'SYSTEMD_NSPAWN_TMPFS_TMP': '0', 'SYSTEMD_SECCOMP': '0'} and shell False Building target platforms: s390x Building for target s390x setting SOURCE_DATE_EPOCH=1630540800 Wrote: /builddir/build/SRPMS/golang-github-clbanning-mxj-2.5.5-4.fc38.src.rpm Child return code was: 0 ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bb --target s390x --nodeps /builddir/build/SPECS/golang-github-clbanning-mxj.spec'], chrootPath='/var/lib/mock/fedora-rawhide-s390x-1674446799.127813/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=0uid=1001gid=135user='mockbuild'nspawn_args=['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.853u7uvl:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']unshare_net=TrueprintOutput=True) Using nspawn with args ['--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.853u7uvl:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11'] Executing command: ['/usr/bin/systemd-nspawn', '-q', '-M', '2451c6ff16d54ddda2bd74aa7b09600c', '-D', '/var/lib/mock/fedora-rawhide-s390x-1674446799.127813/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--rlimit=RLIMIT_NOFILE=10240', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.853u7uvl:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11', '--console=pipe', '--setenv=TERM=vt100', '--setenv=SHELL=/bin/bash', '--setenv=HOME=/builddir', '--setenv=HOSTNAME=mock', '--setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin', '--setenv=PROMPT_COMMAND=printf "\\033]0;\\007"', '--setenv=PS1= \\s-\\v\\$ ', '--setenv=LANG=C.UTF-8', '--resolv-conf=off', 'bash', '--login', '-c', '/usr/bin/rpmbuild -bb --target s390x --nodeps /builddir/build/SPECS/golang-github-clbanning-mxj.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8', 'SYSTEMD_NSPAWN_TMPFS_TMP': '0', 'SYSTEMD_SECCOMP': '0'} and shell False Building target platforms: s390x Building for target s390x setting SOURCE_DATE_EPOCH=1630540800 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.UHOBXd + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf mxj-2.5.5 + /usr/lib/rpm/rpmuncompress -x /builddir/build/SOURCES/mxj-2.5.5.tar.gz + STATUS=0 + '[' 0 -ne 0 ']' + cd mxj-2.5.5 + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + rm -fr /builddir/build/BUILD/mxj-2.5.5/vendor + [[ ! -e /builddir/build/BUILD/mxj-2.5.5/_build/bin ]] + install -m 0755 -vd /builddir/build/BUILD/mxj-2.5.5/_build/bin install: creating directory '/builddir/build/BUILD/mxj-2.5.5/_build' install: creating directory '/builddir/build/BUILD/mxj-2.5.5/_build/bin' + export GOPATH=/builddir/build/BUILD/mxj-2.5.5/_build:/usr/share/gocode + GOPATH=/builddir/build/BUILD/mxj-2.5.5/_build:/usr/share/gocode + [[ ! -e /builddir/build/BUILD/mxj-2.5.5/_build/src/github.com/clbanning/mxj ]] ++ dirname /builddir/build/BUILD/mxj-2.5.5/_build/src/github.com/clbanning/mxj + install -m 0755 -vd /builddir/build/BUILD/mxj-2.5.5/_build/src/github.com/clbanning install: creating directory '/builddir/build/BUILD/mxj-2.5.5/_build/src' install: creating directory '/builddir/build/BUILD/mxj-2.5.5/_build/src/github.com' install: creating directory '/builddir/build/BUILD/mxj-2.5.5/_build/src/github.com/clbanning' + ln -fs /builddir/build/BUILD/mxj-2.5.5 /builddir/build/BUILD/mxj-2.5.5/_build/src/github.com/clbanning/mxj + cd /builddir/build/BUILD/mxj-2.5.5/_build/src/github.com/clbanning/mxj + rm -rf deprecate/ + RPM_EC=0 ++ jobs -p + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.8aAj6r + umask 022 + cd /builddir/build/BUILD + '[' /builddir/build/BUILDROOT/golang-github-clbanning-mxj-2.5.5-4.fc38.s390x '!=' / ']' + rm -rf /builddir/build/BUILDROOT/golang-github-clbanning-mxj-2.5.5-4.fc38.s390x ++ dirname /builddir/build/BUILDROOT/golang-github-clbanning-mxj-2.5.5-4.fc38.s390x + mkdir -p /builddir/build/BUILDROOT + mkdir /builddir/build/BUILDROOT/golang-github-clbanning-mxj-2.5.5-4.fc38.s390x + cd mxj-2.5.5 + cd /builddir/build/BUILD/mxj-2.5.5/_build/src/github.com/clbanning/mxj + IFS= + gosupfiles= + mapfile -t gosupfilesA + go-rpm-integration install -i github.com/clbanning/mxj -b /builddir/build/BUILD/mxj-2.5.5/_build/bin -s /builddir/build/BUILD/mxj-2.5.5/_build -o golang-github-clbanning-mxj-devel.file-list -O /builddir/build/BUILD/mxj-2.5.5 -V 2.5.5-4.fc38 -p /builddir/build/BUILDROOT/golang-github-clbanning-mxj-2.5.5-4.fc38.s390x -g /usr/share/gocode -r '.*example.*' Installing: github.com/clbanning/mxj + IFS= +++ realpath -e --relative-base=. examples readme.md x2j-wrapper/README +++ sort -u ++ listfiles_include='examples readme.md x2j-wrapper/README' ++ echo 'examples readme.md x2j-wrapper/README' + godocs='examples readme.md x2j-wrapper/README' + [[ -n examples readme.md x2j-wrapper/README ]] + IFS= + read -r f + echo %doc '"examples"' + IFS= + read -r f + echo %doc '"readme.md"' + IFS= + read -r f + echo %doc '"x2j-wrapper/README"' + IFS= + read -r f + IFS= +++ realpath -e --relative-base=. LICENSE x2j-wrapper/LICENSE +++ sort -u ++ listfiles_include='LICENSE x2j-wrapper/LICENSE' ++ echo 'LICENSE x2j-wrapper/LICENSE' + golicenses='LICENSE x2j-wrapper/LICENSE' + [[ -n LICENSE x2j-wrapper/LICENSE ]] + IFS= + read -r f + echo %license '"LICENSE"' + IFS= + read -r f + echo %license '"x2j-wrapper/LICENSE"' + IFS= + read -r f + /usr/lib/rpm/check-buildroot + /usr/lib/rpm/redhat/brp-ldconfig + /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/redhat/brp-strip-lto /usr/bin/strip + /usr/lib/rpm/brp-strip-static-archive /usr/bin/strip + /usr/lib/rpm/check-rpaths + /usr/lib/rpm/redhat/brp-mangle-shebangs + /usr/lib/rpm/brp-remove-la-files + env /usr/lib/rpm/redhat/brp-python-bytecompile '' 1 0 -j2 + /usr/lib/rpm/redhat/brp-python-hardlink Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.uVLvhY + umask 022 + cd /builddir/build/BUILD + cd mxj-2.5.5 + LDFLAGS=' -X github.com/clbanning/mxj/version=2.5.5' + GO_TEST_FLAGS='-buildmode pie -compiler gc' + GO_TEST_EXT_LD_FLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes ' + go-rpm-integration check -i github.com/clbanning/mxj -b /builddir/build/BUILD/mxj-2.5.5/_build/bin -s /builddir/build/BUILD/mxj-2.5.5/_build -V 2.5.5-4.fc38 -p /builddir/build/BUILDROOT/golang-github-clbanning-mxj-2.5.5-4.fc38.s390x -g /usr/share/gocode -r '.*example.*' Testing in: /builddir/build/BUILD/mxj-2.5.5/_build/src PATH: /builddir/build/BUILD/mxj-2.5.5/_build/bin:/builddir/.local/bin:/builddir/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin GOPATH: /builddir/build/BUILD/mxj-2.5.5/_build:/usr/share/gocode GO111MODULE: off command: go test -buildmode pie -compiler gc -ldflags " -X github.com/clbanning/mxj/version=2.5.5 -extldflags '-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 -specs=/usr/lib/rpm/redhat/redhat-package-notes '" testing: github.com/clbanning/mxj github.com/clbanning/mxj ---------------- anyxml_test.go ... []->x: somevaluesomevaluesomevaluesomeothervaluestring3.14159265true a->x: trythis3.14159265true a->x: trythis3.14159265true f->x: 3.14159625 s->x: somevalue3.1415963 []->x: somevalue somevalue somevalue someothervalue string 3.14159265 true a->x: try this 3.14159265 true f->x: 3.14159625 f->x: 3.14159625 s->x: somevalue 3.1415963 ----------------- TestPrefixDefault ... ----------------- TestPrefixNoHyphen ... ----------------- TestPrefixUnderscore ... ----------------- TestPrefixAt ... ----------------- TestMarshalPrefixDefault ... a test a test ----------------- TestMarshalPrefixNoHyphen ... x: a test this is a test this is not ----------------- TestMarshalPrefixUnderscore ... a test a test ---------------- badxml_test.go TestBadXml ... m: map[Allitems:map[Item:[ map[description:Some description goes here. link:http://www.something.com]]]] m: Some description goes here.http://www.something.com TestBadXmlSeq ... m: map[Allitems:map[Item:[map[#seq:0 #text:] map[#seq:1 description:map[#seq:1 #text:Some description goes here.] link:map[#seq:0 #text:http://www.something.com]]]]] m: http://www.something.comSome description goes here. TestBadXmlReader ... m: map[Allitems:map[Item:[ map[description:Some description goes here. link:http://www.something.com]]]] m: Some description goes here.http://www.something.com TestBadXmlSeqReader ... m: map[Allitems:map[Item:[map[#seq:0 #text:] map[#seq:1 description:map[#seq:1 #text:Some description goes here.] link:map[#seq:0 #text:http://www.something.com]]]]] m: http://www.something.comSome description goes here. --------------- bom_test.go TestBom ... TestBomData ... m: map[Allitems:map[Item:[ map[description:Some description goes here. link:http://www.something.com]]]] m: Some description goes here.http://www.something.com TestBomDataSeq ... m: map[Allitems:map[Item:[map[#seq:0 #text:] map[#seq:1 description:map[#seq:1 #text:Some description goes here.] link:map[#seq:0 #text:http://www.something.com]]]]] m: http://www.something.comSome description goes here. TestBomDataReader ... m: map[Allitems:map[Item:[ map[description:Some description goes here. link:http://www.something.com]]]] m: Some description goes here.http://www.something.com TestBomDataSeqReader ... m: map[Allitems:map[Item:[map[#seq:0 #text:] map[#seq:1 description:map[#seq:1 #text:Some description goes here.] link:map[#seq:0 #text:http://www.something.com]]]]] m: http://www.something.comSome description goes here. ---------------- bulk_test.go ... XmlReader, xmldata: William H. Gaddis The Recognitions One of the seminal American novels of the 20th century. William H. Gaddis JR Won the National Book Award. Austin Tappan Wright Islandia An example of earlier 20th century American utopian fiction. John Hawkes The Beetle Leg A lyrical novel about the construction of Ft. Peck Dam in Montana. T.E. Porter King's Day A magical novella. XmlReader, result : { "book": { "author": "William H. Gaddis", "review": "One of the seminal American novels of the 20th century.", "title": "The Recognitions" } } { "book": { "author": "Austin Tappan Wright", "review": "An example of earlier 20th century American utopian fiction.", "title": "Islandia" } } { "book": { "author": "John Hawkes", "review": "A lyrical novel about the construction of Ft. Peck Dam in Montana.", "title": "The Beetle Leg" } } { "book": { "author": { "first_name": "T.E.", "last_name": "Porter" }, "review": "A magical novella.", "title": "King's Day" } } XmlReader, errors : [xmlReader: 2] xml.Decoder.Token() - XML syntax error on line 5: element closed by [xmlReader: 3] xml.Decoder.Token() - XML syntax error on line 2: unexpected end element JsonReader, jsondata: {"book":{"author":"William H. Gaddis","review":"One of the great seminal American novels of the 20th century.","title":"The Recognitions"}} {"book":{"author":"Austin Tappan Wright","review":"An example of earlier 20th century American utopian fiction.","title":"Islandia"}} {"book":{"author":"John Hawkes","review":"A lyrical novel about the construction of Ft. Peck Dam in Montana.","title":"The Beetle Leg"}} {"book":{"author":{"first_name":"T.E.","last_name":"Porter"},"review":"A magical novella.","title":"King's Day"}} { "here":"we", "put":"in", "an":error } JsonReader, result : William H. Gaddis One of the great seminal American novels of the 20th century. The Recognitions Austin Tappan Wright An example of earlier 20th century American utopian fiction. Islandia John Hawkes A lyrical novel about the construction of Ft. Peck Dam in Montana. The Beetle Leg T.E. Porter A magical novella. King's Day JsonReader, errors : [jsonReader: 5] invalid character 'e' looking for beginning of value ---------------- bulkraw_test.go ... XmlReaderRaw, xmldata: William H. Gaddis The Recognitions One of the seminal American novels of the 20th century. William H. Gaddis JR Won the National Book Award. Austin Tappan Wright Islandia An example of earlier 20th century American utopian fiction. John Hawkes The Beetle Leg A lyrical novel about the construction of Ft. Peck Dam in Montana. T.E. Porter King's Day A magical novella. XmlReaderRaw, result : { "book": { "author": "William H. Gaddis", "review": "One of the seminal American novels of the 20th century.", "title": "The Recognitions" } } { "book": { "author": "Austin Tappan Wright", "review": "An example of earlier 20th century American utopian fiction.", "title": "Islandia" } } { "book": { "author": "John Hawkes", "review": "A lyrical novel about the construction of Ft. Peck Dam in Montana.", "title": "The Beetle Leg" } } { "book": { "author": { "first_name": "T.E.", "last_name": "Porter" }, "review": "A magical novella.", "title": "King's Day" } } XmlReaderRaw, errors : [xmlReader: 2] xml.Decoder.Token() - XML syntax error on line 5: element closed by William H. Gaddis JR Won the National Book Award. [xmlReader: 3] xml.Decoder.Token() - XML syntax error on line 2: unexpected end element JsonReaderRaw, jsondata: {"book":{"author":"William H. Gaddis","review":"One of the great seminal American novels of the 20th century.","title":"The Recognitions"}} {"book":{"author":"Austin Tappan Wright","review":"An example of earlier 20th century American utopian fiction.","title":"Islandia"}} {"book":{"author":"John Hawkes","review":"A lyrical novel about the construction of Ft. Peck Dam in Montana.","title":"The Beetle Leg"}} {"book":{"author":{"first_name":"T.E.","last_name":"Porter"},"review":"A magical novella.","title":"King's Day"}} { "here":"we", "put":"in", "an":error } JsonReaderRaw, result : William H. Gaddis One of the great seminal American novels of the 20th century. The Recognitions Austin Tappan Wright An example of earlier 20th century American utopian fiction. Islandia John Hawkes A lyrical novel about the construction of Ft. Peck Dam in Montana. The Beetle Leg T.E. Porter A magical novella. King's Day JsonReaderRaw, errors : [jsonReader: 5] invalid character 'e' looking for beginning of value {"here":"we","put":"in","an":error} cast_test.go ---------- ------------ TestCastDefault ... mxj.Map{"doc":map[string]interface {}{"bool":map[string]interface {}{"T":"T", "f":"f", "false":"FALSE", "true":"true"}, "float":"3.14159625", "int":"2019", "string":"string"}} ------------ TestCastTrue ... mxj.Map{"doc":map[string]interface {}{"bool":map[string]interface {}{"T":true, "f":false, "false":false, "true":true}, "float":3.14159625, "int":2019, "string":"string"}} ------------ TestSetCheckTagToSkipFunc ... mxj.Map{"doc":map[string]interface {}{"bool":map[string]interface {}{"T":true, "f":false, "false":"FALSE", "true":true}, "float":3.14159625, "int":"2019", "string":"string"}} ------------ TestCastValuesToFloat(false) ... mxj.Map{"doc":map[string]interface {}{"bool":map[string]interface {}{"T":true, "f":false, "false":"FALSE", "true":true}, "float":"3.14159625", "int":"2019", "string":"string"}} ------------ TestCastValuesToBool(false) ... mxj.Map{"doc":map[string]interface {}{"bool":map[string]interface {}{"T":"T", "f":"f", "false":"FALSE", "true":"true"}, "float":3.14159625, "int":"2019", "string":"string"}} ================== TestEscapeChars s: "'<>& ss: "'<>& ================== TestXMLEscapeChars s: "'<>& m: "'<>& ================== TestXMLEscapeChars2 "'<>& map[doc:map[simple:map[#text:"'<>& _attr1:an attribute]]] mv: "'<>& ================== TestXMLSeqEscapeChars data: >0-2y m: map[doc:map[shortDescription:map[#seq:0 #text:>0-2y]]] m: >0-2y ================== TestXMLSeqEscapeChars2 data: >0-2y <10-15 m: map[doc:map[shortDescription:[map[#attr:map[test:map[#seq:0 #text:&something here]] #seq:0 #text:>0-2y] map[#attr:map[quote:map[#seq:1 #text:"] test:map[#seq:0 #text:something there]] #seq:1 #text:<10-15]]]] m: >0-2y <10-15 ------------ exists_test.go ---------------- files_test.go ... NewMapsFromJsonFile() map[a:test file:for files_test.go:case this:is] map[JSON:values true:true two:2 with:just] caught error: stat nil: no such file or directory caught error: error: invalid character 'J' looking for beginning of value - reading: {"with":"some","bad":JSON,"in":"it"} NewMapsFromJsonFileRaw() {map[a:test file:for files_test.go:case this:is] [123 34 116 104 105 115 34 58 34 105 115 34 44 34 97 34 58 34 116 101 115 116 34 44 34 102 105 108 101 34 58 34 102 111 114 34 44 34 102 105 108 101 115 95 116 101 115 116 46 103 111 34 58 34 99 97 115 101 34 125]} {map[JSON:values true:true two:2 with:just] [123 34 119 105 116 104 34 58 34 106 117 115 116 34 44 34 116 119 111 34 58 50 44 34 74 83 79 78 34 58 34 118 97 108 117 101 115 34 44 34 116 114 117 101 34 58 116 114 117 101 125]} caught error: stat nil: no such file or directory caught error: error: invalid character 'J' looking for beginning of value - reading: {"with":"some","bad":JSON,"in":"it"} NewMapsFromXmlFile() map[doc:map[data:for files.go some:test]] map[msg:map[another:doc for:test case just:some]] caught error: stat nil: no such file or directory caught error: error: xml.Decoder.Token() - XML syntax error on line 4: element closed by - reading: some doc NewMapsFromXmlFileRaw() {map[doc:map[data:for files.go some:test]] [60 100 111 99 62 10 9 60 115 111 109 101 62 116 101 115 116 60 47 115 111 109 101 62 10 9 60 100 97 116 97 62 102 111 114 32 102 105 108 101 115 46 103 111 60 47 100 97 116 97 62 10 60 47 100 111 99 62]} {map[msg:map[another:doc for:test case just:some]] [10 60 109 115 103 62 10 9 60 106 117 115 116 62 115 111 109 101 60 47 106 117 115 116 62 10 9 60 97 110 111 116 104 101 114 62 100 111 99 60 47 97 110 111 116 104 101 114 62 10 9 60 102 111 114 62 116 101 115 116 32 99 97 115 101 60 47 102 111 114 62 10 60 47 109 115 103 62]} caught error: stat nil: no such file or directory caught error: error: xml.Decoder.Token() - XML syntax error on line 4: element closed by - reading: some doc TestMaps() mvs: [map[a:test this:is] map[a:test this:is]] JsonString(): {"a":"test","this":"is"}{"a":"test","this":"is"} JsonStringIndent(): { "a": "test", "this": "is" } { "a": "test", "this": "is" } XmlString(): testistestis XmlStringIndent(): test is test is map[a:test file:for files_test.go:case this:is] map[JSON:values true:true two:2 with:just] files_test_dup.json written files_test_indent.json written map[doc:map[data:for files.go some:test]] map[msg:map[another:doc for:test case just:some]] files_test_dup.xml written files_test_indent.xml written ---------------- gob_test.go ... m: map[five:map[hi:there] four:[1 2 3 4] one:1 three:tres two:2.0001] m: map[five:map[hi:there] four:[1 2 3 4] one:1 three:tres two:2.0001] mv: map[five:map[hi:there] four:[1 2 3 4] one:1 three:tres two:2.0001] m : map[five:map[hi:there] four:[1 2 3 4] one:1 three:tres two:2.0001] ================== TestXmlCheckIsValid map[:empty $invalid:hex$ entities:<>& nil:] map[$invalid:hex$ entities:<>& nil:] map[entities:<>& nil:] map[nil:] map[doc:map[elem:map[#seq:0 #text:element]]] ---------------- j2x_test .go ... j2x, jdata: { "key1":"string", "key2":34, "key3":true, "key4":"unsafe: <>&", "key5":null } j2x, m : map[key1:string key2:34 key3:true key4:unsafe: <>& key5:] j2x, xml : string34trueunsafe: <>& ---------------- json_test.go ... NewMapJson, jdata: { "key1":"string", "key2":34, "key3":true, "key4":"unsafe: <>&", "key5":null } NewMapJson, m : mxj.Map{"key1":"string", "key2":34, "key3":true, "key4":"unsafe: <>&", "key5":interface {}(nil)} NewMapJson, jdata: { "key1":"string", "key2":34, "key3":true, "key4":"unsafe: <>&", "key5":null } NewMapJson, m : mxj.Map{"key1":"string", "key2":"34", "key3":true, "key4":"unsafe: <>&", "key5":interface {}(nil)} NewMapJsonError, jdata : { "key1":"string", "key2":34, "key3":true, "key4":"unsafe: <>&", "key5":null NewMapJsonError, merror: unexpected EOF NewMapJsonError, newData : { "this":"is", "in":error } NewMapJsonError, merror : invalid character 'e' looking for beginning of value NewMapJsonReader, jb: {"key1":"string","key2":34,"key3":true,"key4":"unsafe: <>&"} NewMapJsonReader, m : mxj.Map{"key1":"string", "key2":34, "key3":true, "key4":"unsafe: <>&"} NewMapJsonReader, jb: {"key":"value in new JSON string"} NewMapJsonReader, m : mxj.Map{"key":"value in new JSON string"} NewMapJsonReader, jb: {"key1":"string","key2":34,"key3":true,"key4":"unsafe: <>&"} NewMapJsonReader, m : mxj.Map{"key1":"string", "key2":"34", "key3":true, "key4":"unsafe: <>&"} NewMapJsonReader, jb: {"key":"value in new JSON string"} NewMapJsonReader, m : mxj.Map{"key":"value in new JSON string"} Json, jdata: { "key1":"string", "key2":34, "key3":true, "key4":"unsafe: <>&", "key5":null } Json, j : {"key1":"string","key2":34,"key3":true,"key4":"unsafe: <>&","key5":null} Json, j safe: {"key1":"string","key2":34,"key3":true,"key4":"unsafe: \u003c\u003e\u0026","key5":null} JsonWriter, raw: {"and":"a","bool":true,"float":3.14159,"this":"is a"} JsonWriter, b : {"and":"a","bool":true,"float":3.14159,"this":"is a"} -------------- keystolower_test.go TestToLower ... ----------- TestSetSubkeyFieldSeparator ---------------- keyvalues_test.go ... PathsForKey, doc1 ... PathsForKey, doc1#author ... ss: [doc.books.book.author] PathsForKey, doc1#books ... ss: [doc.books] PathsForKey, doc2 ... PathForKey, doc2#book ... ss: [doc.book doc.books.book] PathForKeyShortest, doc2#book ... s : doc.book ValuesForKey ... ValuesForKey, doc1#author ... ss.v: William T. Gaddis ... ss.v: Austin Tappan Wright ... ss.v: John Hawkes ... ss.v: map[first_name:T.E. last_name:Porter] ValuesForKey, doc1#book ... ss.v: map[-seq:1 author:William T. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions] ... ss.v: map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia] ... ss.v: map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg] ... ss.v: map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day] ValuesForKey, doc1#book,-seq:3 ... ss.v: map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg] ValuesForKey, doc1#book, author:William T. Gaddis ... ss.v: map[-seq:1 author:William T. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions] ValuesForKey, doc1#author, -seq:1 ValuesForPath ... ValuesForPath, doc.books.book.author ... ss.v: William T. Gaddis ... ss.v: Austin Tappan Wright ... ss.v: John Hawkes ... ss.v: map[first_name:T.E. last_name:Porter] ValuesForPath, doc.books.book ... ss.v: map[-seq:1 author:William T. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions] ... ss.v: map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia] ... ss.v: map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg] ... ss.v: map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day] ValuesForPath, doc.books.book -seq=3 ... ss.v: map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg] ValuesForPath, doc.books.* -seq=3 ... ss.v: map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg] ValuesForPath, doc.*.* -seq=3 ... ss.v: map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg] ValuesForNotKey ... ValuesForPath, doc.books.book !author:William T. Gaddis ... ss.v: map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia] ... ss.v: map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg] ... ss.v: map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day] ValuesForPath, doc.books.book !author:* ValuesForPath, doc.books.book !unknown:* ... ss.v: map[-seq:1 author:William T. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions] ... ss.v: map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia] ... ss.v: map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg] ... ss.v: map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day] ---------------- indexedarray_test.go ... j_data: { "stuff":[ { "data":[ { "F":1 }, { "F":2 }, { "F":3 } ] }, { "data":[ 4, 5, 6 ] } ] } m: map[stuff:[map[data:[map[F:1] map[F:2] map[F:3]]] map[data:[4 5 6]]]] stuff[0]: [map[data:[map[F:1] map[F:2] map[F:3]]]] stuff.data: [map[F:1] map[F:2] map[F:3] 4 5 6] stuff[0].data: [map[F:1] map[F:2] map[F:3]] stuff.data[0]: [map[F:1] 4] stuff.*[2]: [map[F:3] 6] stuff.data.F: [1 2 3] *.*.F: [1 2 3] stuff.data[0].F: [1] stuff.data[1].F: [2] stuff[0].data[2]: [map[F:3]] stuff[1].data[1]: [5] stuff[1].data[1].F [] stuff[1].data.F: [] x_data: 1 2 3 4 5 6 m: map[doc:map[stuff:[map[data:[map[-seq:1.1 F:1] map[-seq:1.2 F:2] map[-seq:1.3 F:3]]] map[data:[map[-seq:2.1 F:4] map[-seq:2.2 F:5] map[-seq:2.3 F:6]]]]]] doc.stuff[0]: [map[data:[map[-seq:1.1 F:1] map[-seq:1.2 F:2] map[-seq:1.3 F:3]]]] doc.stuff.data[0]: [map[-seq:1.1 F:1] map[-seq:2.1 F:4]] doc.stuff.data[0] -seq:2.1: [map[-seq:2.1 F:4]] doc.stuff.data[0].F: [1 4] doc.stuff[0].data[2]: [map[-seq:1.3 F:3]] doc.stuff[1].data[1].F: [5] ak_data: { "section1":{"data" : [{"F1" : "F1 data","F2" : "F2 data"},{"F1" : "demo 123","F2" : "abc xyz"}]}} m: map[section1:map[data:[map[F1:F1 data F2:F2 data] map[F1:demo 123 F2:abc xyz]]]] section1.data[0].F1: [F1 data] ---------------- leafnode_test.go ... json1-LeafNodes: mxj.LeafNode{Path:"friends[0].skills[0]", Value:44} mxj.LeafNode{Path:"friends[0].skills[1]", Value:12} json1-LeafPaths: "friends[0].skills[0]" "friends[0].skills[1]" json2-LeafNodes: mxj.LeafNode{Path:"friends.skills[0]", Value:44} mxj.LeafNode{Path:"friends.skills[1]", Value:12} json1-LeafValues: 44 12 json3-LeafNodes: mxj.LeafNode{Path:"a", Value:"list"} mxj.LeafNode{Path:"of[0]", Value:"data"} mxj.LeafNode{Path:"of[1]", Value:"of"} mxj.LeafNode{Path:"of[2]", Value:3} mxj.LeafNode{Path:"of[3]", Value:"types"} mxj.LeafNode{Path:"of[4]", Value:true} json3-LeafValues: "list" "data" "of" 3 "types" true json3-LeafPaths: "a" "of[0]" "of[1]" "of[2]" "of[3]" "of[4]" xml2data2-LeafValues: mxj.LeafNode{Path:"doc.item[0].-num", Value:"2"} mxj.LeafNode{Path:"doc.item[0].-color", Value:"blue"} mxj.LeafNode{Path:"doc.item[0].#text", Value:"Item 2 is blue"} mxj.LeafNode{Path:"doc.item[1].-num", Value:"3"} mxj.LeafNode{Path:"doc.item[1].-color", Value:"green"} mxj.LeafNode{Path:"doc.item[1].arm[0].-length", Value:"3.5"} mxj.LeafNode{Path:"doc.item[1].arm[0].-side", Value:"left"} mxj.LeafNode{Path:"doc.item[1].arm[1].-side", Value:"right"} mxj.LeafNode{Path:"doc.item[1].arm[1].-length", Value:"3.6"} xml2data2-LeafValues(NoAttributes): mxj.LeafNode{Path:"doc.item[0]", Value:"Item 2 is blue"} no-hyphen-xml2data2-LeafValues: mxj.LeafNode{Path:"doc.item[0].num", Value:"2"} mxj.LeafNode{Path:"doc.item[0].color", Value:"blue"} mxj.LeafNode{Path:"doc.item[0].#text", Value:"Item 2 is blue"} mxj.LeafNode{Path:"doc.item[1].arm[0].side", Value:"left"} mxj.LeafNode{Path:"doc.item[1].arm[0].length", Value:"3.5"} mxj.LeafNode{Path:"doc.item[1].arm[1].side", Value:"right"} mxj.LeafNode{Path:"doc.item[1].arm[1].length", Value:"3.6"} mxj.LeafNode{Path:"doc.item[1].num", Value:"3"} mxj.LeafNode{Path:"doc.item[1].color", Value:"green"} no-hyphen-xml2data2-LeafValues(NoAttributes): mxj.LeafNode{Path:"doc.item[0].num", Value:"2"} mxj.LeafNode{Path:"doc.item[0].color", Value:"blue"} mxj.LeafNode{Path:"doc.item[0]", Value:"Item 2 is blue"} mxj.LeafNode{Path:"doc.item[1].num", Value:"3"} mxj.LeafNode{Path:"doc.item[1].color", Value:"green"} mxj.LeafNode{Path:"doc.item[1].arm[0].side", Value:"left"} mxj.LeafNode{Path:"doc.item[1].arm[0].length", Value:"3.5"} mxj.LeafNode{Path:"doc.item[1].arm[1].side", Value:"right"} mxj.LeafNode{Path:"doc.item[1].arm[1].length", Value:"3.6"} DotNotation-LeafValues: mxj.LeafNode{Path:"doc.item.0.-num", Value:"2"} mxj.LeafNode{Path:"doc.item.0.-color", Value:"blue"} mxj.LeafNode{Path:"doc.item.0.#text", Value:"Item 2 is blue"} mxj.LeafNode{Path:"doc.item.1.-num", Value:"3"} mxj.LeafNode{Path:"doc.item.1.-color", Value:"green"} mxj.LeafNode{Path:"doc.item.1.arm.0.-side", Value:"left"} mxj.LeafNode{Path:"doc.item.1.arm.0.-length", Value:"3.5"} mxj.LeafNode{Path:"doc.item.1.arm.1.-side", Value:"right"} mxj.LeafNode{Path:"doc.item.1.arm.1.-length", Value:"3.6"} ------------------ misc_test.go ... ---------------- mxj_test.go ... TestMap, m: mxj.Map{"key":"value", "newkey":map[string]interface {}{"bool":true, "float":3.14159, "listkey":[]interface {}{3.1415962535, false, "for all good men"}, "string":"Now is the time"}} TestMap, StringIndent - key : [string] value newkey : bool : [bool] true float : [float64] 3.14159 listkey : [[]interface{}] [float64] 3.1415962535 [bool] false [string] for all good men string : [string] Now is the time TestMap, StringIndent NoTypeInfo - key : value newkey : bool : true float : 3.14159 listkey : 3.1415962535 false for all good men string : Now is the time TestMap, m_fromXML: mxj.Map{"doc":map[string]interface {}{"tag":map[string]interface {}{"sub_tag1":"Hello", "sub_tag2":"World"}}} TestMap, StringIndent - doc : tag : sub_tag1 : [string] Hello sub_tag2 : [string] World TestMap, StringIndent NoTypeInfo - doc : tag : sub_tag1 : Hello sub_tag2 : World TestMap, m.Copy() - map[doc:map[tag:map[sub_tag1:Hello sub_tag2:World]]] ---------------- namespace_test.go ... ---------------- TestBeautifyXml ... 123John Brown 123 John Brown ------------ TestNan ... foo.bar: NAN foo.bar: INF foo.bar: -INF foo.bar: NaN ---------------- newmap_test.go ... j: { "A":"this", "B":"is", "C":"a", "D":"test" } m: mxj.Map{"A":"this", "B":"is", "C":"a", "D":"test"} eval - m.NewMap("A:AA", "B:BB", "C:cc", "D:help") n.Json(): {"AA":"this","BB":"is","cc":"a","help":"test"} n.Xml(): thisisatest n.XmlIndent(): this is a test eval - m.NewMap("A:AA.A", "B:AA.B", "C:AA.B.cc", "D:hello.help") n.Json(): {"AA":{"A":"this","B":["is",{"cc":"a"}]},"hello":{"help":"test"}} n.Xml(): thisisatest n.XmlIndent(): this is a test eval - m.NewMap keypairs: [A:xml.AA B:xml.AA.hello.again C:xml.AA D:xml.AA.hello.help] n.Json(): {"xml":{"AA":["this",{"hello":{"again":"is","help":"test"}},"a"]}} n.Xml(): thisistesta n.XmlIndent(): this is test a original value: no default:text default:word new value: no default:text default:word original value: yes default:text default:word new value: yes default:text default:word ------------ rename_test.go ---------------- seqnum_test.go ... m1: mxj.Map{"Obj":map[string]interface {}{"-c":"la", "-h":"da", "-x":"dee", "IntObj":[]interface {}{map[string]interface {}{"-id":3, "_seq":0}, map[string]interface {}{"-id":2, "_seq":2}}, "IntObj1":map[string]interface {}{"-id":1, "_seq":1}}} { "Obj": { "-c": "la", "-h": "da", "-x": "dee", "IntObj": [ { "-id": 3, "_seq": 0 }, { "-id": 2, "_seq": 2 } ], "IntObj1": { "-id": 1, "_seq": 1 } } } m2: mxj.Map{"Obj":map[string]interface {}{"-c":"la", "-h":"da", "-x":"dee", "IntObj":[]interface {}{map[string]interface {}{"-id":3, "_seq":0}, map[string]interface {}{"-id":2, "_seq":2}}, "NewObj":map[string]interface {}{"BoolObj":map[string]interface {}{"#text":true, "_seq":2}, "StringObj":map[string]interface {}{"#text":"hello", "_seq":1}, "_seq":1, "id":map[string]interface {}{"#text":1, "_seq":0}}}} { "Obj": { "-c": "la", "-h": "da", "-x": "dee", "IntObj": [ { "-id": 3, "_seq": 0 }, { "-id": 2, "_seq": 2 } ], "NewObj": { "BoolObj": { "#text": true, "_seq": 2 }, "StringObj": { "#text": "hello", "_seq": 1 }, "_seq": 1, "id": { "#text": 1, "_seq": 0 } } } } ----------- TestSnakeCase ----------------- TestStrictModeXml ... m: map[document:map[goes_by: lang:E name:Bill & Hallett salute:Duc & 123xx]] ----------------- TestStrictModeXmlSeq ... m: map[document:map[goes_by:map[#seq:2 #text:] lang:map[#seq:3 #text:E] name:map[#seq:0 #text:Bill & Hallett] salute:map[#seq:1 #text:Duc & 123xx]]] ----------------- TestStrictFail ... OK ---------------- struct_test.go ... Struct, m: mxj.Map{"bool":true, "float":3.14159, "int":4, "private":"Somewhere over the rainbow", "str":"now's the time"} Struct, s: mxj.str{IntVal:4, StrVal:"now's the time", FloatVal:3.14159, BoolVal:true, private:""} StructError, mverr: mv.Struct() error: argument is not type Ptr ----------------- structvalue_test.go ... ---------------- updatevalues_test.go ... m: map[doc:map[books:map[book:[map[-seq:1 author:William T. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions] map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia] map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg] map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day]]]]] v: William T. Gaddis v: Austin Tappan Wright v: John Hawkes v: map[first_name:T.E. last_name:Porter] m.UpdateValuesForPath("author:NoName", "doc.books.book.author") 4 updates v: NoName v: NoName v: NoName v: NoName m.UpdateValuesForPath("author:William Gadddis", "doc.books.book.author", "title:The Recognitions") 4 updates v: William Gadddis v: Austin Tappen Wright v: John Hawkes v: T. E. Porter m.UpdateValuesForPath("author:William T. Gaddis", "doc.books.book.*", "title:The Recognitions") 1 updates v: William T. Gaddis v: Austin Tappen Wright v: John Hawkes v: T. E. Porter m.UpdateValuesForPath("title:The Cannibal", "doc.books.book.title", "author:John Hawkes") 2 updates v: map[-seq:1 author:William T. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions] v: map[-seq:2 author:Austin Tappen Wright review:An example of earlier 20th century American utopian fiction. title:Islandia] v: map[-seq:3 author:John Hawkes review:A novel on his experiences in WWII. title:The Cannibal] v: map[-seq:4 author:T. E. Porter review:A magical novella. title:King's Day] m.UpdateValuesForPath("books:", "doc.books") 1 updates m: map[doc:map[books:]] m.UpdateValuesForPath(mm, "*") 1 updates m: map[doc:map[books:map[book:[map[-seq:1 author:William T. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions] map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia] map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg] map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day]]]]] newDoc: simple element m: map[tag:map[#text:simple element -color:green -shape:square]] m.UpdateValuesForPath("#text:maybe not so simple element", "tag") n: 1 m: map[tag:map[#text:maybe not so simple element -color:green -shape:square]] m.UpdateValuesForPath("#text:simple element again", "*") n: 1 m: map[tag:map[#text:simple element again -color:green -shape:square]] biblio : author : [[]interface{}] books : book : [[]interface{}] date : [string] 1955 review : [string] A novel that changed the face of American literature. title : [string] The Recognitions date : [string] 1975 review : [string] Winner of National Book Award for Fiction. title : [string] JR name : [string] William Gaddis books : book : [[]interface{}] date : [string] 1949 review : [string] A novel on his experiences in WWII. title : [string] The Cannibal date : [string] 1951 review : [string] A lyrical novel about the construction of Ft. Peck Dam in Montana. title : [string] The Beetle Leg date : [string] 1970 review : [string] Where everyone wants to vacation. title : [string] The Blood Oranges name : [string] John Hawkes m.UpdateValuesForPath("review:National Book Award winner.", "*.*.*.*", "title:JR") 1 updates v: map[books:map[book:[map[date:1955 review:A novel that changed the face of American literature. title:The Recognitions] map[date:1975 review:National Book Award winner. title:JR]]] name:William Gaddis] m.UpdateValuesForPath(newVal, path, oldVal) 5 updates biblio : author : [[]interface{}] books : book : [[]interface{}] date : [float64] 1955 review : [string] A novel that changed the face of American literature. title : [string] The Recognitions date : [float64] 1975 review : [string] National Book Award winner. title : [string] JR name : [string] William Gaddis books : book : [[]interface{}] date : [float64] 1949 review : [string] A novel on his experiences in WWII. title : [string] The Cannibal date : [float64] 1951 review : [string] A lyrical novel about the construction of Ft. Peck Dam in Montana. title : [string] The Beetle Leg date : [float64] 1970 review : [string] Where everyone wants to vacation. title : [string] The Blood Oranges name : [string] John Hawkes ---------------- xml2_test.go ... NewMapXml4, x: William T. Gaddis The Recognitions One of the great seminal American novels of the 20th century. Austin Tappan Wright Islandia An example of earlier 20th century American utopian fiction. John Hawkes The Beetle Leg A lyrical novel about the construction of Ft. Peck Dam in Montana. T.E. Porter King's Day A magical novella. NewMapXml4, m: map[doc:map[books:map[book:[map[-seq:1 author:William T. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions] map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia] map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg] map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day]]]]] NewMapXml4, s: doc : books : book : [[]interface{}] -seq : [string] 1 author : [string] William T. Gaddis review : [string] One of the great seminal American novels of the 20th century. title : [string] The Recognitions -seq : [string] 2 author : [string] Austin Tappan Wright review : [string] An example of earlier 20th century American utopian fiction. title : [string] Islandia -seq : [string] 3 author : [string] John Hawkes review : [string] A lyrical novel about the construction of Ft. Peck Dam in Montana. title : [string] The Beetle Leg -seq : [string] 4 author : first_name : [string] T.E. last_name : [string] Porter review : [string] A magical novella. title : [string] King's Day NewMapXml4, b: William T. Gaddis One of the great seminal American novels of the 20th century. The Recognitions Austin Tappan Wright An example of earlier 20th century American utopian fiction. Islandia John Hawkes A lyrical novel about the construction of Ft. Peck Dam in Montana. The Beetle Leg T.E. Porter A magical novella. King's Day NewMapXml5, raw: help me! Henry was a renegade Didn't like to play it safe One component at a time There's got to be a better way Oh, people came from miles around Searching for a steady job Welcome to the Motor Town Booming like an atom bomb Oh, Henry was the end of the story Then everything went wrong And we'll return it to its former glory But it just takes so long It's going to take a long time It's going to take it, but we'll make it one day It's going to take a long time It's going to take it, but we'll make it one day NewMapXml5, m: map[msg:map[-mpriority:1 -mtype:alert song:map[-author:Mayer Hawthorne -title:A Long Time chorus:map[line:[map[#text:It's going to take a long time -no:1] map[#text:It's going to take it, but we'll make it one day -no:2] map[#text:It's going to take a long time -no:3] map[#text:It's going to take it, but we'll make it one day -no:4]]] verses:map[verse:[map[-name:verse 1 -no:1 line:[map[#text:Henry was a renegade -no:1] map[#text:Didn't like to play it safe -no:2] map[#text:One component at a time -no:3] map[#text:There's got to be a better way -no:4] map[#text:Oh, people came from miles around -no:5] map[#text:Searching for a steady job -no:6] map[#text:Welcome to the Motor Town -no:7] map[#text:Booming like an atom bomb -no:8]]] map[-name:verse 2 -no:2 line:[map[#text:Oh, Henry was the end of the story -no:1] map[#text:Then everything went wrong -no:2] map[#text:And we'll return it to its former glory -no:3] map[#text:But it just takes so long -no:4]]]]]] text:help me!]] NewMapXml5, s: msg : -mpriority : [string] 1 -mtype : [string] alert song : -author : [string] Mayer Hawthorne -title : [string] A Long Time chorus : line : [[]interface{}] #text : [string] It's going to take a long time -no : [string] 1 #text : [string] It's going to take it, but we'll make it one day -no : [string] 2 #text : [string] It's going to take a long time -no : [string] 3 #text : [string] It's going to take it, but we'll make it one day -no : [string] 4 verses : verse : [[]interface{}] -name : [string] verse 1 -no : [string] 1 line : [[]interface{}] #text : [string] Henry was a renegade -no : [string] 1 #text : [string] Didn't like to play it safe -no : [string] 2 #text : [string] One component at a time -no : [string] 3 #text : [string] There's got to be a better way -no : [string] 4 #text : [string] Oh, people came from miles around -no : [string] 5 #text : [string] Searching for a steady job -no : [string] 6 #text : [string] Welcome to the Motor Town -no : [string] 7 #text : [string] Booming like an atom bomb -no : [string] 8 -name : [string] verse 2 -no : [string] 2 line : [[]interface{}] #text : [string] Oh, Henry was the end of the story -no : [string] 1 #text : [string] Then everything went wrong -no : [string] 2 #text : [string] And we'll return it to its former glory -no : [string] 3 #text : [string] But it just takes so long -no : [string] 4 text : [string] help me! NewMapXml5, b: It's going to take a long timeIt's going to take it, but we'll make it one dayIt's going to take a long timeIt's going to take it, but we'll make it one dayHenry was a renegadeDidn't like to play it safeOne component at a timeThere's got to be a better wayOh, people came from miles aroundSearching for a steady jobWelcome to the Motor TownBooming like an atom bombOh, Henry was the end of the storyThen everything went wrongAnd we'll return it to its former gloryBut it just takes so longhelp me! NewMapXml5, b: It's going to take a long time It's going to take it, but we'll make it one day It's going to take a long time It's going to take it, but we'll make it one day Henry was a renegade Didn't like to play it safe One component at a time There's got to be a better way Oh, people came from miles around Searching for a steady job Welcome to the Motor Town Booming like an atom bomb Oh, Henry was the end of the story Then everything went wrong And we'll return it to its former glory But it just takes so long help me! NewMapXml6, raw: Code Review - My issueshttp://codereview.appspot.com/rietveld<>rietveld: an attempt at pubsubhubbub 2009-10-04T01:35:58+00:00email-address-removedurn:md5:134d9179c41f806be79b3a5f7877d19a An attempt at adding pubsubhubbub support to Rietveld. http://code.google.com/p/pubsubhubbub http://code.google.com/p/rietveld/issues/detail?id=155 The server side of the protocol is trivial: 1. add a &lt;link rel=&quot;hub&quot; href=&quot;hub-server&quot;&gt; tag to all feeds that will be pubsubhubbubbed. 2. every time one of those feeds changes, tell the hub with a simple POST request. I have tested this by adding debug prints to a local hub server and checking that the server got the right publish requests. I can&#39;t quite get the server to work, but I think the bug is not in my code. I think that the server expects to be able to grab the feed and see the feed&#39;s actual URL in the link rel=&quot;self&quot;, but the default value for that drops the :port from the URL, and I cannot for the life of me figure out how to get the Atom generator deep inside django not to do that, or even where it is doing that, or even what code is running to generate the Atom feed. (I thought I knew but I added some assert False statements and it kept running!) Ignoring that particular problem, I would appreciate feedback on the right way to get the two values at the top of feeds.py marked NOTE(rsc). rietveld: correct tab handling 2009-10-03T23:02:17+00:00email-address-removedurn:md5:0a2a4f19bb815101f0ba2904aed7c35a This fixes the buggy tab rendering that can be seen at http://codereview.appspot.com/116075/diff/1/2 The fundamental problem was that the tab code was not being told what column the text began in, so it didn&#39;t know where to put the tab stops. Another problem was that some of the code assumed that string byte offsets were the same as column offsets, which is only true if there are no tabs. In the process of fixing this, I cleaned up the arguments to Fold and ExpandTabs and renamed them Break and _ExpandTabs so that I could be sure that I found all the call sites. I also wanted to verify that ExpandTabs was not being used from outside intra_region_diff.py. NewMapXml6, m: map[feed:map[-lang:en-us -updated:2009-10-04T01:35:58+00:00 -xmlns:http://www.w3.org/2005/Atom author:map[name:rietveld<>] entry:[map[author:map[name:email-address-removed] id:urn:md5:134d9179c41f806be79b3a5f7877d19a link:map[-href:http://codereview.appspot.com/126085 -rel:alternate] summary:map[#text:An attempt at adding pubsubhubbub support to Rietveld. http://code.google.com/p/pubsubhubbub http://code.google.com/p/rietveld/issues/detail?id=155 The server side of the protocol is trivial: 1. add a <link rel="hub" href="hub-server"> tag to all feeds that will be pubsubhubbubbed. 2. every time one of those feeds changes, tell the hub with a simple POST request. I have tested this by adding debug prints to a local hub server and checking that the server got the right publish requests. I can't quite get the server to work, but I think the bug is not in my code. I think that the server expects to be able to grab the feed and see the feed's actual URL in the link rel="self", but the default value for that drops the :port from the URL, and I cannot for the life of me figure out how to get the Atom generator deep inside django not to do that, or even where it is doing that, or even what code is running to generate the Atom feed. (I thought I knew but I added some assert False statements and it kept running!) Ignoring that particular problem, I would appreciate feedback on the right way to get the two values at the top of feeds.py marked NOTE(rsc). -type:html] title:rietveld: an attempt at pubsubhubbub updated:2009-10-04T01:35:58+00:00] map[author:map[name:email-address-removed] id:urn:md5:0a2a4f19bb815101f0ba2904aed7c35a link:map[-href:http://codereview.appspot.com/124106 -rel:alternate] summary:map[#text:This fixes the buggy tab rendering that can be seen at http://codereview.appspot.com/116075/diff/1/2 The fundamental problem was that the tab code was not being told what column the text began in, so it didn't know where to put the tab stops. Another problem was that some of the code assumed that string byte offsets were the same as column offsets, which is only true if there are no tabs. In the process of fixing this, I cleaned up the arguments to Fold and ExpandTabs and renamed them Break and _ExpandTabs so that I could be sure that I found all the call sites. I also wanted to verify that ExpandTabs was not being used from outside intra_region_diff.py. -type:html] title:rietveld: correct tab handling updated:2009-10-03T23:02:17+00:00]] id:http://codereview.appspot.com/ link:[map[-href:http://codereview.appspot.com/ -rel:alternate] map[-href:http://codereview.appspot.com/rss/mine/rsc -rel:self]] title:Code Review - My issues]] NewMapXml6, s: feed : -lang : [string] en-us -updated : [string] 2009-10-04T01:35:58+00:00 -xmlns : [string] http://www.w3.org/2005/Atom author : name : [string] rietveld<> entry : [[]interface{}] author : name : [string] email-address-removed id : [string] urn:md5:134d9179c41f806be79b3a5f7877d19a link : -href : [string] http://codereview.appspot.com/126085 -rel : [string] alternate summary : #text : [string] An attempt at adding pubsubhubbub support to Rietveld. http://code.google.com/p/pubsubhubbub http://code.google.com/p/rietveld/issues/detail?id=155 The server side of the protocol is trivial: 1. add a <link rel="hub" href="hub-server"> tag to all feeds that will be pubsubhubbubbed. 2. every time one of those feeds changes, tell the hub with a simple POST request. I have tested this by adding debug prints to a local hub server and checking that the server got the right publish requests. I can't quite get the server to work, but I think the bug is not in my code. I think that the server expects to be able to grab the feed and see the feed's actual URL in the link rel="self", but the default value for that drops the :port from the URL, and I cannot for the life of me figure out how to get the Atom generator deep inside django not to do that, or even where it is doing that, or even what code is running to generate the Atom feed. (I thought I knew but I added some assert False statements and it kept running!) Ignoring that particular problem, I would appreciate feedback on the right way to get the two values at the top of feeds.py marked NOTE(rsc). -type : [string] html title : [string] rietveld: an attempt at pubsubhubbub updated : [string] 2009-10-04T01:35:58+00:00 author : name : [string] email-address-removed id : [string] urn:md5:0a2a4f19bb815101f0ba2904aed7c35a link : -href : [string] http://codereview.appspot.com/124106 -rel : [string] alternate summary : #text : [string] This fixes the buggy tab rendering that can be seen at http://codereview.appspot.com/116075/diff/1/2 The fundamental problem was that the tab code was not being told what column the text began in, so it didn't know where to put the tab stops. Another problem was that some of the code assumed that string byte offsets were the same as column offsets, which is only true if there are no tabs. In the process of fixing this, I cleaned up the arguments to Fold and ExpandTabs and renamed them Break and _ExpandTabs so that I could be sure that I found all the call sites. I also wanted to verify that ExpandTabs was not being used from outside intra_region_diff.py. -type : [string] html title : [string] rietveld: correct tab handling updated : [string] 2009-10-03T23:02:17+00:00 id : [string] http://codereview.appspot.com/ link : [[]interface{}] -href : [string] http://codereview.appspot.com/ -rel : [string] alternate -href : [string] http://codereview.appspot.com/rss/mine/rsc -rel : [string] self title : [string] Code Review - My issues NewMapXml6, b: rietveld<>email-address-removedurn:md5:134d9179c41f806be79b3a5f7877d19aAn attempt at adding pubsubhubbub support to Rietveld. http://code.google.com/p/pubsubhubbub http://code.google.com/p/rietveld/issues/detail?id=155 The server side of the protocol is trivial: 1. add a <link rel="hub" href="hub-server"> tag to all feeds that will be pubsubhubbubbed. 2. every time one of those feeds changes, tell the hub with a simple POST request. I have tested this by adding debug prints to a local hub server and checking that the server got the right publish requests. I can't quite get the server to work, but I think the bug is not in my code. I think that the server expects to be able to grab the feed and see the feed's actual URL in the link rel="self", but the default value for that drops the :port from the URL, and I cannot for the life of me figure out how to get the Atom generator deep inside django not to do that, or even where it is doing that, or even what code is running to generate the Atom feed. (I thought I knew but I added some assert False statements and it kept running!) Ignoring that particular problem, I would appreciate feedback on the right way to get the two values at the top of feeds.py marked NOTE(rsc).rietveld: an attempt at pubsubhubbub2009-10-04T01:35:58+00:00email-address-removedurn:md5:0a2a4f19bb815101f0ba2904aed7c35aThis fixes the buggy tab rendering that can be seen at http://codereview.appspot.com/116075/diff/1/2 The fundamental problem was that the tab code was not being told what column the text began in, so it didn't know where to put the tab stops. Another problem was that some of the code assumed that string byte offsets were the same as column offsets, which is only true if there are no tabs. In the process of fixing this, I cleaned up the arguments to Fold and ExpandTabs and renamed them Break and _ExpandTabs so that I could be sure that I found all the call sites. I also wanted to verify that ExpandTabs was not being used from outside intra_region_diff.py.rietveld: correct tab handling2009-10-03T23:02:17+00:00http://codereview.appspot.com/Code Review - My issues NewMapXml6, b: rietveld<> email-address-removed urn:md5:134d9179c41f806be79b3a5f7877d19a An attempt at adding pubsubhubbub support to Rietveld. http://code.google.com/p/pubsubhubbub http://code.google.com/p/rietveld/issues/detail?id=155 The server side of the protocol is trivial: 1. add a <link rel="hub" href="hub-server"> tag to all feeds that will be pubsubhubbubbed. 2. every time one of those feeds changes, tell the hub with a simple POST request. I have tested this by adding debug prints to a local hub server and checking that the server got the right publish requests. I can't quite get the server to work, but I think the bug is not in my code. I think that the server expects to be able to grab the feed and see the feed's actual URL in the link rel="self", but the default value for that drops the :port from the URL, and I cannot for the life of me figure out how to get the Atom generator deep inside django not to do that, or even where it is doing that, or even what code is running to generate the Atom feed. (I thought I knew but I added some assert False statements and it kept running!) Ignoring that particular problem, I would appreciate feedback on the right way to get the two values at the top of feeds.py marked NOTE(rsc). rietveld: an attempt at pubsubhubbub 2009-10-04T01:35:58+00:00 email-address-removed urn:md5:0a2a4f19bb815101f0ba2904aed7c35a This fixes the buggy tab rendering that can be seen at http://codereview.appspot.com/116075/diff/1/2 The fundamental problem was that the tab code was not being told what column the text began in, so it didn't know where to put the tab stops. Another problem was that some of the code assumed that string byte offsets were the same as column offsets, which is only true if there are no tabs. In the process of fixing this, I cleaned up the arguments to Fold and ExpandTabs and renamed them Break and _ExpandTabs so that I could be sure that I found all the call sites. I also wanted to verify that ExpandTabs was not being used from outside intra_region_diff.py. rietveld: correct tab handling 2009-10-03T23:02:17+00:00 http://codereview.appspot.com/ Code Review - My issues ------------ xml3_test.go ========== TestOnlyAttributes
========== TestOnlyAttributesSeq
========== TestDecodeSimpleValuesAsMap xml: 30102 Mini Drone Inteligente - Branco 149.90 m : map[item:map[id:map[#text:30102] price:map[#text:149.90 -unit:BRL] title:map[#text:Mini Drone Inteligente - Branco]]] ========== (default) m : map[item:map[id:30102 price:map[#text:149.90 -unit:BRL] title:Mini Drone Inteligente - Branco]] ---------------- xml_test.go ... ==================== TestNewMapXmlReader ... NewMapXmlReader, raw: is a test NewMapXmlReader, m : map[root:map[this:is a test]] NewMapXmlReader, raw: something more12 NewMapXmlReader, m : map[root2:map[list:map[item:[1 2]] newtag:something more]] Xml_1, mv: map[boolean:true float:3.14159625 null: tag1:some data tag2:more data] Xml_1, x : true3.14159625some datamore data Xml_2, mv: map[array:[string true 36.4]] Xml_2, x : stringtrue36.4 Xml_3, mv: map[array:[[string true 36.4] string2]] Xml_3, x : stringtrue36.4string2 Xml_4, mv: map[array:map[innerkey:[[string true 36.4] string2]]] Xml_4, x : stringtrue36.4string2 Xml_5, mv: map[array:[map[innerkey:[[string true 36.4] string2]] map[some:more]]] Xml_5, x : stringtrue36.4string2more Xml_strings, mv: map[sometag:some data strings:[string1 string2]] Xml_strings, x : some datastring1string2 XmlWriter, b : true3.14159625some datamore data ---------------- xmlseq_test.go ... NewMapXmlSeq, x: William T. Gaddis Gaddis is one of the most influential but little know authors in America. The Recognitions One of the great seminal American novels of the 20th century. Without it Thomas Pynchon probably wouldn't have written Gravity's Rainbow. Austin Tappan Wright Islandia An example of earlier 20th century American utopian fiction. John Hawkes The Beetle Leg A lyrical novel about the construction of Ft. Peck Dam in Montana. T.E. Porter King's Day A magical novella. NewMapXmlSeq, s: doc : books : #seq : [int] 0 book : [[]interface{}] #attr : seq : #seq : [int] 0 #text : [string] 1 #comment : #seq : [int] 3 #text : [string] here's the rest of the review #seq : [int] 0 author : #seq : [int] 0 #text : [string] William T. Gaddis review : [[]interface{}] #seq : [int] 1 #text : [string] Gaddis is one of the most influential but little know authors in America. #seq : [int] 4 #text : [string] One of the great seminal American novels of the 20th century. #seq : [int] 5 #text : [string] Without it Thomas Pynchon probably wouldn't have written Gravity's Rainbow. title : #seq : [int] 2 #text : [string] The Recognitions #attr : seq : #seq : [int] 0 #text : [string] 2 #seq : [int] 1 author : #seq : [int] 0 #text : [string] Austin Tappan Wright review : #seq : [int] 2 #text : [string] An example of earlier 20th century American utopian fiction. title : #seq : [int] 1 #text : [string] Islandia #directive : #seq : [int] 2 #text : [string] throw in a directive here #seq : [int] 2 author : #seq : [int] 0 #text : [string] John Hawkes review : #seq : [int] 3 #text : [string] A lyrical novel about the construction of Ft. Peck Dam in Montana. title : #seq : [int] 1 #text : [string] The Beetle Leg #seq : [int] 3 author : #procinst : #inst : [string] first_name last_name #seq : [int] 0 #target : [string] cat #seq : [int] 0 first_name : #seq : [int] 1 #text : [string] T.E. last_name : #seq : [int] 2 #text : [string] Porter review : #seq : [int] 2 #text : [string] A magical novella. title : #seq : [int] 1 #text : [string] King's Day NewMapXmlSeq, msv.XmlIndent(): William T. Gaddis Gaddis is one of the most influential but little know authors in America. The Recognitions One of the great seminal American novels of the 20th century. Without it Thomas Pynchon probably wouldn't have written Gravity's Rainbow. Austin Tappan Wright Islandia An example of earlier 20th century American utopian fiction. John Hawkes The Beetle Leg A lyrical novel about the construction of Ft. Peck Dam in Montana. T.E. Porter King's Day A magical novella. ------------ TestXmlSeqDecodeError ... err ok: element book not properly terminated, got books at #461 ----------- TestXMPPStreamTag ... map[stream:map[-from:example.com -stream:http://etherx.jabber.org/streams -version:1.0 -xmlns:jabber:client]] map[features:map[bind:map[-xmlns:urn:ietf:params:xml:ns:xmpp-bind] sm:map[-xmlns:urn:xmpp:sm:3]]] map[stream:map[]] ----------- TestXMPPStreamTagSeq ... map[stream:stream:map[#attr:map[from:map[#seq:0 #text:example.com] version:map[#seq:3 #text:1.0] xmlns:map[#seq:1 #text:jabber:client] xmlns:stream:map[#seq:2 #text:http://etherx.jabber.org/streams]]]] map[stream:features:map[bind:map[#attr:map[xmlns:map[#seq:0 #text:urn:ietf:params:xml:ns:xmpp-bind]] #seq:0] sm:map[#attr:map[xmlns:map[#seq:0 #text:urn:xmpp:sm:3]] #seq:1]]] map[stream:stream:map[]] PASS ok github.com/clbanning/mxj 0.027s github.com/clbanning/mxj ---------------- anyxml_test.go ... []->x: somevaluesomevaluesomevaluesomeothervaluestring3.14159265true a->x: trythis3.14159265true a->x: trythis3.14159265true f->x: 3.14159625 s->x: somevalue3.1415963 []->x: somevalue somevalue somevalue someothervalue string 3.14159265 true a->x: try this 3.14159265 true f->x: 3.14159625 f->x: 3.14159625 s->x: somevalue 3.1415963 ----------------- TestPrefixDefault ... ----------------- TestPrefixNoHyphen ... ----------------- TestPrefixUnderscore ... ----------------- TestPrefixAt ... ----------------- TestMarshalPrefixDefault ... a test a test ----------------- TestMarshalPrefixNoHyphen ... x: a test this is a test this is not ----------------- TestMarshalPrefixUnderscore ... a test a test ---------------- badxml_test.go TestBadXml ... m: map[Allitems:map[Item:[ map[description:Some description goes here. link:http://www.something.com]]]] m: Some description goes here.http://www.something.com TestBadXmlSeq ... m: map[Allitems:map[Item:[map[#seq:0 #text:] map[#seq:1 description:map[#seq:1 #text:Some description goes here.] link:map[#seq:0 #text:http://www.something.com]]]]] m: http://www.something.comSome description goes here. TestBadXmlReader ... m: map[Allitems:map[Item:[ map[description:Some description goes here. link:http://www.something.com]]]] m: Some description goes here.http://www.something.com TestBadXmlSeqReader ... m: map[Allitems:map[Item:[map[#seq:0 #text:] map[#seq:1 description:map[#seq:1 #text:Some description goes here.] link:map[#seq:0 #text:http://www.something.com]]]]] m: http://www.something.comSome description goes here. --------------- bom_test.go TestBom ... TestBomData ... m: map[Allitems:map[Item:[ map[description:Some description goes here. link:http://www.something.com]]]] m: Some description goes here.http://www.something.com TestBomDataSeq ... m: map[Allitems:map[Item:[map[#seq:0 #text:] map[#seq:1 description:map[#seq:1 #text:Some description goes here.] link:map[#seq:0 #text:http://www.something.com]]]]] m: http://www.something.comSome description goes here. TestBomDataReader ... m: map[Allitems:map[Item:[ map[description:Some description goes here. link:http://www.something.com]]]] m: Some description goes here.http://www.something.com TestBomDataSeqReader ... m: map[Allitems:map[Item:[map[#seq:0 #text:] map[#seq:1 description:map[#seq:1 #text:Some description goes here.] link:map[#seq:0 #text:http://www.something.com]]]]] m: http://www.something.comSome description goes here. ---------------- bulk_test.go ... XmlReader, xmldata: William H. Gaddis The Recognitions One of the seminal American novels of the 20th century. William H. Gaddis JR Won the National Book Award. Austin Tappan Wright Islandia An example of earlier 20th century American utopian fiction. John Hawkes The Beetle Leg A lyrical novel about the construction of Ft. Peck Dam in Montana. T.E. Porter King's Day A magical novella. XmlReader, result : { "book": { "author": "William H. Gaddis", "review": "One of the seminal American novels of the 20th century.", "title": "The Recognitions" } } { "book": { "author": "Austin Tappan Wright", "review": "An example of earlier 20th century American utopian fiction.", "title": "Islandia" } } { "book": { "author": "John Hawkes", "review": "A lyrical novel about the construction of Ft. Peck Dam in Montana.", "title": "The Beetle Leg" } } { "book": { "author": { "first_name": "T.E.", "last_name": "Porter" }, "review": "A magical novella.", "title": "King's Day" } } XmlReader, errors : [xmlReader: 2] xml.Decoder.Token() - XML syntax error on line 5: element closed by [xmlReader: 3] xml.Decoder.Token() - XML syntax error on line 2: unexpected end element JsonReader, jsondata: {"book":{"author":"William H. Gaddis","review":"One of the great seminal American novels of the 20th century.","title":"The Recognitions"}} {"book":{"author":"Austin Tappan Wright","review":"An example of earlier 20th century American utopian fiction.","title":"Islandia"}} {"book":{"author":"John Hawkes","review":"A lyrical novel about the construction of Ft. Peck Dam in Montana.","title":"The Beetle Leg"}} {"book":{"author":{"first_name":"T.E.","last_name":"Porter"},"review":"A magical novella.","title":"King's Day"}} { "here":"we", "put":"in", "an":error } JsonReader, result : William H. Gaddis One of the great seminal American novels of the 20th century. The Recognitions Austin Tappan Wright An example of earlier 20th century American utopian fiction. Islandia John Hawkes A lyrical novel about the construction of Ft. Peck Dam in Montana. The Beetle Leg T.E. Porter A magical novella. King's Day JsonReader, errors : [jsonReader: 5] invalid character 'e' looking for beginning of value ---------------- bulkraw_test.go ... XmlReaderRaw, xmldata: William H. Gaddis The Recognitions One of the seminal American novels of the 20th century. William H. Gaddis JR Won the National Book Award. Austin Tappan Wright Islandia An example of earlier 20th century American utopian fiction. John Hawkes The Beetle Leg A lyrical novel about the construction of Ft. Peck Dam in Montana. T.E. Porter King's Day A magical novella. XmlReaderRaw, result : { "book": { "author": "William H. Gaddis", "review": "One of the seminal American novels of the 20th century.", "title": "The Recognitions" } } { "book": { "author": "Austin Tappan Wright", "review": "An example of earlier 20th century American utopian fiction.", "title": "Islandia" } } { "book": { "author": "John Hawkes", "review": "A lyrical novel about the construction of Ft. Peck Dam in Montana.", "title": "The Beetle Leg" } } { "book": { "author": { "first_name": "T.E.", "last_name": "Porter" }, "review": "A magical novella.", "title": "King's Day" } } XmlReaderRaw, errors : [xmlReader: 2] xml.Decoder.Token() - XML syntax error on line 5: element closed by William H. Gaddis JR Won the National Book Award. [xmlReader: 3] xml.Decoder.Token() - XML syntax error on line 2: unexpected end element JsonReaderRaw, jsondata: {"book":{"author":"William H. Gaddis","review":"One of the great seminal American novels of the 20th century.","title":"The Recognitions"}} {"book":{"author":"Austin Tappan Wright","review":"An example of earlier 20th century American utopian fiction.","title":"Islandia"}} {"book":{"author":"John Hawkes","review":"A lyrical novel about the construction of Ft. Peck Dam in Montana.","title":"The Beetle Leg"}} {"book":{"author":{"first_name":"T.E.","last_name":"Porter"},"review":"A magical novella.","title":"King's Day"}} { "here":"we", "put":"in", "an":error } JsonReaderRaw, result : William H. Gaddis One of the great seminal American novels of the 20th century. The Recognitions Austin Tappan Wright An example of earlier 20th century American utopian fiction. Islandia John Hawkes A lyrical novel about the construction of Ft. Peck Dam in Montana. The Beetle Leg T.E. Porter A magical novella. King's Day JsonReaderRaw, errors : [jsonReader: 5] invalid character 'e' looking for beginning of value {"here":"we","put":"in","an":error} cast_test.go ---------- ------------ TestCastDefault ... mxj.Map{"doc":map[string]interface {}{"bool":map[string]interface {}{"T":"T", "f":"f", "false":"FALSE", "true":"true"}, "float":"3.14159625", "int":"2019", "string":"string"}} ------------ TestCastTrue ... mxj.Map{"doc":map[string]interface {}{"bool":map[string]interface {}{"T":true, "f":false, "false":false, "true":true}, "float":3.14159625, "int":2019, "string":"string"}} ------------ TestSetCheckTagToSkipFunc ... mxj.Map{"doc":map[string]interface {}{"bool":map[string]interface {}{"T":true, "f":false, "false":"FALSE", "true":true}, "float":3.14159625, "int":"2019", "string":"string"}} ------------ TestCastValuesToFloat(false) ... mxj.Map{"doc":map[string]interface {}{"bool":map[string]interface {}{"T":true, "f":false, "false":"FALSE", "true":true}, "float":"3.14159625", "int":"2019", "string":"string"}} ------------ TestCastValuesToBool(false) ... mxj.Map{"doc":map[string]interface {}{"bool":map[string]interface {}{"T":"T", "f":"f", "false":"FALSE", "true":"true"}, "float":3.14159625, "int":"2019", "string":"string"}} ================== TestEscapeChars s: "'<>& ss: "'<>& ================== TestXMLEscapeChars s: "'<>& m: "'<>& ================== TestXMLEscapeChars2 "'<>& map[doc:map[simple:map[#text:"'<>& _attr1:an attribute]]] mv: "'<>& ================== TestXMLSeqEscapeChars data: >0-2y m: map[doc:map[shortDescription:map[#seq:0 #text:>0-2y]]] m: >0-2y ================== TestXMLSeqEscapeChars2 data: >0-2y <10-15 m: map[doc:map[shortDescription:[map[#attr:map[test:map[#seq:0 #text:&something here]] #seq:0 #text:>0-2y] map[#attr:map[quote:map[#seq:1 #text:"] test:map[#seq:0 #text:something there]] #seq:1 #text:<10-15]]]] m: >0-2y <10-15 ------------ exists_test.go ---------------- files_test.go ... NewMapsFromJsonFile() map[a:test file:for files_test.go:case this:is] map[JSON:values true:true two:2 with:just] caught error: stat nil: no such file or directory caught error: error: invalid character 'J' looking for beginning of value - reading: {"with":"some","bad":JSON,"in":"it"} NewMapsFromJsonFileRaw() {map[a:test file:for files_test.go:case this:is] [123 34 116 104 105 115 34 58 34 105 115 34 44 34 97 34 58 34 116 101 115 116 34 44 34 102 105 108 101 34 58 34 102 111 114 34 44 34 102 105 108 101 115 95 116 101 115 116 46 103 111 34 58 34 99 97 115 101 34 125]} {map[JSON:values true:true two:2 with:just] [123 34 119 105 116 104 34 58 34 106 117 115 116 34 44 34 116 119 111 34 58 50 44 34 74 83 79 78 34 58 34 118 97 108 117 101 115 34 44 34 116 114 117 101 34 58 116 114 117 101 125]} caught error: stat nil: no such file or directory caught error: error: invalid character 'J' looking for beginning of value - reading: {"with":"some","bad":JSON,"in":"it"} NewMapsFromXmlFile() map[doc:map[data:for files.go some:test]] map[msg:map[another:doc for:test case just:some]] caught error: stat nil: no such file or directory caught error: error: xml.Decoder.Token() - XML syntax error on line 4: element closed by - reading: some doc NewMapsFromXmlFileRaw() {map[doc:map[data:for files.go some:test]] [60 100 111 99 62 10 9 60 115 111 109 101 62 116 101 115 116 60 47 115 111 109 101 62 10 9 60 100 97 116 97 62 102 111 114 32 102 105 108 101 115 46 103 111 60 47 100 97 116 97 62 10 60 47 100 111 99 62]} {map[msg:map[another:doc for:test case just:some]] [10 60 109 115 103 62 10 9 60 106 117 115 116 62 115 111 109 101 60 47 106 117 115 116 62 10 9 60 97 110 111 116 104 101 114 62 100 111 99 60 47 97 110 111 116 104 101 114 62 10 9 60 102 111 114 62 116 101 115 116 32 99 97 115 101 60 47 102 111 114 62 10 60 47 109 115 103 62]} caught error: stat nil: no such file or directory caught error: error: xml.Decoder.Token() - XML syntax error on line 4: element closed by - reading: some doc TestMaps() mvs: [map[a:test this:is] map[a:test this:is]] JsonString(): {"a":"test","this":"is"}{"a":"test","this":"is"} JsonStringIndent(): { "a": "test", "this": "is" } { "a": "test", "this": "is" } XmlString(): testistestis XmlStringIndent(): test is test is map[a:test file:for files_test.go:case this:is] map[JSON:values true:true two:2 with:just] files_test_dup.json written files_test_indent.json written map[doc:map[data:for files.go some:test]] map[msg:map[another:doc for:test case just:some]] files_test_dup.xml written files_test_indent.xml written ---------------- gob_test.go ... m: map[five:map[hi:there] four:[1 2 3 4] one:1 three:tres two:2.0001] m: map[five:map[hi:there] four:[1 2 3 4] one:1 three:tres two:2.0001] mv: map[five:map[hi:there] four:[1 2 3 4] one:1 three:tres two:2.0001] m : map[five:map[hi:there] four:[1 2 3 4] one:1 three:tres two:2.0001] ================== TestXmlCheckIsValid map[:empty $invalid:hex$ entities:<>& nil:] map[$invalid:hex$ entities:<>& nil:] map[entities:<>& nil:] map[nil:] map[doc:map[elem:map[#seq:0 #text:element]]] ---------------- j2x_test .go ... j2x, jdata: { "key1":"string", "key2":34, "key3":true, "key4":"unsafe: <>&", "key5":null } j2x, m : map[key1:string key2:34 key3:true key4:unsafe: <>& key5:] j2x, xml : string34trueunsafe: <>& ---------------- json_test.go ... NewMapJson, jdata: { "key1":"string", "key2":34, "key3":true, "key4":"unsafe: <>&", "key5":null } NewMapJson, m : mxj.Map{"key1":"string", "key2":34, "key3":true, "key4":"unsafe: <>&", "key5":interface {}(nil)} NewMapJson, jdata: { "key1":"string", "key2":34, "key3":true, "key4":"unsafe: <>&", "key5":null } NewMapJson, m : mxj.Map{"key1":"string", "key2":"34", "key3":true, "key4":"unsafe: <>&", "key5":interface {}(nil)} NewMapJsonError, jdata : { "key1":"string", "key2":34, "key3":true, "key4":"unsafe: <>&", "key5":null NewMapJsonError, merror: unexpected EOF NewMapJsonError, newData : { "this":"is", "in":error } NewMapJsonError, merror : invalid character 'e' looking for beginning of value NewMapJsonReader, jb: {"key1":"string","key2":34,"key3":true,"key4":"unsafe: <>&"} NewMapJsonReader, m : mxj.Map{"key1":"string", "key2":34, "key3":true, "key4":"unsafe: <>&"} NewMapJsonReader, jb: {"key":"value in new JSON string"} NewMapJsonReader, m : mxj.Map{"key":"value in new JSON string"} NewMapJsonReader, jb: {"key1":"string","key2":34,"key3":true,"key4":"unsafe: <>&"} NewMapJsonReader, m : mxj.Map{"key1":"string", "key2":"34", "key3":true, "key4":"unsafe: <>&"} NewMapJsonReader, jb: {"key":"value in new JSON string"} NewMapJsonReader, m : mxj.Map{"key":"value in new JSON string"} Json, jdata: { "key1":"string", "key2":34, "key3":true, "key4":"unsafe: <>&", "key5":null } Json, j : {"key1":"string","key2":34,"key3":true,"key4":"unsafe: <>&","key5":null} Json, j safe: {"key1":"string","key2":34,"key3":true,"key4":"unsafe: \u003c\u003e\u0026","key5":null} JsonWriter, raw: {"and":"a","bool":true,"float":3.14159,"this":"is a"} JsonWriter, b : {"and":"a","bool":true,"float":3.14159,"this":"is a"} -------------- keystolower_test.go TestToLower ... ----------- TestSetSubkeyFieldSeparator ---------------- keyvalues_test.go ... PathsForKey, doc1 ... PathsForKey, doc1#author ... ss: [doc.books.book.author] PathsForKey, doc1#books ... ss: [doc.books] PathsForKey, doc2 ... PathForKey, doc2#book ... ss: [doc.book doc.books.book] PathForKeyShortest, doc2#book ... s : doc.book ValuesForKey ... ValuesForKey, doc1#author ... ss.v: William T. Gaddis ... ss.v: Austin Tappan Wright ... ss.v: John Hawkes ... ss.v: map[first_name:T.E. last_name:Porter] ValuesForKey, doc1#book ... ss.v: map[-seq:1 author:William T. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions] ... ss.v: map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia] ... ss.v: map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg] ... ss.v: map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day] ValuesForKey, doc1#book,-seq:3 ... ss.v: map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg] ValuesForKey, doc1#book, author:William T. Gaddis ... ss.v: map[-seq:1 author:William T. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions] ValuesForKey, doc1#author, -seq:1 ValuesForPath ... ValuesForPath, doc.books.book.author ... ss.v: William T. Gaddis ... ss.v: Austin Tappan Wright ... ss.v: John Hawkes ... ss.v: map[first_name:T.E. last_name:Porter] ValuesForPath, doc.books.book ... ss.v: map[-seq:1 author:William T. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions] ... ss.v: map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia] ... ss.v: map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg] ... ss.v: map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day] ValuesForPath, doc.books.book -seq=3 ... ss.v: map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg] ValuesForPath, doc.books.* -seq=3 ... ss.v: map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg] ValuesForPath, doc.*.* -seq=3 ... ss.v: map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg] ValuesForNotKey ... ValuesForPath, doc.books.book !author:William T. Gaddis ... ss.v: map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia] ... ss.v: map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg] ... ss.v: map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day] ValuesForPath, doc.books.book !author:* ValuesForPath, doc.books.book !unknown:* ... ss.v: map[-seq:1 author:William T. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions] ... ss.v: map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia] ... ss.v: map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg] ... ss.v: map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day] ---------------- indexedarray_test.go ... j_data: { "stuff":[ { "data":[ { "F":1 }, { "F":2 }, { "F":3 } ] }, { "data":[ 4, 5, 6 ] } ] } m: map[stuff:[map[data:[map[F:1] map[F:2] map[F:3]]] map[data:[4 5 6]]]] stuff[0]: [map[data:[map[F:1] map[F:2] map[F:3]]]] stuff.data: [map[F:1] map[F:2] map[F:3] 4 5 6] stuff[0].data: [map[F:1] map[F:2] map[F:3]] stuff.data[0]: [map[F:1] 4] stuff.*[2]: [map[F:3] 6] stuff.data.F: [1 2 3] *.*.F: [1 2 3] stuff.data[0].F: [1] stuff.data[1].F: [2] stuff[0].data[2]: [map[F:3]] stuff[1].data[1]: [5] stuff[1].data[1].F [] stuff[1].data.F: [] x_data: 1 2 3 4 5 6 m: map[doc:map[stuff:[map[data:[map[-seq:1.1 F:1] map[-seq:1.2 F:2] map[-seq:1.3 F:3]]] map[data:[map[-seq:2.1 F:4] map[-seq:2.2 F:5] map[-seq:2.3 F:6]]]]]] doc.stuff[0]: [map[data:[map[-seq:1.1 F:1] map[-seq:1.2 F:2] map[-seq:1.3 F:3]]]] doc.stuff.data[0]: [map[-seq:1.1 F:1] map[-seq:2.1 F:4]] doc.stuff.data[0] -seq:2.1: [map[-seq:2.1 F:4]] doc.stuff.data[0].F: [1 4] doc.stuff[0].data[2]: [map[-seq:1.3 F:3]] doc.stuff[1].data[1].F: [5] ak_data: { "section1":{"data" : [{"F1" : "F1 data","F2" : "F2 data"},{"F1" : "demo 123","F2" : "abc xyz"}]}} m: map[section1:map[data:[map[F1:F1 data F2:F2 data] map[F1:demo 123 F2:abc xyz]]]] section1.data[0].F1: [F1 data] ---------------- leafnode_test.go ... json1-LeafNodes: mxj.LeafNode{Path:"friends[0].skills[0]", Value:44} mxj.LeafNode{Path:"friends[0].skills[1]", Value:12} json1-LeafPaths: "friends[0].skills[0]" "friends[0].skills[1]" json2-LeafNodes: mxj.LeafNode{Path:"friends.skills[0]", Value:44} mxj.LeafNode{Path:"friends.skills[1]", Value:12} json1-LeafValues: 44 12 json3-LeafNodes: mxj.LeafNode{Path:"a", Value:"list"} mxj.LeafNode{Path:"of[0]", Value:"data"} mxj.LeafNode{Path:"of[1]", Value:"of"} mxj.LeafNode{Path:"of[2]", Value:3} mxj.LeafNode{Path:"of[3]", Value:"types"} mxj.LeafNode{Path:"of[4]", Value:true} json3-LeafValues: "data" "of" 3 "types" true "list" json3-LeafPaths: "a" "of[0]" "of[1]" "of[2]" "of[3]" "of[4]" xml2data2-LeafValues: mxj.LeafNode{Path:"doc.item[0].-color", Value:"blue"} mxj.LeafNode{Path:"doc.item[0].#text", Value:"Item 2 is blue"} mxj.LeafNode{Path:"doc.item[0].-num", Value:"2"} mxj.LeafNode{Path:"doc.item[1].-num", Value:"3"} mxj.LeafNode{Path:"doc.item[1].-color", Value:"green"} mxj.LeafNode{Path:"doc.item[1].arm[0].-side", Value:"left"} mxj.LeafNode{Path:"doc.item[1].arm[0].-length", Value:"3.5"} mxj.LeafNode{Path:"doc.item[1].arm[1].-side", Value:"right"} mxj.LeafNode{Path:"doc.item[1].arm[1].-length", Value:"3.6"} xml2data2-LeafValues(NoAttributes): mxj.LeafNode{Path:"doc.item[0]", Value:"Item 2 is blue"} no-hyphen-xml2data2-LeafValues: mxj.LeafNode{Path:"doc.item[0].num", Value:"2"} mxj.LeafNode{Path:"doc.item[0].color", Value:"blue"} mxj.LeafNode{Path:"doc.item[0].#text", Value:"Item 2 is blue"} mxj.LeafNode{Path:"doc.item[1].num", Value:"3"} mxj.LeafNode{Path:"doc.item[1].color", Value:"green"} mxj.LeafNode{Path:"doc.item[1].arm[0].side", Value:"left"} mxj.LeafNode{Path:"doc.item[1].arm[0].length", Value:"3.5"} mxj.LeafNode{Path:"doc.item[1].arm[1].side", Value:"right"} mxj.LeafNode{Path:"doc.item[1].arm[1].length", Value:"3.6"} no-hyphen-xml2data2-LeafValues(NoAttributes): mxj.LeafNode{Path:"doc.item[0].num", Value:"2"} mxj.LeafNode{Path:"doc.item[0].color", Value:"blue"} mxj.LeafNode{Path:"doc.item[0]", Value:"Item 2 is blue"} mxj.LeafNode{Path:"doc.item[1].num", Value:"3"} mxj.LeafNode{Path:"doc.item[1].color", Value:"green"} mxj.LeafNode{Path:"doc.item[1].arm[0].side", Value:"left"} mxj.LeafNode{Path:"doc.item[1].arm[0].length", Value:"3.5"} mxj.LeafNode{Path:"doc.item[1].arm[1].side", Value:"right"} mxj.LeafNode{Path:"doc.item[1].arm[1].length", Value:"3.6"} DotNotation-LeafValues: mxj.LeafNode{Path:"doc.item.0.-num", Value:"2"} mxj.LeafNode{Path:"doc.item.0.-color", Value:"blue"} mxj.LeafNode{Path:"doc.item.0.#text", Value:"Item 2 is blue"} mxj.LeafNode{Path:"doc.item.1.-num", Value:"3"} mxj.LeafNode{Path:"doc.item.1.-color", Value:"green"} mxj.LeafNode{Path:"doc.item.1.arm.0.-side", Value:"left"} mxj.LeafNode{Path:"doc.item.1.arm.0.-length", Value:"3.5"} mxj.LeafNode{Path:"doc.item.1.arm.1.-side", Value:"right"} mxj.LeafNode{Path:"doc.item.1.arm.1.-length", Value:"3.6"} ------------------ misc_test.go ... ---------------- mxj_test.go ... TestMap, m: mxj.Map{"key":"value", "newkey":map[string]interface {}{"bool":true, "float":3.14159, "listkey":[]interface {}{3.1415962535, false, "for all good men"}, "string":"Now is the time"}} TestMap, StringIndent - key : [string] value newkey : bool : [bool] true float : [float64] 3.14159 listkey : [[]interface{}] [float64] 3.1415962535 [bool] false [string] for all good men string : [string] Now is the time TestMap, StringIndent NoTypeInfo - key : value newkey : bool : true float : 3.14159 listkey : 3.1415962535 false for all good men string : Now is the time TestMap, m_fromXML: mxj.Map{"doc":map[string]interface {}{"tag":map[string]interface {}{"sub_tag1":"Hello", "sub_tag2":"World"}}} TestMap, StringIndent - doc : tag : sub_tag1 : [string] Hello sub_tag2 : [string] World TestMap, StringIndent NoTypeInfo - doc : tag : sub_tag1 : Hello sub_tag2 : World TestMap, m.Copy() - map[doc:map[tag:map[sub_tag1:Hello sub_tag2:World]]] ---------------- namespace_test.go ... ---------------- TestBeautifyXml ... 123John Brown 123 John Brown ------------ TestNan ... foo.bar: NAN foo.bar: INF foo.bar: -INF foo.bar: NaN ---------------- newmap_test.go ... j: { "A":"this", "B":"is", "C":"a", "D":"test" } m: mxj.Map{"A":"this", "B":"is", "C":"a", "D":"test"} eval - m.NewMap("A:AA", "B:BB", "C:cc", "D:help") n.Json(): {"AA":"this","BB":"is","cc":"a","help":"test"} n.Xml(): thisisatest n.XmlIndent(): this is a test eval - m.NewMap("A:AA.A", "B:AA.B", "C:AA.B.cc", "D:hello.help") n.Json(): {"AA":{"A":"this","B":["is",{"cc":"a"}]},"hello":{"help":"test"}} n.Xml(): thisisatest n.XmlIndent(): this is a test eval - m.NewMap keypairs: [A:xml.AA B:xml.AA.hello.again C:xml.AA D:xml.AA.hello.help] n.Json(): {"xml":{"AA":["this",{"hello":{"again":"is","help":"test"}},"a"]}} n.Xml(): thisistesta n.XmlIndent(): this is test a original value: no default:text default:word new value: no default:text default:word original value: yes default:text default:word new value: yes default:text default:word ------------ rename_test.go ---------------- seqnum_test.go ... m1: mxj.Map{"Obj":map[string]interface {}{"-c":"la", "-h":"da", "-x":"dee", "IntObj":[]interface {}{map[string]interface {}{"-id":3, "_seq":0}, map[string]interface {}{"-id":2, "_seq":2}}, "IntObj1":map[string]interface {}{"-id":1, "_seq":1}}} { "Obj": { "-c": "la", "-h": "da", "-x": "dee", "IntObj": [ { "-id": 3, "_seq": 0 }, { "-id": 2, "_seq": 2 } ], "IntObj1": { "-id": 1, "_seq": 1 } } } m2: mxj.Map{"Obj":map[string]interface {}{"-c":"la", "-h":"da", "-x":"dee", "IntObj":[]interface {}{map[string]interface {}{"-id":3, "_seq":0}, map[string]interface {}{"-id":2, "_seq":2}}, "NewObj":map[string]interface {}{"BoolObj":map[string]interface {}{"#text":true, "_seq":2}, "StringObj":map[string]interface {}{"#text":"hello", "_seq":1}, "_seq":1, "id":map[string]interface {}{"#text":1, "_seq":0}}}} { "Obj": { "-c": "la", "-h": "da", "-x": "dee", "IntObj": [ { "-id": 3, "_seq": 0 }, { "-id": 2, "_seq": 2 } ], "NewObj": { "BoolObj": { "#text": true, "_seq": 2 }, "StringObj": { "#text": "hello", "_seq": 1 }, "_seq": 1, "id": { "#text": 1, "_seq": 0 } } } } ----------- TestSnakeCase ----------------- TestStrictModeXml ... m: map[document:map[goes_by: lang:E name:Bill & Hallett salute:Duc & 123xx]] ----------------- TestStrictModeXmlSeq ... m: map[document:map[goes_by:map[#seq:2 #text:] lang:map[#seq:3 #text:E] name:map[#seq:0 #text:Bill & Hallett] salute:map[#seq:1 #text:Duc & 123xx]]] ----------------- TestStrictFail ... OK ---------------- struct_test.go ... Struct, m: mxj.Map{"bool":true, "float":3.14159, "int":4, "private":"Somewhere over the rainbow", "str":"now's the time"} Struct, s: mxj.str{IntVal:4, StrVal:"now's the time", FloatVal:3.14159, BoolVal:true, private:""} StructError, mverr: mv.Struct() error: argument is not type Ptr ----------------- structvalue_test.go ... ---------------- updatevalues_test.go ... m: map[doc:map[books:map[book:[map[-seq:1 author:William T. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions] map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia] map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg] map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day]]]]] v: William T. Gaddis v: Austin Tappan Wright v: John Hawkes v: map[first_name:T.E. last_name:Porter] m.UpdateValuesForPath("author:NoName", "doc.books.book.author") 4 updates v: NoName v: NoName v: NoName v: NoName m.UpdateValuesForPath("author:William Gadddis", "doc.books.book.author", "title:The Recognitions") 4 updates v: William Gadddis v: Austin Tappen Wright v: John Hawkes v: T. E. Porter m.UpdateValuesForPath("author:William T. Gaddis", "doc.books.book.*", "title:The Recognitions") 1 updates v: William T. Gaddis v: Austin Tappen Wright v: John Hawkes v: T. E. Porter m.UpdateValuesForPath("title:The Cannibal", "doc.books.book.title", "author:John Hawkes") 2 updates v: map[-seq:1 author:William T. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions] v: map[-seq:2 author:Austin Tappen Wright review:An example of earlier 20th century American utopian fiction. title:Islandia] v: map[-seq:3 author:John Hawkes review:A novel on his experiences in WWII. title:The Cannibal] v: map[-seq:4 author:T. E. Porter review:A magical novella. title:King's Day] m.UpdateValuesForPath("books:", "doc.books") 1 updates m: map[doc:map[books:]] m.UpdateValuesForPath(mm, "*") 1 updates m: map[doc:map[books:map[book:[map[-seq:1 author:William T. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions] map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia] map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg] map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day]]]]] newDoc: simple element m: map[tag:map[#text:simple element -color:green -shape:square]] m.UpdateValuesForPath("#text:maybe not so simple element", "tag") n: 1 m: map[tag:map[#text:maybe not so simple element -color:green -shape:square]] m.UpdateValuesForPath("#text:simple element again", "*") n: 1 m: map[tag:map[#text:simple element again -color:green -shape:square]] biblio : author : [[]interface{}] books : book : [[]interface{}] date : [string] 1955 review : [string] A novel that changed the face of American literature. title : [string] The Recognitions date : [string] 1975 review : [string] Winner of National Book Award for Fiction. title : [string] JR name : [string] William Gaddis books : book : [[]interface{}] date : [string] 1949 review : [string] A novel on his experiences in WWII. title : [string] The Cannibal date : [string] 1951 review : [string] A lyrical novel about the construction of Ft. Peck Dam in Montana. title : [string] The Beetle Leg date : [string] 1970 review : [string] Where everyone wants to vacation. title : [string] The Blood Oranges name : [string] John Hawkes m.UpdateValuesForPath("review:National Book Award winner.", "*.*.*.*", "title:JR") 1 updates v: map[books:map[book:[map[date:1955 review:A novel that changed the face of American literature. title:The Recognitions] map[date:1975 review:National Book Award winner. title:JR]]] name:William Gaddis] m.UpdateValuesForPath(newVal, path, oldVal) 5 updates biblio : author : [[]interface{}] books : book : [[]interface{}] date : [float64] 1955 review : [string] A novel that changed the face of American literature. title : [string] The Recognitions date : [float64] 1975 review : [string] National Book Award winner. title : [string] JR name : [string] William Gaddis books : book : [[]interface{}] date : [float64] 1949 review : [string] A novel on his experiences in WWII. title : [string] The Cannibal date : [float64] 1951 review : [string] A lyrical novel about the construction of Ft. Peck Dam in Montana. title : [string] The Beetle Leg date : [float64] 1970 review : [string] Where everyone wants to vacation. title : [string] The Blood Oranges name : [string] John Hawkes ---------------- xml2_test.go ... NewMapXml4, x: William T. Gaddis The Recognitions One of the great seminal American novels of the 20th century. Austin Tappan Wright Islandia An example of earlier 20th century American utopian fiction. John Hawkes The Beetle Leg A lyrical novel about the construction of Ft. Peck Dam in Montana. T.E. Porter King's Day A magical novella. NewMapXml4, m: map[doc:map[books:map[book:[map[-seq:1 author:William T. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions] map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia] map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg] map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day]]]]] NewMapXml4, s: doc : books : book : [[]interface{}] -seq : [string] 1 author : [string] William T. Gaddis review : [string] One of the great seminal American novels of the 20th century. title : [string] The Recognitions -seq : [string] 2 author : [string] Austin Tappan Wright review : [string] An example of earlier 20th century American utopian fiction. title : [string] Islandia -seq : [string] 3 author : [string] John Hawkes review : [string] A lyrical novel about the construction of Ft. Peck Dam in Montana. title : [string] The Beetle Leg -seq : [string] 4 author : first_name : [string] T.E. last_name : [string] Porter review : [string] A magical novella. title : [string] King's Day NewMapXml4, b: William T. Gaddis One of the great seminal American novels of the 20th century. The Recognitions Austin Tappan Wright An example of earlier 20th century American utopian fiction. Islandia John Hawkes A lyrical novel about the construction of Ft. Peck Dam in Montana. The Beetle Leg T.E. Porter A magical novella. King's Day NewMapXml5, raw: help me! Henry was a renegade Didn't like to play it safe One component at a time There's got to be a better way Oh, people came from miles around Searching for a steady job Welcome to the Motor Town Booming like an atom bomb Oh, Henry was the end of the story Then everything went wrong And we'll return it to its former glory But it just takes so long It's going to take a long time It's going to take it, but we'll make it one day It's going to take a long time It's going to take it, but we'll make it one day NewMapXml5, m: map[msg:map[-mpriority:1 -mtype:alert song:map[-author:Mayer Hawthorne -title:A Long Time chorus:map[line:[map[#text:It's going to take a long time -no:1] map[#text:It's going to take it, but we'll make it one day -no:2] map[#text:It's going to take a long time -no:3] map[#text:It's going to take it, but we'll make it one day -no:4]]] verses:map[verse:[map[-name:verse 1 -no:1 line:[map[#text:Henry was a renegade -no:1] map[#text:Didn't like to play it safe -no:2] map[#text:One component at a time -no:3] map[#text:There's got to be a better way -no:4] map[#text:Oh, people came from miles around -no:5] map[#text:Searching for a steady job -no:6] map[#text:Welcome to the Motor Town -no:7] map[#text:Booming like an atom bomb -no:8]]] map[-name:verse 2 -no:2 line:[map[#text:Oh, Henry was the end of the story -no:1] map[#text:Then everything went wrong -no:2] map[#text:And we'll return it to its former glory -no:3] map[#text:But it just takes so long -no:4]]]]]] text:help me!]] NewMapXml5, s: msg : -mpriority : [string] 1 -mtype : [string] alert song : -author : [string] Mayer Hawthorne -title : [string] A Long Time chorus : line : [[]interface{}] #text : [string] It's going to take a long time -no : [string] 1 #text : [string] It's going to take it, but we'll make it one day -no : [string] 2 #text : [string] It's going to take a long time -no : [string] 3 #text : [string] It's going to take it, but we'll make it one day -no : [string] 4 verses : verse : [[]interface{}] -name : [string] verse 1 -no : [string] 1 line : [[]interface{}] #text : [string] Henry was a renegade -no : [string] 1 #text : [string] Didn't like to play it safe -no : [string] 2 #text : [string] One component at a time -no : [string] 3 #text : [string] There's got to be a better way -no : [string] 4 #text : [string] Oh, people came from miles around -no : [string] 5 #text : [string] Searching for a steady job -no : [string] 6 #text : [string] Welcome to the Motor Town -no : [string] 7 #text : [string] Booming like an atom bomb -no : [string] 8 -name : [string] verse 2 -no : [string] 2 line : [[]interface{}] #text : [string] Oh, Henry was the end of the story -no : [string] 1 #text : [string] Then everything went wrong -no : [string] 2 #text : [string] And we'll return it to its former glory -no : [string] 3 #text : [string] But it just takes so long -no : [string] 4 text : [string] help me! NewMapXml5, b: It's going to take a long timeIt's going to take it, but we'll make it one dayIt's going to take a long timeIt's going to take it, but we'll make it one dayHenry was a renegadeDidn't like to play it safeOne component at a timeThere's got to be a better wayOh, people came from miles aroundSearching for a steady jobWelcome to the Motor TownBooming like an atom bombOh, Henry was the end of the storyThen everything went wrongAnd we'll return it to its former gloryBut it just takes so longhelp me! NewMapXml5, b: It's going to take a long time It's going to take it, but we'll make it one day It's going to take a long time It's going to take it, but we'll make it one day Henry was a renegade Didn't like to play it safe One component at a time There's got to be a better way Oh, people came from miles around Searching for a steady job Welcome to the Motor Town Booming like an atom bomb Oh, Henry was the end of the story Then everything went wrong And we'll return it to its former glory But it just takes so long help me! NewMapXml6, raw: Code Review - My issueshttp://codereview.appspot.com/rietveld<>rietveld: an attempt at pubsubhubbub 2009-10-04T01:35:58+00:00email-address-removedurn:md5:134d9179c41f806be79b3a5f7877d19a An attempt at adding pubsubhubbub support to Rietveld. http://code.google.com/p/pubsubhubbub http://code.google.com/p/rietveld/issues/detail?id=155 The server side of the protocol is trivial: 1. add a &lt;link rel=&quot;hub&quot; href=&quot;hub-server&quot;&gt; tag to all feeds that will be pubsubhubbubbed. 2. every time one of those feeds changes, tell the hub with a simple POST request. I have tested this by adding debug prints to a local hub server and checking that the server got the right publish requests. I can&#39;t quite get the server to work, but I think the bug is not in my code. I think that the server expects to be able to grab the feed and see the feed&#39;s actual URL in the link rel=&quot;self&quot;, but the default value for that drops the :port from the URL, and I cannot for the life of me figure out how to get the Atom generator deep inside django not to do that, or even where it is doing that, or even what code is running to generate the Atom feed. (I thought I knew but I added some assert False statements and it kept running!) Ignoring that particular problem, I would appreciate feedback on the right way to get the two values at the top of feeds.py marked NOTE(rsc). rietveld: correct tab handling 2009-10-03T23:02:17+00:00email-address-removedurn:md5:0a2a4f19bb815101f0ba2904aed7c35a This fixes the buggy tab rendering that can be seen at http://codereview.appspot.com/116075/diff/1/2 The fundamental problem was that the tab code was not being told what column the text began in, so it didn&#39;t know where to put the tab stops. Another problem was that some of the code assumed that string byte offsets were the same as column offsets, which is only true if there are no tabs. In the process of fixing this, I cleaned up the arguments to Fold and ExpandTabs and renamed them Break and _ExpandTabs so that I could be sure that I found all the call sites. I also wanted to verify that ExpandTabs was not being used from outside intra_region_diff.py. NewMapXml6, m: map[feed:map[-lang:en-us -updated:2009-10-04T01:35:58+00:00 -xmlns:http://www.w3.org/2005/Atom author:map[name:rietveld<>] entry:[map[author:map[name:email-address-removed] id:urn:md5:134d9179c41f806be79b3a5f7877d19a link:map[-href:http://codereview.appspot.com/126085 -rel:alternate] summary:map[#text:An attempt at adding pubsubhubbub support to Rietveld. http://code.google.com/p/pubsubhubbub http://code.google.com/p/rietveld/issues/detail?id=155 The server side of the protocol is trivial: 1. add a <link rel="hub" href="hub-server"> tag to all feeds that will be pubsubhubbubbed. 2. every time one of those feeds changes, tell the hub with a simple POST request. I have tested this by adding debug prints to a local hub server and checking that the server got the right publish requests. I can't quite get the server to work, but I think the bug is not in my code. I think that the server expects to be able to grab the feed and see the feed's actual URL in the link rel="self", but the default value for that drops the :port from the URL, and I cannot for the life of me figure out how to get the Atom generator deep inside django not to do that, or even where it is doing that, or even what code is running to generate the Atom feed. (I thought I knew but I added some assert False statements and it kept running!) Ignoring that particular problem, I would appreciate feedback on the right way to get the two values at the top of feeds.py marked NOTE(rsc). -type:html] title:rietveld: an attempt at pubsubhubbub updated:2009-10-04T01:35:58+00:00] map[author:map[name:email-address-removed] id:urn:md5:0a2a4f19bb815101f0ba2904aed7c35a link:map[-href:http://codereview.appspot.com/124106 -rel:alternate] summary:map[#text:This fixes the buggy tab rendering that can be seen at http://codereview.appspot.com/116075/diff/1/2 The fundamental problem was that the tab code was not being told what column the text began in, so it didn't know where to put the tab stops. Another problem was that some of the code assumed that string byte offsets were the same as column offsets, which is only true if there are no tabs. In the process of fixing this, I cleaned up the arguments to Fold and ExpandTabs and renamed them Break and _ExpandTabs so that I could be sure that I found all the call sites. I also wanted to verify that ExpandTabs was not being used from outside intra_region_diff.py. -type:html] title:rietveld: correct tab handling updated:2009-10-03T23:02:17+00:00]] id:http://codereview.appspot.com/ link:[map[-href:http://codereview.appspot.com/ -rel:alternate] map[-href:http://codereview.appspot.com/rss/mine/rsc -rel:self]] title:Code Review - My issues]] NewMapXml6, s: feed : -lang : [string] en-us -updated : [string] 2009-10-04T01:35:58+00:00 -xmlns : [string] http://www.w3.org/2005/Atom author : name : [string] rietveld<> entry : [[]interface{}] author : name : [string] email-address-removed id : [string] urn:md5:134d9179c41f806be79b3a5f7877d19a link : -href : [string] http://codereview.appspot.com/126085 -rel : [string] alternate summary : #text : [string] An attempt at adding pubsubhubbub support to Rietveld. http://code.google.com/p/pubsubhubbub http://code.google.com/p/rietveld/issues/detail?id=155 The server side of the protocol is trivial: 1. add a <link rel="hub" href="hub-server"> tag to all feeds that will be pubsubhubbubbed. 2. every time one of those feeds changes, tell the hub with a simple POST request. I have tested this by adding debug prints to a local hub server and checking that the server got the right publish requests. I can't quite get the server to work, but I think the bug is not in my code. I think that the server expects to be able to grab the feed and see the feed's actual URL in the link rel="self", but the default value for that drops the :port from the URL, and I cannot for the life of me figure out how to get the Atom generator deep inside django not to do that, or even where it is doing that, or even what code is running to generate the Atom feed. (I thought I knew but I added some assert False statements and it kept running!) Ignoring that particular problem, I would appreciate feedback on the right way to get the two values at the top of feeds.py marked NOTE(rsc). -type : [string] html title : [string] rietveld: an attempt at pubsubhubbub updated : [string] 2009-10-04T01:35:58+00:00 author : name : [string] email-address-removed id : [string] urn:md5:0a2a4f19bb815101f0ba2904aed7c35a link : -href : [string] http://codereview.appspot.com/124106 -rel : [string] alternate summary : #text : [string] This fixes the buggy tab rendering that can be seen at http://codereview.appspot.com/116075/diff/1/2 The fundamental problem was that the tab code was not being told what column the text began in, so it didn't know where to put the tab stops. Another problem was that some of the code assumed that string byte offsets were the same as column offsets, which is only true if there are no tabs. In the process of fixing this, I cleaned up the arguments to Fold and ExpandTabs and renamed them Break and _ExpandTabs so that I could be sure that I found all the call sites. I also wanted to verify that ExpandTabs was not being used from outside intra_region_diff.py. -type : [string] html title : [string] rietveld: correct tab handling updated : [string] 2009-10-03T23:02:17+00:00 id : [string] http://codereview.appspot.com/ link : [[]interface{}] -href : [string] http://codereview.appspot.com/ -rel : [string] alternate -href : [string] http://codereview.appspot.com/rss/mine/rsc -rel : [string] self title : [string] Code Review - My issues NewMapXml6, b: rietveld<>email-address-removedurn:md5:134d9179c41f806be79b3a5f7877d19aAn attempt at adding pubsubhubbub support to Rietveld. http://code.google.com/p/pubsubhubbub http://code.google.com/p/rietveld/issues/detail?id=155 The server side of the protocol is trivial: 1. add a <link rel="hub" href="hub-server"> tag to all feeds that will be pubsubhubbubbed. 2. every time one of those feeds changes, tell the hub with a simple POST request. I have tested this by adding debug prints to a local hub server and checking that the server got the right publish requests. I can't quite get the server to work, but I think the bug is not in my code. I think that the server expects to be able to grab the feed and see the feed's actual URL in the link rel="self", but the default value for that drops the :port from the URL, and I cannot for the life of me figure out how to get the Atom generator deep inside django not to do that, or even where it is doing that, or even what code is running to generate the Atom feed. (I thought I knew but I added some assert False statements and it kept running!) Ignoring that particular problem, I would appreciate feedback on the right way to get the two values at the top of feeds.py marked NOTE(rsc).rietveld: an attempt at pubsubhubbub2009-10-04T01:35:58+00:00email-address-removedurn:md5:0a2a4f19bb815101f0ba2904aed7c35aThis fixes the buggy tab rendering that can be seen at http://codereview.appspot.com/116075/diff/1/2 The fundamental problem was that the tab code was not being told what column the text began in, so it didn't know where to put the tab stops. Another problem was that some of the code assumed that string byte offsets were the same as column offsets, which is only true if there are no tabs. In the process of fixing this, I cleaned up the arguments to Fold and ExpandTabs and renamed them Break and _ExpandTabs so that I could be sure that I found all the call sites. I also wanted to verify that ExpandTabs was not being used from outside intra_region_diff.py.rietveld: correct tab handling2009-10-03T23:02:17+00:00http://codereview.appspot.com/Code Review - My issues NewMapXml6, b: rietveld<> email-address-removed urn:md5:134d9179c41f806be79b3a5f7877d19a An attempt at adding pubsubhubbub support to Rietveld. http://code.google.com/p/pubsubhubbub http://code.google.com/p/rietveld/issues/detail?id=155 The server side of the protocol is trivial: 1. add a <link rel="hub" href="hub-server"> tag to all feeds that will be pubsubhubbubbed. 2. every time one of those feeds changes, tell the hub with a simple POST request. I have tested this by adding debug prints to a local hub server and checking that the server got the right publish requests. I can't quite get the server to work, but I think the bug is not in my code. I think that the server expects to be able to grab the feed and see the feed's actual URL in the link rel="self", but the default value for that drops the :port from the URL, and I cannot for the life of me figure out how to get the Atom generator deep inside django not to do that, or even where it is doing that, or even what code is running to generate the Atom feed. (I thought I knew but I added some assert False statements and it kept running!) Ignoring that particular problem, I would appreciate feedback on the right way to get the two values at the top of feeds.py marked NOTE(rsc). rietveld: an attempt at pubsubhubbub 2009-10-04T01:35:58+00:00 email-address-removed urn:md5:0a2a4f19bb815101f0ba2904aed7c35a This fixes the buggy tab rendering that can be seen at http://codereview.appspot.com/116075/diff/1/2 The fundamental problem was that the tab code was not being told what column the text began in, so it didn't know where to put the tab stops. Another problem was that some of the code assumed that string byte offsets were the same as column offsets, which is only true if there are no tabs. In the process of fixing this, I cleaned up the arguments to Fold and ExpandTabs and renamed them Break and _ExpandTabs so that I could be sure that I found all the call sites. I also wanted to verify that ExpandTabs was not being used from outside intra_region_diff.py. rietveld: correct tab handling 2009-10-03T23:02:17+00:00 http://codereview.appspot.com/ Code Review - My issues ------------ xml3_test.go ========== TestOnlyAttributes
========== TestOnlyAttributesSeq
========== TestDecodeSimpleValuesAsMap xml: 30102 Mini Drone Inteligente - Branco 149.90 m : map[item:map[id:map[#text:30102] price:map[#text:149.90 -unit:BRL] title:map[#text:Mini Drone Inteligente - Branco]]] ========== (default) m : map[item:map[id:30102 price:map[#text:149.90 -unit:BRL] title:Mini Drone Inteligente - Branco]] ---------------- xml_test.go ... ==================== TestNewMapXmlReader ... NewMapXmlReader, raw: is a test NewMapXmlReader, m : map[root:map[this:is a test]] NewMapXmlReader, raw: something more12 NewMapXmlReader, m : map[root2:map[list:map[item:[1 2]] newtag:something more]] Xml_1, mv: map[boolean:true float:3.14159625 null: tag1:some data tag2:more data] Xml_1, x : true3.14159625some datamore data Xml_2, mv: map[array:[string true 36.4]] Xml_2, x : stringtrue36.4 Xml_3, mv: map[array:[[string true 36.4] string2]] Xml_3, x : stringtrue36.4string2 Xml_4, mv: map[array:map[innerkey:[[string true 36.4] string2]]] Xml_4, x : stringtrue36.4string2 Xml_5, mv: map[array:[map[innerkey:[[string true 36.4] string2]] map[some:more]]] Xml_5, x : stringtrue36.4string2more Xml_strings, mv: map[sometag:some data strings:[string1 string2]] Xml_strings, x : some datastring1string2 XmlWriter, b : true3.14159625some datamore data ---------------- xmlseq_test.go ... NewMapXmlSeq, x: William T. Gaddis Gaddis is one of the most influential but little know authors in America. The Recognitions One of the great seminal American novels of the 20th century. Without it Thomas Pynchon probably wouldn't have written Gravity's Rainbow. Austin Tappan Wright Islandia An example of earlier 20th century American utopian fiction. John Hawkes The Beetle Leg A lyrical novel about the construction of Ft. Peck Dam in Montana. T.E. Porter King's Day A magical novella. NewMapXmlSeq, s: doc : books : #seq : [int] 0 book : [[]interface{}] #attr : seq : #seq : [int] 0 #text : [string] 1 #comment : #seq : [int] 3 #text : [string] here's the rest of the review #seq : [int] 0 author : #seq : [int] 0 #text : [string] William T. Gaddis review : [[]interface{}] #seq : [int] 1 #text : [string] Gaddis is one of the most influential but little know authors in America. #seq : [int] 4 #text : [string] One of the great seminal American novels of the 20th century. #seq : [int] 5 #text : [string] Without it Thomas Pynchon probably wouldn't have written Gravity's Rainbow. title : #seq : [int] 2 #text : [string] The Recognitions #attr : seq : #seq : [int] 0 #text : [string] 2 #seq : [int] 1 author : #seq : [int] 0 #text : [string] Austin Tappan Wright review : #seq : [int] 2 #text : [string] An example of earlier 20th century American utopian fiction. title : #seq : [int] 1 #text : [string] Islandia #directive : #seq : [int] 2 #text : [string] throw in a directive here #seq : [int] 2 author : #seq : [int] 0 #text : [string] John Hawkes review : #seq : [int] 3 #text : [string] A lyrical novel about the construction of Ft. Peck Dam in Montana. title : #seq : [int] 1 #text : [string] The Beetle Leg #seq : [int] 3 author : #procinst : #inst : [string] first_name last_name #seq : [int] 0 #target : [string] cat #seq : [int] 0 first_name : #seq : [int] 1 #text : [string] T.E. last_name : #seq : [int] 2 #text : [string] Porter review : #seq : [int] 2 #text : [string] A magical novella. title : #seq : [int] 1 #text : [string] King's Day NewMapXmlSeq, msv.XmlIndent(): William T. Gaddis Gaddis is one of the most influential but little know authors in America. The Recognitions One of the great seminal American novels of the 20th century. Without it Thomas Pynchon probably wouldn't have written Gravity's Rainbow. Austin Tappan Wright Islandia An example of earlier 20th century American utopian fiction. John Hawkes The Beetle Leg A lyrical novel about the construction of Ft. Peck Dam in Montana. T.E. Porter King's Day A magical novella. ------------ TestXmlSeqDecodeError ... err ok: element book not properly terminated, got books at #461 ----------- TestXMPPStreamTag ... map[stream:map[-from:example.com -stream:http://etherx.jabber.org/streams -version:1.0 -xmlns:jabber:client]] map[features:map[bind:map[-xmlns:urn:ietf:params:xml:ns:xmpp-bind] sm:map[-xmlns:urn:xmpp:sm:3]]] map[stream:map[]] ----------- TestXMPPStreamTagSeq ... map[stream:stream:map[#attr:map[from:map[#seq:0 #text:example.com] version:map[#seq:3 #text:1.0] xmlns:map[#seq:1 #text:jabber:client] xmlns:stream:map[#seq:2 #text:http://etherx.jabber.org/streams]]]] map[stream:features:map[bind:map[#attr:map[xmlns:map[#seq:0 #text:urn:ietf:params:xml:ns:xmpp-bind]] #seq:0] sm:map[#attr:map[xmlns:map[#seq:0 #text:urn:xmpp:sm:3]] #seq:1]]] map[stream:stream:map[]] PASS ok github.com/clbanning/mxj 0.023s github.com/clbanning/mxj/j2x [{"some-null-value":"", "a-non-null-value":"bar"}] xmloutput: bar {"somekey":[{"value":"1st"},{"value":"2nd"}]} xmloutput: 1st2nd PASS ok github.com/clbanning/mxj/j2x 0.002s github.com/clbanning/mxj/j2x [{"some-null-value":"", "a-non-null-value":"bar"}] xmloutput: bar {"somekey":[{"value":"1st"},{"value":"2nd"}]} xmloutput: 1st2nd PASS ok github.com/clbanning/mxj/j2x 0.002s github.com/clbanning/mxj/x2j ? github.com/clbanning/mxj/x2j [no test files] github.com/clbanning/mxj/x2j-wrapper TestGoofy ... MapToDoc: map[byteVal:[116 104 101 32 97 105 100 32 111 102 32 116 104 101 105 114 32 99 111 117 110 116 114 121] goofyVal:0xc0000a44b0 nilVal: xml:map[tag:map[-bool:true -one:1 -pi:3.1415962535] tagJR:map[-key:value]]] v: {"byteVal":"dGhlIGFpZCBvZiB0aGVpciBjb3VudHJ5","goofyVal":{"S":"Now is the time for","Sp":"all good men to come to"},"nilVal":null,"xml":{"tag":{"-bool":"true","-one":"1","-pi":"3.1415962535"},"tagJR":{"-key":"value"}}} TestGoofier ... MapToDoc: map[byteVal:[116 104 101 32 97 105 100 32 111 102 32 116 104 101 105 114 32 99 111 117 110 116 114 121] goofierVal:0xc000097050 goofyVal:0xc0000a44b0 nilVal: xml:map[tag:map[-bool:true -one:1 -pi:3.1415962535] tagJR:map[-key:value]]] v: {"byteVal":"dGhlIGFpZCBvZiB0aGVpciBjb3VudHJ5","goofierVal":{"G":{"S":"Now is the time for","Sp":"all good men to come to"},"B":"dGhlIHRyZWUgb2YgZnJlZWRvbSBtdXN0IHBlcmlvZGljYWxseSBiZQ==","N":null},"goofyVal":{"S":"Now is the time for","Sp":"all good men to come to"},"nilVal":null,"xml":{"tag":{"-bool":"true","-one":"1","-pi":"3.1415962535"},"tagJR":{"-key":"value"}}} ToMap - Read doc: barworld entry : vars : foo :[string] bar foo2 : hello :[string] world ToJson - Read doc: barworld json: {"entry":{"vars":{"foo":"bar","foo2":{"hello":"world"}}}} ToJsonIndent - Read doc: barworld json: { "entry": { "vars": { "foo": "bar", "foo2": { "hello": "world" } } } } BulkParser (with error) - Read doc: barworldanbarworld phandler m: map[entry:map[vars:map[foo:bar foo2:map[hello:world]]]] ehandler err: xml.Decoder.Token() - XML syntax error on line 1: element closed by phandler m: map[entry:map[vars:map[foo:bar foo2:map[hello:world]]]] BulkParser (with error) - Read doc: barworldanbarworld phandlerj s: {"entry":{"vars":{"foo":"bar","foo2":{"hello":"world"}}}} ehandler err: xml.Decoder.Token() - XML syntax error on line 1: element closed by phandlerj s: {"entry":{"vars":{"foo":"bar","foo2":{"hello":"world"}}}} ================================ x2j_test.go ... =================== TestX2j ... XML doc: help me! Henry was a renegade Didn't like to play it safe One component at a time There's got to be a better way Oh, people came from miles around Searching for a steady job Welcome to the Motor Town Booming like an atom bomb Oh, Henry was the end of the story Then everything went wrong And we'll return it to its former glory But it just takes so long It's going to take a long time It's going to take it, but we'll make it one day It's going to take a long time It's going to take it, but we'll make it one day DocToMap(), recast==true: msg : -mtype :[string] alert -mpriority :[float64] 1.00e+00 text :[string] help me! song : -author :[string] Mayer Hawthorne verses : verse :[[]interface{}] [item: 0] -name :[string] verse 1 -no :[float64] 1.00e+00 line :[[]interface{}] [item: 0] -no :[float64] 1.00e+00 #text :[string] Henry was a renegade [item: 1] -no :[float64] 2.00e+00 #text :[string] Didn't like to play it safe [item: 2] -no :[float64] 3.00e+00 #text :[string] One component at a time [item: 3] -no :[float64] 4.00e+00 #text :[string] There's got to be a better way [item: 4] -no :[float64] 5.00e+00 #text :[string] Oh, people came from miles around [item: 5] -no :[float64] 6.00e+00 #text :[string] Searching for a steady job [item: 6] -no :[float64] 7.00e+00 #text :[string] Welcome to the Motor Town [item: 7] -no :[float64] 8.00e+00 #text :[string] Booming like an atom bomb [item: 1] -name :[string] verse 2 -no :[float64] 2.00e+00 line :[[]interface{}] [item: 0] -no :[float64] 1.00e+00 #text :[string] Oh, Henry was the end of the story [item: 1] -no :[float64] 2.00e+00 #text :[string] Then everything went wrong [item: 2] -no :[float64] 3.00e+00 #text :[string] And we'll return it to its former glory [item: 3] -no :[float64] 4.00e+00 #text :[string] But it just takes so long chorus : line :[[]interface{}] [item: 0] -no :[float64] 1.00e+00 #text :[string] It's going to take a long time [item: 1] #text :[string] It's going to take it, but we'll make it one day -no :[float64] 2.00e+00 [item: 2] -no :[float64] 3.00e+00 #text :[string] It's going to take a long time [item: 3] -no :[float64] 4.00e+00 #text :[string] It's going to take it, but we'll make it one day -title :[string] A Long Time DocToJsonIndent, recast==true: { "msg": { "-mpriority": 1, "-mtype": "alert", "song": { "-author": "Mayer Hawthorne", "-title": "A Long Time", "chorus": { "line": [ { "#text": "It's going to take a long time", "-no": 1 }, { "#text": "It's going to take it, but we'll make it one day", "-no": 2 }, { "#text": "It's going to take a long time", "-no": 3 }, { "#text": "It's going to take it, but we'll make it one day", "-no": 4 } ] }, "verses": { "verse": [ { "-name": "verse 1", "-no": 1, "line": [ { "#text": "Henry was a renegade", "-no": 1 }, { "#text": "Didn't like to play it safe", "-no": 2 }, { "#text": "One component at a time", "-no": 3 }, { "#text": "There's got to be a better way", "-no": 4 }, { "#text": "Oh, people came from miles around", "-no": 5 }, { "#text": "Searching for a steady job", "-no": 6 }, { "#text": "Welcome to the Motor Town", "-no": 7 }, { "#text": "Booming like an atom bomb", "-no": 8 } ] }, { "-name": "verse 2", "-no": 2, "line": [ { "#text": "Oh, Henry was the end of the story", "-no": 1 }, { "#text": "Then everything went wrong", "-no": 2 }, { "#text": "And we'll return it to its former glory", "-no": 3 }, { "#text": "But it just takes so long", "-no": 4 } ] } ] } }, "text": "help me!" } } =================== TestGetValue ... Read doc: barworld Looking for value: entry.vars { "foo": "bar", "foo2": { "hello": "world" } } Looking for value: entry.vars.foo2.hello world Looking with error in path: entry.var verr: no key in map: var DocValue() for tag path entry.vars { "foo": "bar", "foo2": { "hello": "world" } } =================== TestGetValueWithAttr ... Read doc: bar world universe Looking for value: entry.vars { "foo": [ { "#text": "bar", "-item": "1" }, { "-item": "2", "hello": [ { "#text": "world", "-item": "3" }, { "#text": "universe", "-item": "4" } ] } ] } MapValue(): Looking for value: entry.vars.foo item=2 { "-item": "2", "hello": [ { "#text": "world", "-item": "3" }, { "#text": "universe", "-item": "4" } ] } MapValue(): Looking for hello item:4 verr: no key in map: hello DocValue(): Looking for entry.vars.foo.hello item:4 verr: no keys beyond: foo DocValue(): Looking for empty nil { "entry": { "vars": { "foo": [ { "#text": "bar", "-item": "1" }, { "-item": "2", "hello": [ { "#text": "world", "-item": "3" }, { "#text": "universe", "-item": "4" } ] } ] } } } testing recast switch... MapValue(): Looking for value: entry.vars.foo item=2 { "-item": 2, "hello": [ { "#text": "world", "-item": 3 }, { "#text": "universe", "-item": 4 } ] } =================== TestStuff_1 ... val2 val2 val3 doc : tag :[[]interface{}] [item: 0] -item :[string] 1 #text :[string] val2 [item: 1] -item :[string] 2 #text :[string] val2 [item: 2] -item :[string] 2 -instance :[string] 2 #text :[string] val3 DocValue(): tag [ { "#text": "val2", "-item": "1" }, { "#text": "val2", "-item": "2" }, { "#text": "val3", "-instance": "2", "-item": "2" } ] DocValue(): item:2 instance:2 "val3" =================== TestStuff_2 ... val2 val2 val3 tag : -item :[string] 1 #text :[string] val2 DocValue(): tag { "#text": "val2", "-item": "1" } DocValue(): item:2 instance:2 verr: no attribute key:value pair: item:2 =================== TestBulkBuffer ... Bulk Message Processing Tests procMap: { "msg": { "-mpriority": "1", "-mtype": "alert", "song": { "-author": "Mayer Hawthorne", "-title": "A Long Time", "chorus": { "line": [ { "#text": "It's going to take a long time", "-no": "1" }, { "#text": "It's going to take it, but we'll make it one day", "-no": "2" }, { "#text": "It's going to take a long time", "-no": "3" }, { "#text": "It's going to take it, but we'll make it one day", "-no": "4" } ] }, "verses": { "verse": [ { "-name": "verse 1", "-no": "1", "line": [ { "#text": "Henry was a renegade", "-no": "1" }, { "#text": "Didn't like to play it safe", "-no": "2" }, { "#text": "One component at a time", "-no": "3" }, { "#text": "There's got to be a better way", "-no": "4" }, { "#text": "Oh, people came from miles around", "-no": "5" }, { "#text": "Searching for a steady job", "-no": "6" }, { "#text": "Welcome to the Motor Town", "-no": "7" }, { "#text": "Booming like an atom bomb", "-no": "8" } ] }, { "-name": "verse 2", "-no": "2", "line": [ { "#text": "Oh, Henry was the end of the story", "-no": "1" }, { "#text": "Then everything went wrong", "-no": "2" }, { "#text": "And we'll return it to its former glory", "-no": "3" }, { "#text": "But it just takes so long", "-no": "4" } ] } ] } }, "text": "help me!" } } procMap: { "msg": { "-mpriority": "1", "-mtype": "alert", "song": { "-author": "Mayer Hawthorne", "-title": "A Long Time", "verses": { "verse": { "-name": "verse 1", "-no": "1", "line": [ { "#text": "Henry was a renegade", "-no": "1" }, { "#text": "Didn't like to play it safe", "-no": "2" }, { "#text": "One component at a time", "-no": "3" }, { "#text": "There's got to be a better way", "-no": "4" }, { "#text": "Oh, people came from miles around", "-no": "5" }, { "#text": "Searching for a steady job", "-no": "6" }, { "#text": "Welcome to the Motor Town", "-no": "7" }, { "#text": "Booming like an atom bomb", "-no": "8" } ] } } }, "text": "help me!" } } procMap: { "msg": { "-mpriority": "1", "-mtype": "alert", "song": { "-author": "Mayer Hawthorne", "-title": "A Long Time", "chorus": { "line": [ { "#text": "It's going to take a long time", "-no": "1" }, { "#text": "It's going to take it, but we'll make it one day", "-no": "2" }, { "#text": "It's going to take a long time", "-no": "3" }, { "#text": "It's going to take it, but we'll make it one day", "-no": "4" } ] } }, "text": "help me!" } } procError err: xml.Decoder.Token() - XML syntax error on line 1: element closed by procError err: xml.Decoder.Token() - XML syntax error on line 1: unexpected end element =================== TestTagAndKey ... TestTagAndKey()
one
two.one two.two
one
two
tag: parts :: len: 2 v: [map[part:[two.one two.two]] map[sections:map[section:[one two]]]] no 'not_a_tag' tag key: section :: len: 2 v: [[one map[parts:map[part:[two.one two.two]]]] [one two]] no 'not_a_key' key ============================ x2jat_test.go =============== TestValuesAtKeyPath ... ValuesAtKeyPath ... doc1#author ss: [doc.books.book.author] vv: [map[-seq:1 author:William H. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions] map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia] map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg] map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day]] ValuesAtKeyPath ... doc1#first_name ss: [doc.books.book.author.first_name] vv: [William H. Gaddis Austin Tappan Wright John Hawkes map[first_name:T.E. last_name:Porter]] GetKeyPaths...doc2#book ss: [doc.books.author.book doc.books.author.books.book] vv: [map[book:[map[-seq:1 review:One of the great seminal American novels of the 20th century. title:The Recognitions] map[review:Won the National Book Award title:JR]] name:William H. Gaddis] map[books:map[book:[map[title:The Beetle Leg] map[title:The Blood Oranges]]] name:John Hawkes]] vv: [map[book:[map[title:The Beetle Leg] map[title:The Blood Oranges]]]] vv,shortest_path: [map[book:[map[-seq:1 review:One of the great seminal American novels of the 20th century. title:The Recognitions] map[review:Won the National Book Award title:JR]] name:William H. Gaddis] map[books:map[book:[map[title:The Beetle Leg] map[title:The Blood Oranges]]] name:John Hawkes]] ValuesAtKeyPath ... msg1#pub ss: [msg.pub] vv: [map[pub:test text:This is a long cold winter]] ValuesAtKeyPath ... msg2#pub ss: [msgs.msg.pub] vv: [map[pub:test text:This is a long cold winter] map[pub:test2 text:I hope we have a cool summer, though]] =============== TestValuesAtTagPath ... ValuesAtTagPath ... doc1#author ss: [doc.books.book.author] vv: [map[-seq:1 author:William H. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions] map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia] map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg] map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day]] ValuesAtTagPath ... doc1#first_name ss: [doc.books.book.author.first_name] vv: [William H. Gaddis Austin Tappan Wright John Hawkes map[first_name:T.E. last_name:Porter]] ValuesAtTagPath...doc2#book ss: [doc.books.author.book doc.books.author.books.book] vv: [map[book:[map[-seq:1 review:One of the great seminal American novels of the 20th century. title:The Recognitions] map[review:Won the National Book Award title:JR]] name:William H. Gaddis] map[books:map[book:[map[title:The Beetle Leg] map[title:The Blood Oranges]]] name:John Hawkes]] vv: [map[book:[map[title:The Beetle Leg] map[title:The Blood Oranges]]]] vv,shortest_path: [map[book:[map[-seq:1 review:One of the great seminal American novels of the 20th century. title:The Recognitions] map[review:Won the National Book Award title:JR]] name:William H. Gaddis] map[books:map[book:[map[title:The Beetle Leg] map[title:The Blood Oranges]]] name:John Hawkes]] ================================ x2jfindPath_test.go =============== TestPathsForKey ... PathsForKey... doc01#author ss: [doc.books.book.author] PathsForKey... doc01#books ss: [doc.books] PathsForKey...doc02#book ss: [doc.books.author.books.book doc.books.author.book] PathForKeyShortest...doc02#book s: doc.books.author.book =============== TestPathsForTag ... PathsForTag... doc01#author ss: [doc.books.book.author] PathsForTag... doc01#books ss: [doc.books] PathsForTag...doc02#book ss: [doc.books.author.book doc.books.author.books.book] PathForTagShortest...doc02#book s: doc.books.author.book TestValuesFromTagPath() William H. Gaddis The Recognitions One of the great seminal American novels of the 20th century. Austin Tappan Wright Islandia An example of earlier 20th century American utopian fiction. John Hawkes The Beetle Leg A lyrical novel about the construction of Ft. Peck Dam in Montana. T.E. Porter King's Day A magical novella. map: doc : books : book :[[]interface{}] [item: 0] -seq :[string] 1 author :[string] William H. Gaddis title :[string] The Recognitions review :[string] One of the great seminal American novels of the 20th century. [item: 1] -seq :[string] 2 author :[string] Austin Tappan Wright title :[string] Islandia review :[string] An example of earlier 20th century American utopian fiction. [item: 2] review :[string] A lyrical novel about the construction of Ft. Peck Dam in Montana. -seq :[string] 3 author :[string] John Hawkes title :[string] The Beetle Leg [item: 3] review :[string] A magical novella. -seq :[string] 4 author : last_name :[string] Porter first_name :[string] T.E. title :[string] King's Day path == doc.books: len(v): 1 0 : map[book:[map[-seq:1 author:William H. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions] map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia] map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg] map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day]]] path == doc.books.*: len(v): 4 0 : map[-seq:1 author:William H. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions] 1 : map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia] 2 : map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg] 3 : map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day] path == doc.books.book: len(v): 4 0 : map[-seq:1 author:William H. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions] 1 : map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia] 2 : map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg] 3 : map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day] doc == doc2 / path == doc.books.book: len(v): 1 0 : map[-seq:1 author:William H. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions] path == doc.books.book.*: len(v): 12 0 : William H. Gaddis 1 : The Recognitions 2 : One of the great seminal American novels of the 20th century. 3 : Austin Tappan Wright 4 : Islandia 5 : An example of earlier 20th century American utopian fiction. 6 : John Hawkes 7 : The Beetle Leg 8 : A lyrical novel about the construction of Ft. Peck Dam in Montana. 9 : A magical novella. 10 : map[first_name:T.E. last_name:Porter] 11 : King's Day doc == doc2 / path == doc.books.book.*: len(v): 3 0 : William H. Gaddis 1 : The Recognitions 2 : One of the great seminal American novels of the 20th century. path == doc.books.*.author: len(v): 4 0 : William H. Gaddis 1 : Austin Tappan Wright 2 : John Hawkes 3 : map[first_name:T.E. last_name:Porter] path == doc.*.*.author: len(v): 4 0 : William H. Gaddis 1 : Austin Tappan Wright 2 : John Hawkes 3 : map[first_name:T.E. last_name:Porter] path == doc.*.*.title: len(v): 4 0 : The Recognitions 1 : Islandia 2 : The Beetle Leg 3 : King's Day path == doc.*.*.*: len(v): 12 0 : William H. Gaddis 1 : The Recognitions 2 : One of the great seminal American novels of the 20th century. 3 : Austin Tappan Wright 4 : Islandia 5 : An example of earlier 20th century American utopian fiction. 6 : John Hawkes 7 : The Beetle Leg 8 : A lyrical novel about the construction of Ft. Peck Dam in Montana. 9 : map[first_name:T.E. last_name:Porter] 10 : King's Day 11 : A magical novella. path == doc.*.*.*.*: len(v): 2 0 : T.E. 1 : Porter TestValuesFromTagPath2(), iteration: 0 no default:text default:word map: data : netid : text1 :[string] default:text word1 :[string] default:word disable :[string] no path == data.*: len(v): 1 0 : map[disable:no text1:default:text word1:default:word] disable : no text1 : default:text word1 : default:word path == data.*.*: len(v): 3 0 : no 1 : default:text 2 : default:word TestValuesFromTagPath2(), iteration: 1 yes default:text default:word map: data : idnet : disable :[string] yes text1 :[string] default:text word1 :[string] default:word path == data.*: len(v): 1 0 : map[disable:yes text1:default:text word1:default:word] disable : yes text1 : default:text word1 : default:word path == data.*.*: len(v): 3 0 : yes 1 : default:text 2 : default:word Unmarshal test ... *map[string]interface{}, *string m: map[doc:map[name:Mayer Hawthorne song:map[title:A Long Time verse:map[-no:1 line:[map[#text:Henry was a renegade -no:1] map[#text:Didn't like to play it safe -no:2]]]]]] s: {"doc":{"name":"Mayer Hawthorne","song":{"title":"A Long Time","verse":{"-no":"1","line":[{"#text":"Henry was a renegade","-no":"1"},{"#text":"Didn't like to play it safe","-no":"2"}]}}}} Unmarshal test ... struct: clbanning
unknown
myInfo: {XMLName:{Space: Local:info} Name:clbanning Address:unknown} TestMapValue of doc.song.verse w/ len(attrs) == 0. doc: Mayer Hawthorne A Long Time Henry was a renegade Didn't like to play it safe result: map[-no:1 line:[map[#text:Henry was a renegade -no:1] map[#text:Didn't like to play it safe -no:2]]] PASS ok github.com/clbanning/mxj/x2j-wrapper 0.015s github.com/clbanning/mxj/x2j-wrapper TestGoofy ... MapToDoc: map[byteVal:[116 104 101 32 97 105 100 32 111 102 32 116 104 101 105 114 32 99 111 117 110 116 114 121] goofyVal:0xc0000a44b0 nilVal: xml:map[tag:map[-bool:true -one:1 -pi:3.1415962535] tagJR:map[-key:value]]] v: {"byteVal":"dGhlIGFpZCBvZiB0aGVpciBjb3VudHJ5","goofyVal":{"S":"Now is the time for","Sp":"all good men to come to"},"nilVal":null,"xml":{"tag":{"-bool":"true","-one":"1","-pi":"3.1415962535"},"tagJR":{"-key":"value"}}} TestGoofier ... MapToDoc: map[byteVal:[116 104 101 32 97 105 100 32 111 102 32 116 104 101 105 114 32 99 111 117 110 116 114 121] goofierVal:0xc000097050 goofyVal:0xc0000a44b0 nilVal: xml:map[tag:map[-bool:true -one:1 -pi:3.1415962535] tagJR:map[-key:value]]] v: {"byteVal":"dGhlIGFpZCBvZiB0aGVpciBjb3VudHJ5","goofierVal":{"G":{"S":"Now is the time for","Sp":"all good men to come to"},"B":"dGhlIHRyZWUgb2YgZnJlZWRvbSBtdXN0IHBlcmlvZGljYWxseSBiZQ==","N":null},"goofyVal":{"S":"Now is the time for","Sp":"all good men to come to"},"nilVal":null,"xml":{"tag":{"-bool":"true","-one":"1","-pi":"3.1415962535"},"tagJR":{"-key":"value"}}} ToMap - Read doc: barworld entry : vars : foo :[string] bar foo2 : hello :[string] world ToJson - Read doc: barworld json: {"entry":{"vars":{"foo":"bar","foo2":{"hello":"world"}}}} ToJsonIndent - Read doc: barworld json: { "entry": { "vars": { "foo": "bar", "foo2": { "hello": "world" } } } } BulkParser (with error) - Read doc: barworldanbarworld phandler m: map[entry:map[vars:map[foo:bar foo2:map[hello:world]]]] ehandler err: xml.Decoder.Token() - XML syntax error on line 1: element closed by phandler m: map[entry:map[vars:map[foo:bar foo2:map[hello:world]]]] BulkParser (with error) - Read doc: barworldanbarworld phandlerj s: {"entry":{"vars":{"foo":"bar","foo2":{"hello":"world"}}}} ehandler err: xml.Decoder.Token() - XML syntax error on line 1: element closed by phandlerj s: {"entry":{"vars":{"foo":"bar","foo2":{"hello":"world"}}}} ================================ x2j_test.go ... =================== TestX2j ... XML doc: help me! Henry was a renegade Didn't like to play it safe One component at a time There's got to be a better way Oh, people came from miles around Searching for a steady job Welcome to the Motor Town Booming like an atom bomb Oh, Henry was the end of the story Then everything went wrong And we'll return it to its former glory But it just takes so long It's going to take a long time It's going to take it, but we'll make it one day It's going to take a long time It's going to take it, but we'll make it one day DocToMap(), recast==true: msg : -mtype :[string] alert -mpriority :[float64] 1.00e+00 text :[string] help me! song : -title :[string] A Long Time -author :[string] Mayer Hawthorne verses : verse :[[]interface{}] [item: 0] line :[[]interface{}] [item: 0] #text :[string] Henry was a renegade -no :[float64] 1.00e+00 [item: 1] -no :[float64] 2.00e+00 #text :[string] Didn't like to play it safe [item: 2] -no :[float64] 3.00e+00 #text :[string] One component at a time [item: 3] -no :[float64] 4.00e+00 #text :[string] There's got to be a better way [item: 4] -no :[float64] 5.00e+00 #text :[string] Oh, people came from miles around [item: 5] -no :[float64] 6.00e+00 #text :[string] Searching for a steady job [item: 6] -no :[float64] 7.00e+00 #text :[string] Welcome to the Motor Town [item: 7] -no :[float64] 8.00e+00 #text :[string] Booming like an atom bomb -name :[string] verse 1 -no :[float64] 1.00e+00 [item: 1] -name :[string] verse 2 -no :[float64] 2.00e+00 line :[[]interface{}] [item: 0] -no :[float64] 1.00e+00 #text :[string] Oh, Henry was the end of the story [item: 1] -no :[float64] 2.00e+00 #text :[string] Then everything went wrong [item: 2] -no :[float64] 3.00e+00 #text :[string] And we'll return it to its former glory [item: 3] -no :[float64] 4.00e+00 #text :[string] But it just takes so long chorus : line :[[]interface{}] [item: 0] -no :[float64] 1.00e+00 #text :[string] It's going to take a long time [item: 1] -no :[float64] 2.00e+00 #text :[string] It's going to take it, but we'll make it one day [item: 2] -no :[float64] 3.00e+00 #text :[string] It's going to take a long time [item: 3] #text :[string] It's going to take it, but we'll make it one day -no :[float64] 4.00e+00 DocToJsonIndent, recast==true: { "msg": { "-mpriority": 1, "-mtype": "alert", "song": { "-author": "Mayer Hawthorne", "-title": "A Long Time", "chorus": { "line": [ { "#text": "It's going to take a long time", "-no": 1 }, { "#text": "It's going to take it, but we'll make it one day", "-no": 2 }, { "#text": "It's going to take a long time", "-no": 3 }, { "#text": "It's going to take it, but we'll make it one day", "-no": 4 } ] }, "verses": { "verse": [ { "-name": "verse 1", "-no": 1, "line": [ { "#text": "Henry was a renegade", "-no": 1 }, { "#text": "Didn't like to play it safe", "-no": 2 }, { "#text": "One component at a time", "-no": 3 }, { "#text": "There's got to be a better way", "-no": 4 }, { "#text": "Oh, people came from miles around", "-no": 5 }, { "#text": "Searching for a steady job", "-no": 6 }, { "#text": "Welcome to the Motor Town", "-no": 7 }, { "#text": "Booming like an atom bomb", "-no": 8 } ] }, { "-name": "verse 2", "-no": 2, "line": [ { "#text": "Oh, Henry was the end of the story", "-no": 1 }, { "#text": "Then everything went wrong", "-no": 2 }, { "#text": "And we'll return it to its former glory", "-no": 3 }, { "#text": "But it just takes so long", "-no": 4 } ] } ] } }, "text": "help me!" } } =================== TestGetValue ... Read doc: barworld Looking for value: entry.vars { "foo": "bar", "foo2": { "hello": "world" } } Looking for value: entry.vars.foo2.hello world Looking with error in path: entry.var verr: no key in map: var DocValue() for tag path entry.vars { "foo": "bar", "foo2": { "hello": "world" } } =================== TestGetValueWithAttr ... Read doc: bar world universe Looking for value: entry.vars { "foo": [ { "#text": "bar", "-item": "1" }, { "-item": "2", "hello": [ { "#text": "world", "-item": "3" }, { "#text": "universe", "-item": "4" } ] } ] } MapValue(): Looking for value: entry.vars.foo item=2 { "-item": "2", "hello": [ { "#text": "world", "-item": "3" }, { "#text": "universe", "-item": "4" } ] } MapValue(): Looking for hello item:4 verr: no key in map: hello DocValue(): Looking for entry.vars.foo.hello item:4 verr: no keys beyond: foo DocValue(): Looking for empty nil { "entry": { "vars": { "foo": [ { "#text": "bar", "-item": "1" }, { "-item": "2", "hello": [ { "#text": "world", "-item": "3" }, { "#text": "universe", "-item": "4" } ] } ] } } } testing recast switch... MapValue(): Looking for value: entry.vars.foo item=2 { "-item": 2, "hello": [ { "#text": "world", "-item": 3 }, { "#text": "universe", "-item": 4 } ] } =================== TestStuff_1 ... val2 val2 val3 doc : tag :[[]interface{}] [item: 0] -item :[string] 1 #text :[string] val2 [item: 1] -item :[string] 2 #text :[string] val2 [item: 2] -item :[string] 2 -instance :[string] 2 #text :[string] val3 DocValue(): tag [ { "#text": "val2", "-item": "1" }, { "#text": "val2", "-item": "2" }, { "#text": "val3", "-instance": "2", "-item": "2" } ] DocValue(): item:2 instance:2 "val3" =================== TestStuff_2 ... val2 val2 val3 tag : -item :[string] 1 #text :[string] val2 DocValue(): tag { "#text": "val2", "-item": "1" } DocValue(): item:2 instance:2 verr: no attribute key:value pair: item:2 =================== TestBulkBuffer ... Bulk Message Processing Tests procMap: { "msg": { "-mpriority": "1", "-mtype": "alert", "song": { "-author": "Mayer Hawthorne", "-title": "A Long Time", "chorus": { "line": [ { "#text": "It's going to take a long time", "-no": "1" }, { "#text": "It's going to take it, but we'll make it one day", "-no": "2" }, { "#text": "It's going to take a long time", "-no": "3" }, { "#text": "It's going to take it, but we'll make it one day", "-no": "4" } ] }, "verses": { "verse": [ { "-name": "verse 1", "-no": "1", "line": [ { "#text": "Henry was a renegade", "-no": "1" }, { "#text": "Didn't like to play it safe", "-no": "2" }, { "#text": "One component at a time", "-no": "3" }, { "#text": "There's got to be a better way", "-no": "4" }, { "#text": "Oh, people came from miles around", "-no": "5" }, { "#text": "Searching for a steady job", "-no": "6" }, { "#text": "Welcome to the Motor Town", "-no": "7" }, { "#text": "Booming like an atom bomb", "-no": "8" } ] }, { "-name": "verse 2", "-no": "2", "line": [ { "#text": "Oh, Henry was the end of the story", "-no": "1" }, { "#text": "Then everything went wrong", "-no": "2" }, { "#text": "And we'll return it to its former glory", "-no": "3" }, { "#text": "But it just takes so long", "-no": "4" } ] } ] } }, "text": "help me!" } } procMap: { "msg": { "-mpriority": "1", "-mtype": "alert", "song": { "-author": "Mayer Hawthorne", "-title": "A Long Time", "verses": { "verse": { "-name": "verse 1", "-no": "1", "line": [ { "#text": "Henry was a renegade", "-no": "1" }, { "#text": "Didn't like to play it safe", "-no": "2" }, { "#text": "One component at a time", "-no": "3" }, { "#text": "There's got to be a better way", "-no": "4" }, { "#text": "Oh, people came from miles around", "-no": "5" }, { "#text": "Searching for a steady job", "-no": "6" }, { "#text": "Welcome to the Motor Town", "-no": "7" }, { "#text": "Booming like an atom bomb", "-no": "8" } ] } } }, "text": "help me!" } } procMap: { "msg": { "-mpriority": "1", "-mtype": "alert", "song": { "-author": "Mayer Hawthorne", "-title": "A Long Time", "chorus": { "line": [ { "#text": "It's going to take a long time", "-no": "1" }, { "#text": "It's going to take it, but we'll make it one day", "-no": "2" }, { "#text": "It's going to take a long time", "-no": "3" }, { "#text": "It's going to take it, but we'll make it one day", "-no": "4" } ] } }, "text": "help me!" } } procError err: xml.Decoder.Token() - XML syntax error on line 1: element closed by procError err: xml.Decoder.Token() - XML syntax error on line 1: unexpected end element =================== TestTagAndKey ... TestTagAndKey()
one
two.one two.two
one
two
tag: parts :: len: 2 v: [map[part:[two.one two.two]] map[sections:map[section:[one two]]]] no 'not_a_tag' tag key: section :: len: 2 v: [[one map[parts:map[part:[two.one two.two]]]] [one two]] no 'not_a_key' key ============================ x2jat_test.go =============== TestValuesAtKeyPath ... ValuesAtKeyPath ... doc1#author ss: [doc.books.book.author] vv: [map[-seq:1 author:William H. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions] map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia] map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg] map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day]] ValuesAtKeyPath ... doc1#first_name ss: [doc.books.book.author.first_name] vv: [William H. Gaddis Austin Tappan Wright John Hawkes map[first_name:T.E. last_name:Porter]] GetKeyPaths...doc2#book ss: [doc.books.author.books.book doc.books.author.book] vv: [map[book:[map[title:The Beetle Leg] map[title:The Blood Oranges]]]] vv: [map[book:[map[-seq:1 review:One of the great seminal American novels of the 20th century. title:The Recognitions] map[review:Won the National Book Award title:JR]] name:William H. Gaddis] map[books:map[book:[map[title:The Beetle Leg] map[title:The Blood Oranges]]] name:John Hawkes]] vv,shortest_path: [map[book:[map[-seq:1 review:One of the great seminal American novels of the 20th century. title:The Recognitions] map[review:Won the National Book Award title:JR]] name:William H. Gaddis] map[books:map[book:[map[title:The Beetle Leg] map[title:The Blood Oranges]]] name:John Hawkes]] ValuesAtKeyPath ... msg1#pub ss: [msg.pub] vv: [map[pub:test text:This is a long cold winter]] ValuesAtKeyPath ... msg2#pub ss: [msgs.msg.pub] vv: [map[pub:test text:This is a long cold winter] map[pub:test2 text:I hope we have a cool summer, though]] =============== TestValuesAtTagPath ... ValuesAtTagPath ... doc1#author ss: [doc.books.book.author] vv: [map[-seq:1 author:William H. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions] map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia] map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg] map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day]] ValuesAtTagPath ... doc1#first_name ss: [doc.books.book.author.first_name] vv: [William H. Gaddis Austin Tappan Wright John Hawkes map[first_name:T.E. last_name:Porter]] ValuesAtTagPath...doc2#book ss: [doc.books.author.book doc.books.author.books.book] vv: [map[book:[map[-seq:1 review:One of the great seminal American novels of the 20th century. title:The Recognitions] map[review:Won the National Book Award title:JR]] name:William H. Gaddis] map[books:map[book:[map[title:The Beetle Leg] map[title:The Blood Oranges]]] name:John Hawkes]] vv: [map[book:[map[title:The Beetle Leg] map[title:The Blood Oranges]]]] vv,shortest_path: [map[book:[map[-seq:1 review:One of the great seminal American novels of the 20th century. title:The Recognitions] map[review:Won the National Book Award title:JR]] name:William H. Gaddis] map[books:map[book:[map[title:The Beetle Leg] map[title:The Blood Oranges]]] name:John Hawkes]] ================================ x2jfindPath_test.go =============== TestPathsForKey ... PathsForKey... doc01#author ss: [doc.books.book.author] PathsForKey... doc01#books ss: [doc.books] PathsForKey...doc02#book ss: [doc.books.author.book doc.books.author.books.book] PathForKeyShortest...doc02#book s: doc.books.author.book =============== TestPathsForTag ... PathsForTag... doc01#author ss: [doc.books.book.author] PathsForTag... doc01#books ss: [doc.books] PathsForTag...doc02#book ss: [doc.books.author.book doc.books.author.books.book] PathForTagShortest...doc02#book s: doc.books.author.book TestValuesFromTagPath() William H. Gaddis The Recognitions One of the great seminal American novels of the 20th century. Austin Tappan Wright Islandia An example of earlier 20th century American utopian fiction. John Hawkes The Beetle Leg A lyrical novel about the construction of Ft. Peck Dam in Montana. T.E. Porter King's Day A magical novella. map: doc : books : book :[[]interface{}] [item: 0] -seq :[string] 1 author :[string] William H. Gaddis title :[string] The Recognitions review :[string] One of the great seminal American novels of the 20th century. [item: 1] -seq :[string] 2 author :[string] Austin Tappan Wright title :[string] Islandia review :[string] An example of earlier 20th century American utopian fiction. [item: 2] -seq :[string] 3 author :[string] John Hawkes title :[string] The Beetle Leg review :[string] A lyrical novel about the construction of Ft. Peck Dam in Montana. [item: 3] -seq :[string] 4 author : first_name :[string] T.E. last_name :[string] Porter title :[string] King's Day review :[string] A magical novella. path == doc.books: len(v): 1 0 : map[book:[map[-seq:1 author:William H. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions] map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia] map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg] map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day]]] path == doc.books.*: len(v): 4 0 : map[-seq:1 author:William H. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions] 1 : map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia] 2 : map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg] 3 : map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day] path == doc.books.book: len(v): 4 0 : map[-seq:1 author:William H. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions] 1 : map[-seq:2 author:Austin Tappan Wright review:An example of earlier 20th century American utopian fiction. title:Islandia] 2 : map[-seq:3 author:John Hawkes review:A lyrical novel about the construction of Ft. Peck Dam in Montana. title:The Beetle Leg] 3 : map[-seq:4 author:map[first_name:T.E. last_name:Porter] review:A magical novella. title:King's Day] doc == doc2 / path == doc.books.book: len(v): 1 0 : map[-seq:1 author:William H. Gaddis review:One of the great seminal American novels of the 20th century. title:The Recognitions] path == doc.books.book.*: len(v): 12 0 : One of the great seminal American novels of the 20th century. 1 : William H. Gaddis 2 : The Recognitions 3 : Austin Tappan Wright 4 : Islandia 5 : An example of earlier 20th century American utopian fiction. 6 : John Hawkes 7 : The Beetle Leg 8 : A lyrical novel about the construction of Ft. Peck Dam in Montana. 9 : map[first_name:T.E. last_name:Porter] 10 : King's Day 11 : A magical novella. doc == doc2 / path == doc.books.book.*: len(v): 3 0 : William H. Gaddis 1 : The Recognitions 2 : One of the great seminal American novels of the 20th century. path == doc.books.*.author: len(v): 4 0 : William H. Gaddis 1 : Austin Tappan Wright 2 : John Hawkes 3 : map[first_name:T.E. last_name:Porter] path == doc.*.*.author: len(v): 4 0 : William H. Gaddis 1 : Austin Tappan Wright 2 : John Hawkes 3 : map[first_name:T.E. last_name:Porter] path == doc.*.*.title: len(v): 4 0 : The Recognitions 1 : Islandia 2 : The Beetle Leg 3 : King's Day path == doc.*.*.*: len(v): 12 0 : William H. Gaddis 1 : The Recognitions 2 : One of the great seminal American novels of the 20th century. 3 : Austin Tappan Wright 4 : Islandia 5 : An example of earlier 20th century American utopian fiction. 6 : John Hawkes 7 : The Beetle Leg 8 : A lyrical novel about the construction of Ft. Peck Dam in Montana. 9 : map[first_name:T.E. last_name:Porter] 10 : King's Day 11 : A magical novella. path == doc.*.*.*.*: len(v): 2 0 : T.E. 1 : Porter TestValuesFromTagPath2(), iteration: 0 no default:text default:word map: data : netid : disable :[string] no text1 :[string] default:text word1 :[string] default:word path == data.*: len(v): 1 0 : map[disable:no text1:default:text word1:default:word] disable : no text1 : default:text word1 : default:word path == data.*.*: len(v): 3 0 : no 1 : default:text 2 : default:word TestValuesFromTagPath2(), iteration: 1 yes default:text default:word map: data : idnet : disable :[string] yes text1 :[string] default:text word1 :[string] default:word path == data.*: len(v): 1 0 : map[disable:yes text1:default:text word1:default:word] word1 : default:word disable : yes text1 : default:text path == data.*.*: len(v): 3 0 : yes 1 : default:text 2 : default:word Unmarshal test ... *map[string]interface{}, *string m: map[doc:map[name:Mayer Hawthorne song:map[title:A Long Time verse:map[-no:1 line:[map[#text:Henry was a renegade -no:1] map[#text:Didn't like to play it safe -no:2]]]]]] s: {"doc":{"name":"Mayer Hawthorne","song":{"title":"A Long Time","verse":{"-no":"1","line":[{"#text":"Henry was a renegade","-no":"1"},{"#text":"Didn't like to play it safe","-no":"2"}]}}}} Unmarshal test ... struct: clbanning
unknown
myInfo: {XMLName:{Space: Local:info} Name:clbanning Address:unknown} TestMapValue of doc.song.verse w/ len(attrs) == 0. doc: Mayer Hawthorne A Long Time Henry was a renegade Didn't like to play it safe result: map[-no:1 line:[map[#text:Henry was a renegade -no:1] map[#text:Didn't like to play it safe -no:2]]] PASS ok github.com/clbanning/mxj/x2j-wrapper 0.015s Processing files: golang-github-clbanning-mxj-devel-2.5.5-4.fc38.noarch Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.svAgGS + RPM_EC=0 ++ jobs -p + exit 0 + umask 022 + cd /builddir/build/BUILD + cd mxj-2.5.5 + DOCDIR=/builddir/build/BUILDROOT/golang-github-clbanning-mxj-2.5.5-4.fc38.s390x/usr/share/doc/golang-github-clbanning-mxj-devel + export LC_ALL=C + LC_ALL=C + export DOCDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/golang-github-clbanning-mxj-2.5.5-4.fc38.s390x/usr/share/doc/golang-github-clbanning-mxj-devel + cp -pr examples /builddir/build/BUILDROOT/golang-github-clbanning-mxj-2.5.5-4.fc38.s390x/usr/share/doc/golang-github-clbanning-mxj-devel + cp -pr readme.md /builddir/build/BUILDROOT/golang-github-clbanning-mxj-2.5.5-4.fc38.s390x/usr/share/doc/golang-github-clbanning-mxj-devel + cp -pr x2j-wrapper/README /builddir/build/BUILDROOT/golang-github-clbanning-mxj-2.5.5-4.fc38.s390x/usr/share/doc/golang-github-clbanning-mxj-devel + RPM_EC=0 ++ jobs -p + exit 0 Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.hYvPwq + umask 022 + cd /builddir/build/BUILD + cd mxj-2.5.5 + LICENSEDIR=/builddir/build/BUILDROOT/golang-github-clbanning-mxj-2.5.5-4.fc38.s390x/usr/share/licenses/golang-github-clbanning-mxj-devel + export LC_ALL=C + LC_ALL=C + export LICENSEDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/golang-github-clbanning-mxj-2.5.5-4.fc38.s390x/usr/share/licenses/golang-github-clbanning-mxj-devel + cp -pr LICENSE /builddir/build/BUILDROOT/golang-github-clbanning-mxj-2.5.5-4.fc38.s390x/usr/share/licenses/golang-github-clbanning-mxj-devel + cp -pr x2j-wrapper/LICENSE /builddir/build/BUILDROOT/golang-github-clbanning-mxj-2.5.5-4.fc38.s390x/usr/share/licenses/golang-github-clbanning-mxj-devel + RPM_EC=0 ++ jobs -p + exit 0 warning: File listed twice: /usr/share/licenses/golang-github-clbanning-mxj-devel/LICENSE grep: warning: stray \ before : grep: warning: stray \ before : grep: warning: stray \ before : grep: warning: stray \ before : grep: warning: stray \ before : grep: warning: stray \ before : grep: warning: stray \ before : grep: warning: stray \ before : Provides: golang(github.com/clbanning/mxj) = 2.5.5-4.fc38 golang(github.com/clbanning/mxj/j2x) = 2.5.5-4.fc38 golang(github.com/clbanning/mxj/x2j) = 2.5.5-4.fc38 golang(github.com/clbanning/mxj/x2j-wrapper) = 2.5.5-4.fc38 golang-github-clbanning-mxj-devel = 2.5.5-4.fc38 golang-ipath(github.com/clbanning/mxj) = 2.5.5-4.fc38 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: go-filesystem Checking for unpackaged file(s): /usr/lib/rpm/check-files /builddir/build/BUILDROOT/golang-github-clbanning-mxj-2.5.5-4.fc38.s390x Wrote: /builddir/build/RPMS/golang-github-clbanning-mxj-devel-2.5.5-4.fc38.noarch.rpm Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.XjJJGZ + umask 022 + cd /builddir/build/BUILD + cd mxj-2.5.5 + /usr/bin/rm -rf /builddir/build/BUILDROOT/golang-github-clbanning-mxj-2.5.5-4.fc38.s390x + RPM_EC=0 ++ jobs -p + exit 0 Executing(rmbuild): /bin/sh -e /var/tmp/rpm-tmp.cczIO4 + umask 022 + cd /builddir/build/BUILD + rm -rf mxj-2.5.5 mxj-2.5.5.gemspec + RPM_EC=0 ++ jobs -p + exit 0 RPM build warnings: File listed twice: /usr/share/licenses/golang-github-clbanning-mxj-devel/LICENSE Child return code was: 0