Heartsync/toss-hwp
0
1[buildout]2extends = translator.cfg3 components/jxml.cfg4 components/xalan-j-2.7.2.cfg5develop+= pyhwp-tests6 tools/xsltest7 tools/gpl8parts+= test-core9 test-coverage10 test-cli11 test-xsl12 test-xsl-cov13 test-sdist14 test-tools15 test-for-bisect16 xsltest17 code-analysis18 collect-samples19 masstest-failed20 massfind-unknowntag21 massfind-incomplete22 expected-output-update23 24[pyhwp]25eggs+= nose26 coverage27 gpl28 pyroma29 30[test-core]31recipe = collective.xmltestreport32eggs = pyhwp-tests33defaults = ['--auto-color', '--auto-progress', '--xml', '--tests-pattern=hwp5_tests']34 35[test-xsl]36recipe = collective.recipe.template37input = ${buildout:directory}/misc/test-xsl.in38output = ${buildout:directory}/bin/test-xsl39mode = 75540 41[test-xsl-cov]42recipe = collective.recipe.template43mode=75544output=${buildout:bin-directory}/test-xsl-cov45input =inline:46 #!/bin/sh47 CLASSPATH=${xalan-j-2.7.2:jars} ${jxml:location}/bin/jxml-cov-test $*48 49[test-coverage]50recipe = collective.recipe.template51input = ${buildout:directory}/misc/test-coverage52output = ${buildout:directory}/bin/test-coverage53mode = 75554 55[test-cli]56recipe = collective.recipe.template57input = ${buildout:directory}/misc/test-cli.in58output = ${buildout:directory}/bin/test-cli59mode = 75560 61[test-sdist]62recipe = collective.recipe.template63input = ${buildout:directory}/misc/test-sdist.in64output = ${buildout:directory}/bin/test-sdist65mode = 75566 67[test-tools]68recipe = collective.xmltestreport69eggs = gpl70defaults = ['--auto-color', '--auto-progress', '--xml']71 72[test-for-bisect]73recipe = collective.recipe.template74input = ${buildout:directory}/misc/test-for-bisect75output = ${buildout:directory}/bin/test-for-bisect76mode = 75577 78[xsltest]79recipe = zc.recipe.egg80eggs = xsltest81 82[code-analysis]83recipe = plone.recipe.codeanalysis84directory = ${buildout:directory}/pyhwp85 86# Default is 1087flake8-max-complexity = 3088 89utf8-header = True90 91[collect-samples]92recipe = collective.recipe.template93mode = 75594output = ${buildout:bin-directory}/${:_buildout_section_name_}95input =96 inline:97 #!/bin/sh98 99 set -e100 101 dir="$1"102 find "$dir" -iname '*.hwp' -print0 | parallel --gnu -0 "${save-sample:output}"103 104[save-sample]105recipe = collective.recipe.template106mode = 755107output = ${buildout:bin-directory}/${:_buildout_section_name_}108input =109 inline:110 #!/bin/sh111 112 set -e113 114 src="$1"115 116 [ -e "$src" ] || (echo "$src not found"; exit 1)117 118 ${:abspath}119 120 version=$(${buildout:bin-directory}/hwp5proc version "$src")121 srcpath=$(abspath "$src")122 sha1sum=$(sha1sum -b "$srcpath" | awk '{ print $1 }')123 124 echo "$version/$sha1sum $srcpath"125 126 repo="${buildout:directory}/samples.local"127 128 blob_dir="${buildout:directory}/samples.local/blob"129 [ -d "$blob_dir" ] || mkdir -p "$blob_dir"130 131 blob_path="$blob_dir/$sha1sum"132 [ -e "$blob_path" ] || cp "$srcpath" "$blob_path"133 134 dst_path="$repo/$version/$sha1sum.hwp"135 dst_dir=$(dirname "$dst_path")136 [ -d "$dst_dir" ] || mkdir -p "$dst_dir"137 [ -e $dst_path ] || ln -s "$blob_path" "$dst_path"138 139abspath=140 abspath() {141 if [ $(echo "$1" | head -c 1) = "/" ]; then142 echo "$1"143 else144 echo "$PWD/$1"145 fi146 }147 148[masstest-failed]149recipe = collective.recipe.template150mode = 755151output = ${buildout:bin-directory}/${:_buildout_section_name_}152input =153 inline:154 #!/bin/sh155 156 set -e157 158 ${masstest:output} "${masstest-worker:failed-dir}"159 160[masstest]161recipe = collective.recipe.template162mode = 755163output = ${buildout:bin-directory}/${:_buildout_section_name_}164input =165 inline:166 #!/bin/sh167 168 set -e169 170 ${:def-masstest}171 172 sample_dir="${buildout:directory}/samples.local/"173 [ -z "$1" ] || sample_dir="$1"174 175 masstest "$sample_dir" | tee ${buildout:parts-directory}/masstest.log176 177def-masstest=178 masstest() {179 find "$1" -iname '*.hwp' -print0 | parallel --gnu -0 ${masstest-worker:output}180 }181 182[masstest-worker]183recipe = collective.recipe.template184mode = 755185output = ${buildout:bin-directory}/${:_buildout_section_name_}186input =187 inline:188 #!/bin/sh189 190 set -e191 192 [ -e "$1" ] || (echo "$1: not found"; exit 1)193 testee="$1"194 195 failed_dir="${:failed-dir}"196 [ -d "$failed_dir" ] || mkdir -p "$failed_dir"197 198 errors_dir="${:errors-dir}"199 [ -d "$errors_dir" ] || mkdir -p "$errors_dir"200 201 testee_filename=$(basename "$testee")202 testee_error_hwp5proc="$errors_dir/$testee_filename.hwp5proc.err"203 testee_error_xmllint="$errors_dir/$testee_filename.xmllint.err"204 205 test_xml() {206 ${buildout:bin-directory}/hwp5proc xml "$testee" 2> "$testee_error_hwp5proc" | xmllint --format - > /dev/null 2> "$testee_error_xmllint"207 }208 209 handle_success() {210 echo ""211 filename=$(basename "$testee")212 failed_path="$failed_dir/$filename"213 [ ! -e "$failed_path" ] || rm -f "$failed_path"214 rm -f "$testee_error_hwp5proc"215 rm -f "$testee_error_xmllint"216 }217 218 handle_failed() {219 echo " FAILED"220 [ -e "$failed_path" ] || ln -s "$testee" "$failed_dir"221 }222 223 echo -n "$testee"224 test_xml && handle_success || handle_failed225 226failed-dir=${buildout:parts-directory}/masstest/failed227errors-dir=${buildout:parts-directory}/masstest/errors228 229 230[massfind-unknowntag]231recipe = collective.recipe.template232output = ${buildout:bin-directory}/${:_buildout_section_name_}233mode = 755234input =235 inline:236 #!/bin/sh237 238 set -e239 240 samples='${buildout:directory}/samples.local'241 find "$samples/" -iname '*.hwp' | parallel --gnu ${buildout:bin-directory}/hwp5proc find --model=UnknownTagModel | tee ${buildout:parts-directory}/massfind-unknowntag242 243 244[massfind-incomplete]245recipe = collective.recipe.template246output = ${buildout:bin-directory}/${:_buildout_section_name_}247mode = 755248input =249 inline:250 #!/bin/sh251 252 set -e253 254 samples='${buildout:directory}/samples.local'255 find "$samples/" -iname '*.hwp' | parallel --gnu ${buildout:bin-directory}/hwp5proc find --incomplete | tee ${buildout:parts-directory}/massfind-incomplete256 257 258[expected-output-update]259recipe = collective.recipe.template260output = ${buildout:bin-directory}/${:_buildout_section_name_}261mode = 755262input =263 inline:264 #!/bin/sh265 266 set -e267 268 samples='${buildout:directory}/samples'269 find "$samples/" -iname '*.hwp' | parallel --gnu ${expected-output-update-worker:output}270 271[expected-output-update-worker]272recipe = collective.recipe.template273output = ${buildout:bin-directory}/${:_buildout_section_name_}274mode = 755275input =276 inline:277 #!/bin/sh278 279 set -e280 281 filename=$1282 docinfo="$filename.docinfo.json"283 section0="$filename.bodytext.section0.json"284 xmlformat="$filename.formatted.xml"285 odt_output="$filename.odt"286 odt_filename=`basename "$odt_output"`287 288 hwp5proc_xml() {289 ${buildout:bin-directory}/hwp5proc xml "$1" 2> "$xmlformat.err"290 }291 292 hwp5odt() {293 local orgdir="$PWD"294 local filename=`basename "$1"`295 local odt_file=`echo $filename | sed -e "s/.hwp$/.odt/g"`296 cd `dirname "$1"`297 ${buildout:bin-directory}/hwp5odt "$filename"298 rm -rf "$odt_file.d"299 mkdir "$odt_file.d"300 unzip "$odt_file" -d "$odt_file.d"301 rm -f "$odt_file"302 cd "$orgdir"303 }304 305 hwp5html() {306 local html_dir=`echo $1 | sed -e "s/.hwp$/.html.d/g"`307 rm -rf "$html_dir"308 ${buildout:bin-directory}/hwp5html "$1" --output "$html_dir"309 xmllint --c14n --nonet --encode utf-8 "$html_dir/index.xhtml" | xmllint --format --encode utf-8 - > "$html_dir/index.formatted.xhtml"310 }311 312 xml_c14n() {313 xmllint --c14n --encode utf-8 - 2> "$xmlformat.c14n.err"314 }315 xml_format() {316 xmllint --format --encode utf-8 - 2> "$xmlformat.format.err"317 }318 319 if ${buildout:bin-directory}/hwp5proc header "$filename" | grep password | grep 0 > /dev/null; then320 dummy=''321 else322 echo "$filename: SKIPPING"323 rm -f "$docinfo.err"324 rm -f "$section0.err"325 rm -f "$xmlformat.err"326 rm -f "$xmlformat.c14n.err"327 rm -f "$xmlformat.format.err"328 exit 0329 fi330 331 ${buildout:bin-directory}/hwp5proc models "$filename" docinfo > "$docinfo" 2> "$docinfo.err" && echo "$filename: docinfo" && rm -f "$docinfo.err"332 333 ${buildout:bin-directory}/hwp5proc models "$filename" bodytext/0 > "$section0" 2> "$section0.err" && echo "$filename: bodytext/0" && rm -f "$section0.err"334 335 hwp5proc_xml "$filename" | xml_c14n | xml_format > "$xmlformat" && echo "$filename: xml" && rm -f "$xmlformat.err" "$xmlformat.c14n.err" "$xmlformat.format.err"336 hwp5odt "$filename"337 hwp5html "$filename"338 