* [PATCH] bzip2: Add test suite for bzip2 @ 2020-04-02 11:10 Rahul Kumar 2020-04-02 22:32 ` [OE-core] " Randy MacLeod 0 siblings, 1 reply; 6+ messages in thread From: Rahul Kumar @ 2020-04-02 11:10 UTC (permalink / raw) To: openembedded-core; +Cc: Rahul Kumar [YOCTO #13444] Signed-off-by: Rahul Kumar <rahulk@mvista.com> --- .../bzip2/0001-bzip2-modify-run-tests-script.patch | 220 +++++++++++++++++++++ meta/recipes-extended/bzip2/bzip2/Makefile.am | 2 + meta/recipes-extended/bzip2/bzip2_1.0.8.bb | 15 +- 3 files changed, 234 insertions(+), 3 deletions(-) create mode 100644 meta/recipes-extended/bzip2/bzip2/0001-bzip2-modify-run-tests-script.patch diff --git a/meta/recipes-extended/bzip2/bzip2/0001-bzip2-modify-run-tests-script.patch b/meta/recipes-extended/bzip2/bzip2/0001-bzip2-modify-run-tests-script.patch new file mode 100644 index 0000000..8ae3c4e --- /dev/null +++ b/meta/recipes-extended/bzip2/bzip2/0001-bzip2-modify-run-tests-script.patch @@ -0,0 +1,220 @@ +From 42e6258485030085285d4b30854bfb94bcf43880 Mon Sep 17 00:00:00 2001 +From: Rahul Kumar <rahulk@mvista.com> +Date: Mon, 30 Mar 2020 12:17:00 +0530 +Subject: [PATCH] bzip2: modify run-tests script + +Upstream-Status: Inappropriate [ modify run-tests script for ptest infrastructure ] + +modify run-tests script to write PASS/FAIL as expected by the ptest infrastructure + +Signed-off-by: Rahul Kumar <rahulk@mvista.com> +--- + run-tests.sh | 83 +++++++++++++++++++++++++++++++----------------------------- + 1 file changed, 43 insertions(+), 40 deletions(-) + +diff --git a/run-tests.sh b/run-tests.sh +index 1ba8c27..1eff62a 100755 +--- a/run-tests.sh ++++ b/run-tests.sh +@@ -10,7 +10,7 @@ + VALGRIND="valgrind" + VALGRIND_ARGS="-q --error-exitcode=9" + BZIP2="bzip2" +-TESTS_DIR="." ++TESTS_DIR="./bzip2-tests" + IGNORE_MD5=0 + + for i in "$@" +@@ -40,21 +40,21 @@ case $i in + esac + done + +-if ! type "valgrind" > /dev/null; then ++if ! type "valgrind" > /dev/null 2>&1; then + VALGRIND="" + VALGRIND_ARGS="" + fi + + echo "Testing ${BZIP2} in directory ${TESTS_DIR}" + if [ "$VALGRIND" != "" ]; then +- echo " using valgrind" ++ echo "Using valgrind: Yes" + else +- echo " NOT using valgrind" ++ echo "Using valgrind: No" + fi + if [[ ${IGNORE_MD5} -eq 0 ]]; then +- echo " checking md5 sums" ++ echo "Checking md5 sums: Yes" + else +- echo " NOT checking md5 sums" ++ echo "Checking md5 sums: No" + fi + + # Remove any left over tesfilecopies from previous runs first. +@@ -76,16 +76,16 @@ while IFS= read -r -d '' bzfile; do + echo "Processing ${bzfile}" + + # Decompress it. +- echo " Decompress..." ++ # echo " Decompress..." + rm -f "${file}" +- ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -k -d -q ${bzfile} \ +- || { echo "!!! bad decompress result $?"; ++ ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -k -d -q ${bzfile} && { echo "PASS: ${bzfile} Decompress"; } \ ++ || { echo "FAIL: ${bzfile} Decompress"; + badtests=("${badtests[@]}" $"${bzfile} bad decompress result") + nogood=$[${nogood}+1]; continue; } + + if [[ ${IGNORE_MD5} -ne 1 ]]; then +- md5sum --check --status ${md5file} < ${file} \ +- || { echo "!!! md5sum doesn't match decompressed file"; ++ md5sum -c ${md5file} < ${file} && { echo "PASS: ${bzfile} md5sum Matched"; } \ ++ || { echo "FAIL: ${bzfile} md5sum Matched"; + badtests=("${badtests[@]}" $"${file} md5sum doesn't match") + nogood=$[${nogood}+1]; continue; } + fi +@@ -93,20 +93,20 @@ while IFS= read -r -d '' bzfile; do + # Compress and decompress a copy + mv "${file}" "${copy}" + rm -f "${bzcopy}" +- echo " Recompress..." +- ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -z -q -s ${copy} \ +- || { echo "!!! bad compress result $?"; ++ # echo " Recompress..." ++ ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -z -q -s ${copy} && { echo "PASS: ${bzfile} Recompress "; } \ ++ || { echo "FAIL: ${bzfile} Recompress"; + badtests=("${badtests[@]}" $"${copy} bad result") + nogood=$[${nogood}+1]; continue; } +- echo " Redecompress..." +- ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -d -q -s ${bzcopy} \ +- || { echo "!!! bad (re)decompress result $?"; ++ # echo " Redecompress..." ++ ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -d -q -s ${bzcopy} && { echo "PASS: ${bzfile} Redecompress"; } \ ++ || { echo "FAIL: ${bzfile} Redecompress"; + badtests=("${badtests[@]}" $"${bzcopy} bad result") + nogood=$[${nogood}+1]; continue; } + + if [[ ${IGNORE_MD5} -ne 1 ]]; then +- md5sum --check --status ${md5file} < ${copy} \ +- || { echo "!!! md5sum doesn't match (re)decompressed file"; ++ md5sum -c ${md5file} < ${copy} && { echo "PASS: ${bzfile} md5sum Matched"; } \ ++ || { echo "FAIL: ${bzfile} md5sum Matched"; + badtests=("${badtests[@]}" $"${copy} md5sum doesn't match") + nogood=$[${nogood}+1]; continue; } + fi +@@ -114,16 +114,16 @@ while IFS= read -r -d '' bzfile; do + rm "${copy}" + + # Now do it all again in "small" mode. +- echo " Decompress (small)..." ++ # echo " Decompress (small)..." + rm -f "${file}" +- ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -k -d -q -s ${bzfile} \ +- || { echo "!!! bad decompress result $?"; ++ ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -k -d -q -s ${bzfile} &&{ echo "PASS: ${bzfile} Decompress (small)"; } \ ++ || { echo "FAIL: ${bzfile} Decompress (small)"; + badtests=("${badtests[@]}" $"${bzfile} bad decompress result") + nogood=$[${nogood}+1]; continue; } + + if [[ ${IGNORE_MD5} -ne 1 ]]; then +- md5sum --check --status ${md5file} < ${file} \ +- || { echo "!!! md5sum doesn't match decompressed file"; ++ md5sum -c ${md5file} < ${file} > /dev/null 2>&1 && { echo "PASS: ${bzfile} Md5sum Matched"; } \ ++ || { echo "FAIL: ${bzfile} Md5sum Matched"; + badtests=("${badtests[@]}" $"${file} md5sum doesn't match") + nogood=$[${nogood}+1]; continue; } + fi +@@ -131,20 +131,20 @@ while IFS= read -r -d '' bzfile; do + # Compress and decompress a copy + mv "${file}" "${copy}" + rm -f "${bzcopy}" +- echo " Recompress (small)..." +- ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -z -q -s ${copy} \ +- || { echo "!!! bad compress result $?"; ++ # echo " Recompress (small)..." ++ ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -z -q -s ${copy} && { echo "PASS: ${bzfile} Recompress (small)"; } \ ++ || { echo "FAIL: ${bzfile} Recompress (small)"; + badtests=("${badtests[@]}" $"${copy} bad result") + nogood=$[${nogood}+1]; continue; } +- echo " Redecompress (small)..." +- ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -d -q -s ${bzcopy} \ +- || { echo "!!! bad (re)decompress result $?"; ++ # echo " Redecompress (small)..." ++ ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -d -q -s ${bzcopy} && { echo "PASS: ${bzfile} Redecompress (small)"; } \ ++ || { echo "FAIL: ${bzfile} Redecompress (small)"; + badtests=("${badtests[@]}" $"${bzcopy} bad result") + nogood=$[${nogood}+1]; continue; } + + if [[ ${IGNORE_MD5} -ne 1 ]]; then +- md5sum --check --status ${md5file} < ${copy} \ +- || { echo "!!! md5sum doesn't match (re)decompressed file"; ++ md5sum -c ${md5file} < ${copy} && { echo "PASS: ${bzfile} md5sum Matched"; } \ ++ || { echo "FAIL: ${bzfile} md5sum : Miss Matched"; + badtests=("${badtests[@]}" $"${copy} md5sum doesn't match") + nogood=$[${nogood}+1]; continue; } + fi +@@ -169,14 +169,14 @@ nobad=0 + badbad=0 + while IFS= read -r -d '' badfile; do + +- echo "Processing ${badfile}" ++ # echo "Processing ${badfile}" + +- echo " Trying to decompress..." ++ # echo " Trying to decompress..." + ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -k -d -q ${badfile} + ret=$? + + if [[ ${ret} -eq 0 ]]; then +- echo "!!! badness not detected" ++ echo "FAIL: badness not detected" + nobad=$[${nobad}+1] + badtests=("${badtests[@]}" $"${badfile} badness not detected") + continue +@@ -185,18 +185,20 @@ while IFS= read -r -d '' badfile; do + # Assumes "normal" badness is detected by exit code 1 or 2. + # A crash or valgrind issue will be reported with something else. + if [[ ${ret} != 1 ]] && [[ ${ret} != 2 ]]; then +- echo "!!! baddness caused baddness in ${BZIP2}" ++ echo "FAIL: baddness caused baddness in ${BZIP2}" + badbad=$[${badbad}+1] + badtests=("${badtests[@]}" $"${badfile} badness caused baddness") + continue ++ else ++ echo "PASS: Correctly found data integrity errors in ${badfile} during decompress." + fi + +- echo " Trying to decompress (small)..." ++ # echo " Trying to decompress (small)..." + ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -k -d -q -s ${badfile} + ret=$? + + if [[ ${ret} -eq 0 ]]; then +- echo "!!! badness not detected" ++ echo "FAIL: badness not detected " + nobad=$[${nobad}+1] + badtests=("${badtests[@]}" $"${badfile} badness not detected") + continue +@@ -205,10 +207,12 @@ while IFS= read -r -d '' badfile; do + # Assumes "normal" badness is detected by exit code 1 or 2. + # A crash or valgrind issue will be reported with something else. + if [[ ${ret} != 1 ]] && [[ ${ret} != 2 ]]; then +- echo "!!! baddness caused baddness in ${BZIP2}" ++ echo "FAIL: baddness caused baddness in ${BZIP2}" + badbad=$[${badbad}+1] + badtests=("${badtests[@]}" $"${badfile} badness caused baddness") + continue ++ else ++ echo "PASS: Correctly found data integrity errors in ${badfile} during decompress (small)" + fi + + done < <(find ${TESTS_DIR} -type f -name \*\.bz2.bad -print0) +@@ -234,5 +238,4 @@ if [[ ${results} -eq 0 ]]; then + else + echo "Bad results, look for !!! in the logs above" + printf ' - %s\n' "${badtests[@]}" +- exit 1 + fi +-- +2.7.4 diff --git a/meta/recipes-extended/bzip2/bzip2/Makefile.am b/meta/recipes-extended/bzip2/bzip2/Makefile.am index dcf6458..f917b23 100644 --- a/meta/recipes-extended/bzip2/bzip2/Makefile.am +++ b/meta/recipes-extended/bzip2/bzip2/Makefile.am @@ -46,6 +46,7 @@ runtest: else echo "FAIL: sample2 decompress"; fi @if cmp sample3.tst sample3.ref; then echo "PASS: sample3 decompress";\ else echo "FAIL: sample3 decompress"; fi + ./bzip2-tests/run-tests.sh install-ptest: sed -n '/^runtest:/,/^install-ptest:/{/^install-ptest:/!p}' \ @@ -56,6 +57,7 @@ install-ptest: cp $(srcdir)/sample1.bz2 $(DESTDIR)/ cp $(srcdir)/sample2.bz2 $(DESTDIR)/ cp $(srcdir)/sample3.bz2 $(DESTDIR)/ + cp -rf $(srcdir)/../git $(DESTDIR)/bzip2-tests ln -s $(bindir)/bzip2 $(DESTDIR)/bzip2 install-exec-hook: diff --git a/meta/recipes-extended/bzip2/bzip2_1.0.8.bb b/meta/recipes-extended/bzip2/bzip2_1.0.8.bb index 8e9b779..e8ec5c6 100644 --- a/meta/recipes-extended/bzip2/bzip2_1.0.8.bb +++ b/meta/recipes-extended/bzip2/bzip2_1.0.8.bb @@ -5,16 +5,25 @@ LZ77/LZ78-based compressors, and approaches the performance of the PPM family of HOMEPAGE = "https://sourceware.org/bzip2/" SECTION = "console/utils" LICENSE = "bzip2" -LIC_FILES_CHKSUM = "file://LICENSE;beginline=4;endline=37;md5=600af43c50f1fcb82e32f19b32df4664" - +LIC_FILES_CHKSUM = "file://LICENSE;beginline=4;endline=37;md5=600af43c50f1fcb82e32f19b32df4664 \ + file://../git/go/LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707 \ + file://../git/dotnetzip/License.txt;md5=9cb56871eed4e748c3bc7e8ff352a54f \ + file://../git/dotnetzip/License.zlib.txt;md5=cc421ccd22eeb2e5db6b79e6de0a029f \ + file://../git/commons-compress/LICENSE.txt;md5=86d3f3a95c324c9479bd8986968f4327 \ + " SRC_URI = "https://sourceware.org/pub/${BPN}/${BPN}-${PV}.tar.gz \ + git://sourceware.org/git/bzip2-tests.git;name=bzip2-tests \ file://configure.ac;subdir=${BP} \ file://Makefile.am;subdir=${BP} \ file://run-ptest \ + file://0001-bzip2-modify-run-tests-script.patch;patchdir=${WORKDIR}/git \ " + SRC_URI[md5sum] = "67e051268d0c475ea773822f7500d0e5" SRC_URI[sha256sum] = "ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269" +SRCREV_bzip2-tests = "8b0198efda1603cf81fa2c7a9bb673dd22ae1661" + UPSTREAM_CHECK_URI = "https://www.sourceware.org/pub/bzip2/" PACKAGES =+ "libbz2" @@ -39,7 +48,7 @@ do_install_ptest () { FILES_libbz2 = "${libdir}/lib*${SOLIBS}" -RDEPENDS_${PN}-ptest += "make" +RDEPENDS_${PN}-ptest += "make bash" PROVIDES_append_class-native = " bzip2-replacement-native" BBCLASSEXTEND = "native nativesdk" -- 2.7.4 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [OE-core] [PATCH] bzip2: Add test suite for bzip2 2020-04-02 11:10 [PATCH] bzip2: Add test suite for bzip2 Rahul Kumar @ 2020-04-02 22:32 ` Randy MacLeod 2020-04-13 17:22 ` Rahul Kumar 0 siblings, 1 reply; 6+ messages in thread From: Randy MacLeod @ 2020-04-02 22:32 UTC (permalink / raw) To: Rahul Kumar, openembedded-core On 2020-04-02 7:10 a.m., Rahul Kumar wrote: > [YOCTO #13444] Thanks for contributing this work Rahul. It would be good if the long log explained the changes made in a sentence or two. I've made some comments and asked some questions inline below. I may have gone overboard but I hope you get the idea that we'd like to see not just the changes but the reason for the changes. Also, can you present the results of running: # ptest-runner bzip2 on qemux86-64 with kvm enabled in the long log? If there are tests that fail or are skipped comment on that even it it's to say that you don't know what is wrong. > > Signed-off-by: Rahul Kumar <rahulk@mvista.com> > --- > .../bzip2/0001-bzip2-modify-run-tests-script.patch | 220 +++++++++++++++++++++ > meta/recipes-extended/bzip2/bzip2/Makefile.am | 2 + > meta/recipes-extended/bzip2/bzip2_1.0.8.bb | 15 +- > 3 files changed, 234 insertions(+), 3 deletions(-) > create mode 100644 meta/recipes-extended/bzip2/bzip2/0001-bzip2-modify-run-tests-script.patch > > diff --git a/meta/recipes-extended/bzip2/bzip2/0001-bzip2-modify-run-tests-script.patch b/meta/recipes-extended/bzip2/bzip2/0001-bzip2-modify-run-tests-script.patch > new file mode 100644 > index 0000000..8ae3c4e > --- /dev/null > +++ b/meta/recipes-extended/bzip2/bzip2/0001-bzip2-modify-run-tests-script.patch > @@ -0,0 +1,220 @@ > +From 42e6258485030085285d4b30854bfb94bcf43880 Mon Sep 17 00:00:00 2001 > +From: Rahul Kumar <rahulk@mvista.com> > +Date: Mon, 30 Mar 2020 12:17:00 +0530 > +Subject: [PATCH] bzip2: modify run-tests script > + > +Upstream-Status: Inappropriate [ modify run-tests script for ptest infrastructure ] It seems that some of the changes are to make the tests less verbose and to 'tighten-up' the language and formatting used. Upstream might accept them, have you checked? If you change the status to Pending I think it would be better for now because that would force someone check on the progress at some point. > + > +modify run-tests script to write PASS/FAIL as expected by the ptest infrastructure > + > +Signed-off-by: Rahul Kumar <rahulk@mvista.com> > +--- > + run-tests.sh | 83 +++++++++++++++++++++++++++++++----------------------------- > + 1 file changed, 43 insertions(+), 40 deletions(-) > + > +diff --git a/run-tests.sh b/run-tests.sh > +index 1ba8c27..1eff62a 100755 > +--- a/run-tests.sh > ++++ b/run-tests.sh > +@@ -10,7 +10,7 @@ > + VALGRIND="valgrind" > + VALGRIND_ARGS="-q --error-exitcode=9" > + BZIP2="bzip2" > +-TESTS_DIR="." > ++TESTS_DIR="./bzip2-tests" Can you explain why you did this? Maybe upstream would accept it. > + IGNORE_MD5=0 > + > + for i in "$@" > +@@ -40,21 +40,21 @@ case $i in > + esac > + done > + > +-if ! type "valgrind" > /dev/null; then > ++if ! type "valgrind" > /dev/null 2>&1; then > + VALGRIND="" > + VALGRIND_ARGS="" > + fi > + > + echo "Testing ${BZIP2} in directory ${TESTS_DIR}" > + if [ "$VALGRIND" != "" ]; then > +- echo " using valgrind" > ++ echo "Using valgrind: Yes" > + else > +- echo " NOT using valgrind" > ++ echo "Using valgrind: No" > + fi > + if [[ ${IGNORE_MD5} -eq 0 ]]; then > +- echo " checking md5 sums" > ++ echo "Checking md5 sums: Yes" > + else > +- echo " NOT checking md5 sums" > ++ echo "Checking md5 sums: No" > + fi > + > + # Remove any left over tesfilecopies from previous runs first. > +@@ -76,16 +76,16 @@ while IFS= read -r -d '' bzfile; do > + echo "Processing ${bzfile}" > + > + # Decompress it. > +- echo " Decompress..." > ++ # echo " Decompress..." Without an explanation in the long log, I can't tell if this comment was removed intentionally or perhaps when you were debugging. I expect you have a good reason to remove it but an explaination would be helpful. > + rm -f "${file}" > +- ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -k -d -q ${bzfile} \ > +- || { echo "!!! bad decompress result $?"; > ++ ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -k -d -q ${bzfile} && { echo "PASS: ${bzfile} Decompress"; } \ > ++ || { echo "FAIL: ${bzfile} Decompress"; > + badtests=("${badtests[@]}" $"${bzfile} bad decompress result") > + nogood=$[${nogood}+1]; continue; } > + > + if [[ ${IGNORE_MD5} -ne 1 ]]; then > +- md5sum --check --status ${md5file} < ${file} \ > +- || { echo "!!! md5sum doesn't match decompressed file"; > ++ md5sum -c ${md5file} < ${file} && { echo "PASS: ${bzfile} md5sum Matched"; } \ > ++ || { echo "FAIL: ${bzfile} md5sum Matched"; > + badtests=("${badtests[@]}" $"${file} md5sum doesn't match") > + nogood=$[${nogood}+1]; continue; } > + fi > +@@ -93,20 +93,20 @@ while IFS= read -r -d '' bzfile; do > + # Compress and decompress a copy > + mv "${file}" "${copy}" > + rm -f "${bzcopy}" > +- echo " Recompress..." > +- ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -z -q -s ${copy} \ > +- || { echo "!!! bad compress result $?"; > ++ # echo " Recompress..." > ++ ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -z -q -s ${copy} && { echo "PASS: ${bzfile} Recompress "; } \ > ++ || { echo "FAIL: ${bzfile} Recompress"; > + badtests=("${badtests[@]}" $"${copy} bad result") > + nogood=$[${nogood}+1]; continue; } > +- echo " Redecompress..." > +- ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -d -q -s ${bzcopy} \ > +- || { echo "!!! bad (re)decompress result $?"; > ++ # echo " Redecompress..." > ++ ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -d -q -s ${bzcopy} && { echo "PASS: ${bzfile} Redecompress"; } \ > ++ || { echo "FAIL: ${bzfile} Redecompress"; > + badtests=("${badtests[@]}" $"${bzcopy} bad result") > + nogood=$[${nogood}+1]; continue; } > + > + if [[ ${IGNORE_MD5} -ne 1 ]]; then > +- md5sum --check --status ${md5file} < ${copy} \ > +- || { echo "!!! md5sum doesn't match (re)decompressed file"; > ++ md5sum -c ${md5file} < ${copy} && { echo "PASS: ${bzfile} md5sum Matched"; } \ > ++ || { echo "FAIL: ${bzfile} md5sum Matched"; > + badtests=("${badtests[@]}" $"${copy} md5sum doesn't match") > + nogood=$[${nogood}+1]; continue; } > + fi > +@@ -114,16 +114,16 @@ while IFS= read -r -d '' bzfile; do > + rm "${copy}" > + > + # Now do it all again in "small" mode. > +- echo " Decompress (small)..." > ++ # echo " Decompress (small)..." > + rm -f "${file}" > +- ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -k -d -q -s ${bzfile} \ > +- || { echo "!!! bad decompress result $?"; > ++ ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -k -d -q -s ${bzfile} &&{ echo "PASS: ${bzfile} Decompress (small)"; } \ > ++ || { echo "FAIL: ${bzfile} Decompress (small)"; > + badtests=("${badtests[@]}" $"${bzfile} bad decompress result") > + nogood=$[${nogood}+1]; continue; } > + > + if [[ ${IGNORE_MD5} -ne 1 ]]; then > +- md5sum --check --status ${md5file} < ${file} \ > +- || { echo "!!! md5sum doesn't match decompressed file"; > ++ md5sum -c ${md5file} < ${file} > /dev/null 2>&1 && { echo "PASS: ${bzfile} Md5sum Matched"; } \ > ++ || { echo "FAIL: ${bzfile} Md5sum Matched"; > + badtests=("${badtests[@]}" $"${file} md5sum doesn't match") > + nogood=$[${nogood}+1]; continue; } > + fi > +@@ -131,20 +131,20 @@ while IFS= read -r -d '' bzfile; do > + # Compress and decompress a copy > + mv "${file}" "${copy}" > + rm -f "${bzcopy}" > +- echo " Recompress (small)..." > +- ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -z -q -s ${copy} \ > +- || { echo "!!! bad compress result $?"; > ++ # echo " Recompress (small)..." > ++ ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -z -q -s ${copy} && { echo "PASS: ${bzfile} Recompress (small)"; } \ > ++ || { echo "FAIL: ${bzfile} Recompress (small)"; > + badtests=("${badtests[@]}" $"${copy} bad result") > + nogood=$[${nogood}+1]; continue; } > +- echo " Redecompress (small)..." > +- ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -d -q -s ${bzcopy} \ > +- || { echo "!!! bad (re)decompress result $?"; > ++ # echo " Redecompress (small)..." > ++ ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -d -q -s ${bzcopy} && { echo "PASS: ${bzfile} Redecompress (small)"; } \ > ++ || { echo "FAIL: ${bzfile} Redecompress (small)"; > + badtests=("${badtests[@]}" $"${bzcopy} bad result") > + nogood=$[${nogood}+1]; continue; } > + > + if [[ ${IGNORE_MD5} -ne 1 ]]; then > +- md5sum --check --status ${md5file} < ${copy} \ > +- || { echo "!!! md5sum doesn't match (re)decompressed file"; > ++ md5sum -c ${md5file} < ${copy} && { echo "PASS: ${bzfile} md5sum Matched"; } \ > ++ || { echo "FAIL: ${bzfile} md5sum : Miss Matched"; > + badtests=("${badtests[@]}" $"${copy} md5sum doesn't match") > + nogood=$[${nogood}+1]; continue; } > + fi > +@@ -169,14 +169,14 @@ nobad=0 > + badbad=0 > + while IFS= read -r -d '' badfile; do > + > +- echo "Processing ${badfile}" > ++ # echo "Processing ${badfile}" > + > +- echo " Trying to decompress..." > ++ # echo " Trying to decompress..." > + ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -k -d -q ${badfile} > + ret=$? > + > + if [[ ${ret} -eq 0 ]]; then > +- echo "!!! badness not detected" > ++ echo "FAIL: badness not detected" > + nobad=$[${nobad}+1] > + badtests=("${badtests[@]}" $"${badfile} badness not detected") > + continue > +@@ -185,18 +185,20 @@ while IFS= read -r -d '' badfile; do > + # Assumes "normal" badness is detected by exit code 1 or 2. > + # A crash or valgrind issue will be reported with something else. > + if [[ ${ret} != 1 ]] && [[ ${ret} != 2 ]]; then > +- echo "!!! baddness caused baddness in ${BZIP2}" > ++ echo "FAIL: baddness caused baddness in ${BZIP2}" It's 'badness': https://www.merriam-webster.com/thesaurus/badness > + badbad=$[${badbad}+1] > + badtests=("${badtests[@]}" $"${badfile} badness caused baddness") > + continue > ++ else > ++ echo "PASS: Correctly found data integrity errors in ${badfile} during decompress." > + fi > + > +- echo " Trying to decompress (small)..." > ++ # echo " Trying to decompress (small)..." > + ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -k -d -q -s ${badfile} > + ret=$? > + > + if [[ ${ret} -eq 0 ]]; then > +- echo "!!! badness not detected" > ++ echo "FAIL: badness not detected " > + nobad=$[${nobad}+1] > + badtests=("${badtests[@]}" $"${badfile} badness not detected") > + continue > +@@ -205,10 +207,12 @@ while IFS= read -r -d '' badfile; do > + # Assumes "normal" badness is detected by exit code 1 or 2. > + # A crash or valgrind issue will be reported with something else. > + if [[ ${ret} != 1 ]] && [[ ${ret} != 2 ]]; then > +- echo "!!! baddness caused baddness in ${BZIP2}" > ++ echo "FAIL: baddness caused baddness in ${BZIP2}" > + badbad=$[${badbad}+1] > + badtests=("${badtests[@]}" $"${badfile} badness caused baddness") > + continue > ++ else > ++ echo "PASS: Correctly found data integrity errors in ${badfile} during decompress (small)" > + fi > + > + done < <(find ${TESTS_DIR} -type f -name \*\.bz2.bad -print0) > +@@ -234,5 +238,4 @@ if [[ ${results} -eq 0 ]]; then > + else > + echo "Bad results, look for !!! in the logs above" > + printf ' - %s\n' "${badtests[@]}" > +- exit 1 > + fi > +-- > +2.7.4 > diff --git a/meta/recipes-extended/bzip2/bzip2/Makefile.am b/meta/recipes-extended/bzip2/bzip2/Makefile.am > index dcf6458..f917b23 100644 > --- a/meta/recipes-extended/bzip2/bzip2/Makefile.am > +++ b/meta/recipes-extended/bzip2/bzip2/Makefile.am > @@ -46,6 +46,7 @@ runtest: > else echo "FAIL: sample2 decompress"; fi > @if cmp sample3.tst sample3.ref; then echo "PASS: sample3 decompress";\ > else echo "FAIL: sample3 decompress"; fi > + ./bzip2-tests/run-tests.sh > > install-ptest: > sed -n '/^runtest:/,/^install-ptest:/{/^install-ptest:/!p}' \ > @@ -56,6 +57,7 @@ install-ptest: > cp $(srcdir)/sample1.bz2 $(DESTDIR)/ > cp $(srcdir)/sample2.bz2 $(DESTDIR)/ > cp $(srcdir)/sample3.bz2 $(DESTDIR)/ > + cp -rf $(srcdir)/../git $(DESTDIR)/bzip2-tests > ln -s $(bindir)/bzip2 $(DESTDIR)/bzip2 > > install-exec-hook: > diff --git a/meta/recipes-extended/bzip2/bzip2_1.0.8.bb b/meta/recipes-extended/bzip2/bzip2_1.0.8.bb > index 8e9b779..e8ec5c6 100644 > --- a/meta/recipes-extended/bzip2/bzip2_1.0.8.bb > +++ b/meta/recipes-extended/bzip2/bzip2_1.0.8.bb > @@ -5,16 +5,25 @@ LZ77/LZ78-based compressors, and approaches the performance of the PPM family of > HOMEPAGE = "https://sourceware.org/bzip2/" > SECTION = "console/utils" > LICENSE = "bzip2" > -LIC_FILES_CHKSUM = "file://LICENSE;beginline=4;endline=37;md5=600af43c50f1fcb82e32f19b32df4664" > - > +LIC_FILES_CHKSUM = "file://LICENSE;beginline=4;endline=37;md5=600af43c50f1fcb82e32f19b32df4664 \ > + file://../git/go/LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707 \ > + file://../git/dotnetzip/License.txt;md5=9cb56871eed4e748c3bc7e8ff352a54f \ > + file://../git/dotnetzip/License.zlib.txt;md5=cc421ccd22eeb2e5db6b79e6de0a029f \ > + file://../git/commons-compress/LICENSE.txt;md5=86d3f3a95c324c9479bd8986968f4327 \ What's all this additional license info about? Please explain in when replying as well as in the long log. > + " > SRC_URI = "https://sourceware.org/pub/${BPN}/${BPN}-${PV}.tar.gz \ > + git://sourceware.org/git/bzip2-tests.git;name=bzip2-tests \ Mention how big this repo is in the long log. > file://configure.ac;subdir=${BP} \ > file://Makefile.am;subdir=${BP} \ > file://run-ptest \ > + file://0001-bzip2-modify-run-tests-script.patch;patchdir=${WORKDIR}/git \ > " > + > SRC_URI[md5sum] = "67e051268d0c475ea773822f7500d0e5" > SRC_URI[sha256sum] = "ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269" > > +SRCREV_bzip2-tests = "8b0198efda1603cf81fa2c7a9bb673dd22ae1661" > + > UPSTREAM_CHECK_URI = "https://www.sourceware.org/pub/bzip2/" > > PACKAGES =+ "libbz2" > @@ -39,7 +48,7 @@ do_install_ptest () { > > FILES_libbz2 = "${libdir}/lib*${SOLIBS}" > > -RDEPENDS_${PN}-ptest += "make" > +RDEPENDS_${PN}-ptest += "make bash" Does it really depend on bash or just a POSIX compliant /bin/sh ? If it requires bash, how bad are the scripts and can they be made POSIX compliant with the help of: https://www.shellcheck.net/ ../Randy > > PROVIDES_append_class-native = " bzip2-replacement-native" > BBCLASSEXTEND = "native nativesdk" > > > > -- # Randy MacLeod # Wind River Linux ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [OE-core] [PATCH] bzip2: Add test suite for bzip2 2020-04-02 22:32 ` [OE-core] " Randy MacLeod @ 2020-04-13 17:22 ` Rahul Kumar 2020-04-13 19:18 ` Randy MacLeod 0 siblings, 1 reply; 6+ messages in thread From: Rahul Kumar @ 2020-04-13 17:22 UTC (permalink / raw) To: Randy MacLeod, openembedded-core [-- Attachment #1.1: Type: text/plain, Size: 24287 bytes --] Hi Randy, Kindly find the attached bzip2 ptest logs file. I answered your Question here . Kindly take a look and feel free to point out if i am wrong at any place and let me know if i missed anything. ========== > + > +modify run-tests script to write PASS/FAIL as expected by the ptest infrastructure > + > +Signed-off-by: Rahul Kumar <rahulk@mvista.com> > +--- > + run-tests.sh | 83 +++++++++++++++++++++++++++++++----------------------------- > + 1 file changed, 43 insertions(+), 40 deletions(-) > + > +diff --git a/run-tests.sh b/run-tests.sh > +index 1ba8c27..1eff62a 100755 > +--- a/run-tests.sh > ++++ b/run-tests.sh > +@@ -10,7 +10,7 @@ > + VALGRIND="valgrind" > + VALGRIND_ARGS="-q --error-exitcode=9" > + BZIP2="bzip2" > +-TESTS_DIR="." > ++TESTS_DIR="./bzip2-tests" Can you explain why you did this? Maybe upstream would accept it ? Ans: we need to parse the TEST_DIR Path because we are running runtest.sh script outside the bzip2-tests directory. But I figured out a more convenient way for this. I will parse the TEST_DIR path during running the runscript.sh. I can implement this by adding below line in makefile.am file. ./bzip2-tests/run-tests.sh --tests-dir="$(PWD)/bzip2-tests" In Next version of patch I will implement it. =========== > + IGNORE_MD5=0 > + > + for i in "$@" > +@@ -40,21 +40,21 @@ case $i in > + esac > + done > + > +-if ! type "valgrind" > /dev/null; then > ++if ! type "valgrind" > /dev/null 2>&1; then > + VALGRIND="" > + VALGRIND_ARGS="" > + fi Explanation: if ! type "valgrind" > /dev/null; suppose if valgrind is not present in my image at that time it is showing ./bzip2-tests/run-tests.sh: line 43: type: valgrind: not found Since we are displaying a message in script that valgrind is used or not. So i redirect the output BY Modifying this line with "if ! type "valgrind" > /dev/null 2>&1" ========== > + echo "Testing ${BZIP2} in directory ${TESTS_DIR}" > + if [ "$VALGRIND" != "" ]; then > +- echo " using valgrind" > ++ echo "Using valgrind: Yes" > + else > +- echo " NOT using valgrind" > ++ echo "Using valgrind: No" > + fi > + if [[ ${IGNORE_MD5} -eq 0 ]]; then > +- echo " checking md5 sums" > ++ echo "Checking md5 sums: Yes" > + else > +- echo " NOT checking md5 sums" > ++ echo "Checking md5 sums: No" > + fi > + Explanation: I Simply modified valgrind and md5sum messages with Yes/No ========== > + # Remove any left over tesfilecopies from previous runs first. > +@@ -76,16 +76,16 @@ while IFS= read -r -d '' bzfile; do > + echo "Processing ${bzfile}" > + > + # Decompress it. > +- echo " Decompress..." > ++ # echo " Decompress..." Explanation: Initially for each file It is printing Decompress... I think which is not required to display in ptest logs so i comment it out. ========== > + if [[ ${IGNORE_MD5} -ne 1 ]]; then > +- md5sum --check --status ${md5file} < ${file} \ > +- || { echo "!!! md5sum doesn't match decompressed file"; > ++ md5sum -c ${md5file} < ${file} && { echo "PASS: ${bzfile} md5sum Matched"; } \ > ++ || { echo "FAIL: ${bzfile} md5sum Matched"; > + badtests=("${badtests[@]}" $"${file} md5sum doesn't match") > + nogood=$[${nogood}+1]; conti Explanation: for md5sum there is no short form option for --status option. use of --status is "don't output anything, status code shows success" md5sum -c ${md5file} < ${copy} so i removed the --status option due to this below line is coming in ptest log -: OK ========== + echo "Bad results, look for !!! in the logs above" + printf ' - %s\n' "${badtests[@]}" +- exit 1 + fi +-- Explanation: if some test failed then script is returning with exit 1 status due to this at the end of ptest below message is printing make: *** [Makefile:14: runtest] Error 1 logs wil looks like below if script returning with exit 1 status PASS: Correctly found data integrity errors in ./bzip2-tests/lbzip2/void.bz2.bad during decompress (small) Correctly found all bad file data integrity errors. Bad results, look for !!! in the logs above - ./bzip2-tests/commons-compress/zip64support.tar.bz2 bad decompress result - ./bzip2-tests/go/regexp/re2-exhaustive.txt.bz2 bad decompress result - ./bzip2-tests/lbzip2/idx899999.bz2 bad decompress result - ./bzip2-tests/lbzip2/ch255.bz2 bad decompress result - ./bzip2-tests/pyflate/45MB-fb.bz2 bad decompress result - ./bzip2-tests/pyflate/45MB-00.bz2 bad decompress result make: *** [Makefile:14: runtest] Error 1 ERROR: Exit status is 512 DURATION: 31 END: /usr/lib/bzip2/ptest 2020-04-13T16:05 STOP: ptest-runner root@qemux86-64:~# To avoid "make: *** [Makefile:14: runtest] Error 1" messgae I removed exit 1 line from the script. May be i am wrong please suggest me i should keep it or remove. ========== > file://configure.ac;subdir=${BP} \ > file://Makefile.am;subdir=${BP} \ > file://run-ptest \ > + file://0001-bzip2-modify-run-tests-script.patch;patchdir=${WORKDIR}/git \ > " > + > SRC_URI[md5sum] = "67e051268d0c475ea773822f7500d0e5" > SRC_URI[sha256sum] = "ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269" > > +SRCREV_bzip2-tests = "8b0198efda1603cf81fa2c7a9bb673dd22ae1661" > + > UPSTREAM_CHECK_URI = "https://www.sourceware.org/pub/bzip2/" > > PACKAGES =+ "libbz2" > @@ -39,7 +48,7 @@ do_install_ptest () { > > FILES_libbz2 = "${libdir}/lib*${SOLIBS}" > > -RDEPENDS_${PN}-ptest += "make" > +RDEPENDS_${PN}-ptest += "make bash" Does it really depend on bash or just a POSIX compliant /bin/sh ? If it requires bash, how bad are the scripts and can they be made POSIX compliant with the help of: https://www.shellcheck.net/ Ans. This script is based on array concept and Arrays are not part of the POSIX sh specification. so i think we should go with bash script. ========== > diff --git a/meta/recipes-extended/bzip2/bzip2/Makefile.am b/meta/recipes-extended/bzip2/bzip2/Makefile.am > index dcf6458..f917b23 100644 > --- a/meta/recipes-extended/bzip2/bzip2/Makefile.am > +++ b/meta/recipes-extended/bzip2/bzip2/Makefile.am > @@ -46,6 +46,7 @@ runtest: > else echo "FAIL: sample2 decompress"; fi > @if cmp sample3.tst sample3.ref; then echo "PASS: sample3 decompress";\ > else echo "FAIL: sample3 decompress"; fi > + ./bzip2-tests/run-tests.sh > > install-ptest: > sed -n '/^runtest:/,/^install-ptest:/{/^install-ptest:/!p}' \ > @@ -56,6 +57,7 @@ install-ptest: > cp $(srcdir)/sample1.bz2 $(DESTDIR)/ > cp $(srcdir)/sample2.bz2 $(DESTDIR)/ > cp $(srcdir)/sample3.bz2 $(DESTDIR)/ > + cp -rf $(srcdir)/../git $(DESTDIR)/bzip2-tests > ln -s $(bindir)/bzip2 $(DESTDIR)/bzip2 > > install-exec-hook: > diff --git a/meta/recipes-extended/bzip2/bzip2_1.0.8.bb b/meta/recipes-extended/bzip2/bzip2_1.0.8.bb > index 8e9b779..e8ec5c6 100644 > --- a/meta/recipes-extended/bzip2/bzip2_1.0.8.bb > +++ b/meta/recipes-extended/bzip2/bzip2_1.0.8.bb > @@ -5,16 +5,25 @@ LZ77/LZ78-based compressors, and approaches the performance of the PPM family of > HOMEPAGE = "https://sourceware.org/bzip2/" > SECTION = "console/utils" > LICENSE = "bzip2" > -LIC_FILES_CHKSUM = "file://LICENSE;beginline=4;endline=37;md5=600af43c50f1fcb82e32f19b32df4664" > - > +LIC_FILES_CHKSUM = "file://LICENSE;beginline=4;endline=37;md5=600af43c50f1fcb82e32f19b32df4664 \ > + file://../git/go/LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707 \ > + file://../git/dotnetzip/License.txt;md5=9cb56871eed4e748c3bc7e8ff352a54f \ > + file://../git/dotnetzip/License.zlib.txt;md5=cc421ccd22eeb2e5db6b79e6de0a029f \ > + file://../git/commons-compress/LICENSE.txt;md5=86d3f3a95c324c9479bd8986968f4327 \ What's all this additional license info about? Please explain in when replying as well as in the long log. Ans: I don't have much knowledge about the licensing part so I populated all the licenses which are present in the bzip2-tests source code. can you please provide any suggestions on what basis we should take the decision of the license population. ========== Let me know if I missed anything here. *Thanks & Regards,* Rahul Kumar Software Engineer,Linux Solutions Engineering Group,Montavista Software LLC Email Id: rahulk@mvista.com <https://plus.google.com/+CodeTwoSoftware> On Fri, Apr 3, 2020 at 4:02 AM Randy MacLeod <randy.macleod@windriver.com> wrote: > On 2020-04-02 7:10 a.m., Rahul Kumar wrote: > > [YOCTO #13444] > > Thanks for contributing this work Rahul. > > It would be good if the long log explained the changes made > in a sentence or two. I've made some comments and asked > some questions inline below. I may have gone overboard but > I hope you get the idea that we'd like to see not just the > changes but the reason for the changes. > > Also, can you present the results of running: > # ptest-runner bzip2 > on qemux86-64 with kvm enabled in the long log? > If there are tests that fail or are skipped > comment on that even it it's to say that you don't know what is wrong. > > > > > Signed-off-by: Rahul Kumar <rahulk@mvista.com> > > --- > > .../bzip2/0001-bzip2-modify-run-tests-script.patch | 220 > +++++++++++++++++++++ > > meta/recipes-extended/bzip2/bzip2/Makefile.am | 2 + > > meta/recipes-extended/bzip2/bzip2_1.0.8.bb | 15 +- > > 3 files changed, 234 insertions(+), 3 deletions(-) > > create mode 100644 > meta/recipes-extended/bzip2/bzip2/0001-bzip2-modify-run-tests-script.patch > > > > diff --git > a/meta/recipes-extended/bzip2/bzip2/0001-bzip2-modify-run-tests-script.patch > b/meta/recipes-extended/bzip2/bzip2/0001-bzip2-modify-run-tests-script.patch > > new file mode 100644 > > index 0000000..8ae3c4e > > --- /dev/null > > +++ > b/meta/recipes-extended/bzip2/bzip2/0001-bzip2-modify-run-tests-script.patch > > @@ -0,0 +1,220 @@ > > +From 42e6258485030085285d4b30854bfb94bcf43880 Mon Sep 17 00:00:00 2001 > > +From: Rahul Kumar <rahulk@mvista.com> > > +Date: Mon, 30 Mar 2020 12:17:00 +0530 > > +Subject: [PATCH] bzip2: modify run-tests script > > + > > +Upstream-Status: Inappropriate [ modify run-tests script for ptest > infrastructure ] > > It seems that some of the changes are to make the tests less verbose and > to 'tighten-up' the language and formatting used. Upstream might accept > them, have you checked? If you change the status to Pending I think it > would be better for now because that would force someone check on the > progress at some point. > > > + > > +modify run-tests script to write PASS/FAIL as expected by the ptest > infrastructure > > + > > +Signed-off-by: Rahul Kumar <rahulk@mvista.com> > > +--- > > + run-tests.sh | 83 > +++++++++++++++++++++++++++++++----------------------------- > > + 1 file changed, 43 insertions(+), 40 deletions(-) > > + > > +diff --git a/run-tests.sh b/run-tests.sh > > +index 1ba8c27..1eff62a 100755 > > +--- a/run-tests.sh > > ++++ b/run-tests.sh > > +@@ -10,7 +10,7 @@ > > + VALGRIND="valgrind" > > + VALGRIND_ARGS="-q --error-exitcode=9" > > + BZIP2="bzip2" > > +-TESTS_DIR="." > > ++TESTS_DIR="./bzip2-tests" > > Can you explain why you did this? Maybe upstream would accept it. > > > + IGNORE_MD5=0 > > + > > + for i in "$@" > > +@@ -40,21 +40,21 @@ case $i in > > + esac > > + done > > + > > +-if ! type "valgrind" > /dev/null; then > > ++if ! type "valgrind" > /dev/null 2>&1; then > > + VALGRIND="" > > + VALGRIND_ARGS="" > > + fi > > + > > + echo "Testing ${BZIP2} in directory ${TESTS_DIR}" > > + if [ "$VALGRIND" != "" ]; then > > +- echo " using valgrind" > > ++ echo "Using valgrind: Yes" > > + else > > +- echo " NOT using valgrind" > > ++ echo "Using valgrind: No" > > + fi > > + if [[ ${IGNORE_MD5} -eq 0 ]]; then > > +- echo " checking md5 sums" > > ++ echo "Checking md5 sums: Yes" > > + else > > +- echo " NOT checking md5 sums" > > ++ echo "Checking md5 sums: No" > > + fi > > + > > + # Remove any left over tesfilecopies from previous runs first. > > +@@ -76,16 +76,16 @@ while IFS= read -r -d '' bzfile; do > > + echo "Processing ${bzfile}" > > + > > + # Decompress it. > > +- echo " Decompress..." > > ++ # echo " Decompress..." > > Without an explanation in the long log, I can't tell if this > comment was removed intentionally or perhaps when you were debugging. > I expect you have a good reason to remove it but an explaination would > be helpful. > > > + rm -f "${file}" > > +- ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -k -d -q ${bzfile} \ > > +- || { echo "!!! bad decompress result $?"; > > ++ ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -k -d -q ${bzfile} && { echo > "PASS: ${bzfile} Decompress"; } \ > > ++ || { echo "FAIL: ${bzfile} Decompress"; > > + badtests=("${badtests[@]}" $"${bzfile} bad decompress result") > > + nogood=$[${nogood}+1]; continue; } > > + > > + if [[ ${IGNORE_MD5} -ne 1 ]]; then > > +- md5sum --check --status ${md5file} < ${file} \ > > +- || { echo "!!! md5sum doesn't match decompressed file"; > > ++ md5sum -c ${md5file} < ${file} && { echo "PASS: ${bzfile} md5sum > Matched"; } \ > > ++ || { echo "FAIL: ${bzfile} md5sum Matched"; > > + badtests=("${badtests[@]}" $"${file} md5sum doesn't match") > > + nogood=$[${nogood}+1]; continue; } > > + fi > > +@@ -93,20 +93,20 @@ while IFS= read -r -d '' bzfile; do > > + # Compress and decompress a copy > > + mv "${file}" "${copy}" > > + rm -f "${bzcopy}" > > +- echo " Recompress..." > > +- ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -z -q -s ${copy} \ > > +- || { echo "!!! bad compress result $?"; > > ++ # echo " Recompress..." > > ++ ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -z -q -s ${copy} && { echo > "PASS: ${bzfile} Recompress "; } \ > > ++ || { echo "FAIL: ${bzfile} Recompress"; > > + badtests=("${badtests[@]}" $"${copy} bad result") > > + nogood=$[${nogood}+1]; continue; } > > +- echo " Redecompress..." > > +- ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -d -q -s ${bzcopy} \ > > +- || { echo "!!! bad (re)decompress result $?"; > > ++ # echo " Redecompress..." > > ++ ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -d -q -s ${bzcopy} && { echo > "PASS: ${bzfile} Redecompress"; } \ > > ++ || { echo "FAIL: ${bzfile} Redecompress"; > > + badtests=("${badtests[@]}" $"${bzcopy} bad result") > > + nogood=$[${nogood}+1]; continue; } > > + > > + if [[ ${IGNORE_MD5} -ne 1 ]]; then > > +- md5sum --check --status ${md5file} < ${copy} \ > > +- || { echo "!!! md5sum doesn't match (re)decompressed file"; > > ++ md5sum -c ${md5file} < ${copy} && { echo "PASS: ${bzfile} md5sum > Matched"; } \ > > ++ || { echo "FAIL: ${bzfile} md5sum Matched"; > > + badtests=("${badtests[@]}" $"${copy} md5sum doesn't match") > > + nogood=$[${nogood}+1]; continue; } > > + fi > > +@@ -114,16 +114,16 @@ while IFS= read -r -d '' bzfile; do > > + rm "${copy}" > > + > > + # Now do it all again in "small" mode. > > +- echo " Decompress (small)..." > > ++ # echo " Decompress (small)..." > > + rm -f "${file}" > > +- ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -k -d -q -s ${bzfile} \ > > +- || { echo "!!! bad decompress result $?"; > > ++ ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -k -d -q -s ${bzfile} &&{ echo > "PASS: ${bzfile} Decompress (small)"; } \ > > ++ || { echo "FAIL: ${bzfile} Decompress (small)"; > > + badtests=("${badtests[@]}" $"${bzfile} bad decompress result") > > + nogood=$[${nogood}+1]; continue; } > > + > > + if [[ ${IGNORE_MD5} -ne 1 ]]; then > > +- md5sum --check --status ${md5file} < ${file} \ > > +- || { echo "!!! md5sum doesn't match decompressed file"; > > ++ md5sum -c ${md5file} < ${file} > /dev/null 2>&1 && { echo "PASS: > ${bzfile} Md5sum Matched"; } \ > > ++ || { echo "FAIL: ${bzfile} Md5sum Matched"; > > + badtests=("${badtests[@]}" $"${file} md5sum doesn't match") > > + nogood=$[${nogood}+1]; continue; } > > + fi > > +@@ -131,20 +131,20 @@ while IFS= read -r -d '' bzfile; do > > + # Compress and decompress a copy > > + mv "${file}" "${copy}" > > + rm -f "${bzcopy}" > > +- echo " Recompress (small)..." > > +- ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -z -q -s ${copy} \ > > +- || { echo "!!! bad compress result $?"; > > ++ # echo " Recompress (small)..." > > ++ ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -z -q -s ${copy} && { echo > "PASS: ${bzfile} Recompress (small)"; } \ > > ++ || { echo "FAIL: ${bzfile} Recompress (small)"; > > + badtests=("${badtests[@]}" $"${copy} bad result") > > + nogood=$[${nogood}+1]; continue; } > > +- echo " Redecompress (small)..." > > +- ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -d -q -s ${bzcopy} \ > > +- || { echo "!!! bad (re)decompress result $?"; > > ++ # echo " Redecompress (small)..." > > ++ ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -d -q -s ${bzcopy} && { echo > "PASS: ${bzfile} Redecompress (small)"; } \ > > ++ || { echo "FAIL: ${bzfile} Redecompress (small)"; > > + badtests=("${badtests[@]}" $"${bzcopy} bad result") > > + nogood=$[${nogood}+1]; continue; } > > + > > + if [[ ${IGNORE_MD5} -ne 1 ]]; then > > +- md5sum --check --status ${md5file} < ${copy} \ > > +- || { echo "!!! md5sum doesn't match (re)decompressed file"; > > ++ md5sum -c ${md5file} < ${copy} && { echo "PASS: ${bzfile} md5sum > Matched"; } \ > > ++ || { echo "FAIL: ${bzfile} md5sum : Miss Matched"; > > + badtests=("${badtests[@]}" $"${copy} md5sum doesn't match") > > + nogood=$[${nogood}+1]; continue; } > > + fi > > +@@ -169,14 +169,14 @@ nobad=0 > > + badbad=0 > > + while IFS= read -r -d '' badfile; do > > + > > +- echo "Processing ${badfile}" > > ++ # echo "Processing ${badfile}" > > + > > +- echo " Trying to decompress..." > > ++ # echo " Trying to decompress..." > > + ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -k -d -q ${badfile} > > + ret=$? > > + > > + if [[ ${ret} -eq 0 ]]; then > > +- echo "!!! badness not detected" > > ++ echo "FAIL: badness not detected" > > + nobad=$[${nobad}+1] > > + badtests=("${badtests[@]}" $"${badfile} badness not detected") > > + continue > > +@@ -185,18 +185,20 @@ while IFS= read -r -d '' badfile; do > > + # Assumes "normal" badness is detected by exit code 1 or 2. > > + # A crash or valgrind issue will be reported with something else. > > + if [[ ${ret} != 1 ]] && [[ ${ret} != 2 ]]; then > > +- echo "!!! baddness caused baddness in ${BZIP2}" > > ++ echo "FAIL: baddness caused baddness in ${BZIP2}" > It's 'badness': > https://www.merriam-webster.com/thesaurus/badness > > + badbad=$[${badbad}+1] > > + badtests=("${badtests[@]}" $"${badfile} badness caused baddness") > > + continue > > ++ else > > ++ echo "PASS: Correctly found data integrity errors in ${badfile} > during decompress." > > + fi > > + > > +- echo " Trying to decompress (small)..." > > ++ # echo " Trying to decompress (small)..." > > + ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -k -d -q -s ${badfile} > > + ret=$? > > + > > + if [[ ${ret} -eq 0 ]]; then > > +- echo "!!! badness not detected" > > ++ echo "FAIL: badness not detected " > > + nobad=$[${nobad}+1] > > + badtests=("${badtests[@]}" $"${badfile} badness not detected") > > + continue > > +@@ -205,10 +207,12 @@ while IFS= read -r -d '' badfile; do > > + # Assumes "normal" badness is detected by exit code 1 or 2. > > + # A crash or valgrind issue will be reported with something else. > > + if [[ ${ret} != 1 ]] && [[ ${ret} != 2 ]]; then > > +- echo "!!! baddness caused baddness in ${BZIP2}" > > ++ echo "FAIL: baddness caused baddness in ${BZIP2}" > > + badbad=$[${badbad}+1] > > + badtests=("${badtests[@]}" $"${badfile} badness caused baddness") > > + continue > > ++ else > > ++ echo "PASS: Correctly found data integrity errors in ${badfile} > during decompress (small)" > > + fi > > + > > + done < <(find ${TESTS_DIR} -type f -name \*\.bz2.bad -print0) > > +@@ -234,5 +238,4 @@ if [[ ${results} -eq 0 ]]; then > > + else > > + echo "Bad results, look for !!! in the logs above" > > + printf ' - %s\n' "${badtests[@]}" > > +- exit 1 > > + fi > > +-- > > +2.7.4 > > diff --git a/meta/recipes-extended/bzip2/bzip2/Makefile.am > b/meta/recipes-extended/bzip2/bzip2/Makefile.am > > index dcf6458..f917b23 100644 > > --- a/meta/recipes-extended/bzip2/bzip2/Makefile.am > > +++ b/meta/recipes-extended/bzip2/bzip2/Makefile.am > > @@ -46,6 +46,7 @@ runtest: > > else echo "FAIL: sample2 decompress"; fi > > @if cmp sample3.tst sample3.ref; then echo "PASS: sample3 > decompress";\ > > else echo "FAIL: sample3 decompress"; fi > > + ./bzip2-tests/run-tests.sh > > > > install-ptest: > > sed -n '/^runtest:/,/^install-ptest:/{/^install-ptest:/!p}' \ > > @@ -56,6 +57,7 @@ install-ptest: > > cp $(srcdir)/sample1.bz2 $(DESTDIR)/ > > cp $(srcdir)/sample2.bz2 $(DESTDIR)/ > > cp $(srcdir)/sample3.bz2 $(DESTDIR)/ > > + cp -rf $(srcdir)/../git $(DESTDIR)/bzip2-tests > > ln -s $(bindir)/bzip2 $(DESTDIR)/bzip2 > > > > install-exec-hook: > > diff --git a/meta/recipes-extended/bzip2/bzip2_1.0.8.bb > b/meta/recipes-extended/bzip2/bzip2_1.0.8.bb > > index 8e9b779..e8ec5c6 100644 > > --- a/meta/recipes-extended/bzip2/bzip2_1.0.8.bb > > +++ b/meta/recipes-extended/bzip2/bzip2_1.0.8.bb > > @@ -5,16 +5,25 @@ LZ77/LZ78-based compressors, and approaches the > performance of the PPM family of > > HOMEPAGE = "https://sourceware.org/bzip2/" > > SECTION = "console/utils" > > LICENSE = "bzip2" > > -LIC_FILES_CHKSUM = > "file://LICENSE;beginline=4;endline=37;md5=600af43c50f1fcb82e32f19b32df4664" > > - > > +LIC_FILES_CHKSUM = > "file://LICENSE;beginline=4;endline=37;md5=600af43c50f1fcb82e32f19b32df4664 > \ > > + > file://../git/go/LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707 \ > > + > file://../git/dotnetzip/License.txt;md5=9cb56871eed4e748c3bc7e8ff352a54f \ > > + > file://../git/dotnetzip/License.zlib.txt;md5=cc421ccd22eeb2e5db6b79e6de0a029f > \ > > + > file://../git/commons-compress/LICENSE.txt;md5=86d3f3a95c324c9479bd8986968f4327 > \ > > What's all this additional license info about? > Please explain in when replying as well as in the long log. > > > + " > > SRC_URI = "https://sourceware.org/pub/${BPN}/${BPN}-${PV}.tar.gz \ > > + git://sourceware.org/git/bzip2-tests.git;name=bzip2-tests \ > > Mention how big this repo is in the long log. > > > file://configure.ac;subdir=${BP} \ > > file://Makefile.am;subdir=${BP} \ > > file://run-ptest \ > > + > file://0001-bzip2-modify-run-tests-script.patch;patchdir=${WORKDIR}/git \ > > " > > + > > SRC_URI[md5sum] = "67e051268d0c475ea773822f7500d0e5" > > SRC_URI[sha256sum] = > "ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269" > > > > +SRCREV_bzip2-tests = "8b0198efda1603cf81fa2c7a9bb673dd22ae1661" > > + > > UPSTREAM_CHECK_URI = "https://www.sourceware.org/pub/bzip2/" > > > > PACKAGES =+ "libbz2" > > @@ -39,7 +48,7 @@ do_install_ptest () { > > > > FILES_libbz2 = "${libdir}/lib*${SOLIBS}" > > > > -RDEPENDS_${PN}-ptest += "make" > > +RDEPENDS_${PN}-ptest += "make bash" > > Does it really depend on bash or just a POSIX compliant /bin/sh ? > If it requires bash, how bad are the scripts and can they be made > POSIX compliant with the help of: > https://www.shellcheck.net/ > > ../Randy > > > > > PROVIDES_append_class-native = " bzip2-replacement-native" > > BBCLASSEXTEND = "native nativesdk" > > > > > > > > > > > -- > # Randy MacLeod > # Wind River Linux > [-- Attachment #1.2: Type: text/html, Size: 33376 bytes --] [-- Attachment #2: ptest-logs.txt --] [-- Type: text/plain, Size: 25824 bytes --] root@qemux86-64:~# ptest-runner bzip2 START: ptest-runner 2020-04-13T17:08 BEGIN: /usr/lib/bzip2/ptest ./bzip2 -1 < sample1.ref > sample1.rb2 ./bzip2 -2 < sample2.ref > sample2.rb2 ./bzip2 -3 < sample3.ref > sample3.rb2 ./bzip2 -d < sample1.bz2 > sample1.tst ./bzip2 -d < sample2.bz2 > sample2.tst ./bzip2 -ds < sample3.bz2 > sample3.tst PASS: sample1 compress PASS: sample2 compress PASS: sample3 compress PASS: sample1 decompress PASS: sample2 decompress PASS: sample3 decompress ./bzip2-tests/run-tests.sh Testing bzip2 in directory ./bzip2-tests Using valgrind: No Checking md5 sums: Yes Testing decompression and recompression... Processing ./bzip2-tests/commons-compress/bla.tar.bz2 PASS: ./bzip2-tests/commons-compress/bla.tar.bz2 Decompress -: OK PASS: ./bzip2-tests/commons-compress/bla.tar.bz2 md5sum Matched PASS: ./bzip2-tests/commons-compress/bla.tar.bz2 Recompress PASS: ./bzip2-tests/commons-compress/bla.tar.bz2 Redecompress -: OK PASS: ./bzip2-tests/commons-compress/bla.tar.bz2 md5sum Matched PASS: ./bzip2-tests/commons-compress/bla.tar.bz2 Decompress (small) PASS: ./bzip2-tests/commons-compress/bla.tar.bz2 Md5sum Matched PASS: ./bzip2-tests/commons-compress/bla.tar.bz2 Recompress (small) PASS: ./bzip2-tests/commons-compress/bla.tar.bz2 Redecompress (small) -: OK PASS: ./bzip2-tests/commons-compress/bla.tar.bz2 md5sum Matched Processing ./bzip2-tests/commons-compress/multiple.bz2 PASS: ./bzip2-tests/commons-compress/multiple.bz2 Decompress -: OK PASS: ./bzip2-tests/commons-compress/multiple.bz2 md5sum Matched PASS: ./bzip2-tests/commons-compress/multiple.bz2 Recompress PASS: ./bzip2-tests/commons-compress/multiple.bz2 Redecompress -: OK PASS: ./bzip2-tests/commons-compress/multiple.bz2 md5sum Matched PASS: ./bzip2-tests/commons-compress/multiple.bz2 Decompress (small) PASS: ./bzip2-tests/commons-compress/multiple.bz2 Md5sum Matched PASS: ./bzip2-tests/commons-compress/multiple.bz2 Recompress (small) PASS: ./bzip2-tests/commons-compress/multiple.bz2 Redecompress (small) -: OK PASS: ./bzip2-tests/commons-compress/multiple.bz2 md5sum Matched Processing ./bzip2-tests/commons-compress/bla.xml.bz2 PASS: ./bzip2-tests/commons-compress/bla.xml.bz2 Decompress -: OK PASS: ./bzip2-tests/commons-compress/bla.xml.bz2 md5sum Matched PASS: ./bzip2-tests/commons-compress/bla.xml.bz2 Recompress PASS: ./bzip2-tests/commons-compress/bla.xml.bz2 Redecompress -: OK PASS: ./bzip2-tests/commons-compress/bla.xml.bz2 md5sum Matched PASS: ./bzip2-tests/commons-compress/bla.xml.bz2 Decompress (small) PASS: ./bzip2-tests/commons-compress/bla.xml.bz2 Md5sum Matched PASS: ./bzip2-tests/commons-compress/bla.xml.bz2 Recompress (small) PASS: ./bzip2-tests/commons-compress/bla.xml.bz2 Redecompress (small) -: OK PASS: ./bzip2-tests/commons-compress/bla.xml.bz2 md5sum Matched Processing ./bzip2-tests/commons-compress/zip64support.tar.bz2 bzip2: I/O or other error, bailing out. Possible reason follows. bzip2: No space left on device FAIL: ./bzip2-tests/commons-compress/zip64support.tar.bz2 Decompress Processing ./bzip2-tests/commons-compress/COMPRESS-131.bz2 PASS: ./bzip2-tests/commons-compress/COMPRESS-131.bz2 Decompress -: OK PASS: ./bzip2-tests/commons-compress/COMPRESS-131.bz2 md5sum Matched PASS: ./bzip2-tests/commons-compress/COMPRESS-131.bz2 Recompress PASS: ./bzip2-tests/commons-compress/COMPRESS-131.bz2 Redecompress -: OK PASS: ./bzip2-tests/commons-compress/COMPRESS-131.bz2 md5sum Matched PASS: ./bzip2-tests/commons-compress/COMPRESS-131.bz2 Decompress (small) PASS: ./bzip2-tests/commons-compress/COMPRESS-131.bz2 Md5sum Matched PASS: ./bzip2-tests/commons-compress/COMPRESS-131.bz2 Recompress (small) PASS: ./bzip2-tests/commons-compress/COMPRESS-131.bz2 Redecompress (small) -: OK PASS: ./bzip2-tests/commons-compress/COMPRESS-131.bz2 md5sum Matched Processing ./bzip2-tests/commons-compress/bla.txt.bz2 PASS: ./bzip2-tests/commons-compress/bla.txt.bz2 Decompress -: OK PASS: ./bzip2-tests/commons-compress/bla.txt.bz2 md5sum Matched PASS: ./bzip2-tests/commons-compress/bla.txt.bz2 Recompress PASS: ./bzip2-tests/commons-compress/bla.txt.bz2 Redecompress -: OK PASS: ./bzip2-tests/commons-compress/bla.txt.bz2 md5sum Matched PASS: ./bzip2-tests/commons-compress/bla.txt.bz2 Decompress (small) PASS: ./bzip2-tests/commons-compress/bla.txt.bz2 Md5sum Matched PASS: ./bzip2-tests/commons-compress/bla.txt.bz2 Recompress (small) PASS: ./bzip2-tests/commons-compress/bla.txt.bz2 Redecompress (small) -: OK PASS: ./bzip2-tests/commons-compress/bla.txt.bz2 md5sum Matched Processing ./bzip2-tests/go/regexp/re2-exhaustive.txt.bz2 bzip2: I/O or other error, bailing out. Possible reason follows. bzip2: No space left on device FAIL: ./bzip2-tests/go/regexp/re2-exhaustive.txt.bz2 Decompress Processing ./bzip2-tests/go/crypto/pss-vect.txt.bz2 PASS: ./bzip2-tests/go/crypto/pss-vect.txt.bz2 Decompress -: OK PASS: ./bzip2-tests/go/crypto/pss-vect.txt.bz2 md5sum Matched PASS: ./bzip2-tests/go/crypto/pss-vect.txt.bz2 Recompress PASS: ./bzip2-tests/go/crypto/pss-vect.txt.bz2 Redecompress -: OK PASS: ./bzip2-tests/go/crypto/pss-vect.txt.bz2 md5sum Matched PASS: ./bzip2-tests/go/crypto/pss-vect.txt.bz2 Decompress (small) PASS: ./bzip2-tests/go/crypto/pss-vect.txt.bz2 Md5sum Matched PASS: ./bzip2-tests/go/crypto/pss-vect.txt.bz2 Recompress (small) PASS: ./bzip2-tests/go/crypto/pss-vect.txt.bz2 Redecompress (small) -: OK PASS: ./bzip2-tests/go/crypto/pss-vect.txt.bz2 md5sum Matched Processing ./bzip2-tests/go/crypto/SigVer.rsp.bz2 PASS: ./bzip2-tests/go/crypto/SigVer.rsp.bz2 Decompress -: OK PASS: ./bzip2-tests/go/crypto/SigVer.rsp.bz2 md5sum Matched PASS: ./bzip2-tests/go/crypto/SigVer.rsp.bz2 Recompress PASS: ./bzip2-tests/go/crypto/SigVer.rsp.bz2 Redecompress -: OK PASS: ./bzip2-tests/go/crypto/SigVer.rsp.bz2 md5sum Matched PASS: ./bzip2-tests/go/crypto/SigVer.rsp.bz2 Decompress (small) PASS: ./bzip2-tests/go/crypto/SigVer.rsp.bz2 Md5sum Matched PASS: ./bzip2-tests/go/crypto/SigVer.rsp.bz2 Recompress (small) PASS: ./bzip2-tests/go/crypto/SigVer.rsp.bz2 Redecompress (small) -: OK PASS: ./bzip2-tests/go/crypto/SigVer.rsp.bz2 md5sum Matched Processing ./bzip2-tests/go/compress/pass-sawtooth.bz2 PASS: ./bzip2-tests/go/compress/pass-sawtooth.bz2 Decompress -: OK PASS: ./bzip2-tests/go/compress/pass-sawtooth.bz2 md5sum Matched PASS: ./bzip2-tests/go/compress/pass-sawtooth.bz2 Recompress PASS: ./bzip2-tests/go/compress/pass-sawtooth.bz2 Redecompress -: OK PASS: ./bzip2-tests/go/compress/pass-sawtooth.bz2 md5sum Matched PASS: ./bzip2-tests/go/compress/pass-sawtooth.bz2 Decompress (small) PASS: ./bzip2-tests/go/compress/pass-sawtooth.bz2 Md5sum Matched PASS: ./bzip2-tests/go/compress/pass-sawtooth.bz2 Recompress (small) PASS: ./bzip2-tests/go/compress/pass-sawtooth.bz2 Redecompress (small) -: OK PASS: ./bzip2-tests/go/compress/pass-sawtooth.bz2 md5sum Matched Processing ./bzip2-tests/go/compress/pass-random1.bz2 PASS: ./bzip2-tests/go/compress/pass-random1.bz2 Decompress -: OK PASS: ./bzip2-tests/go/compress/pass-random1.bz2 md5sum Matched PASS: ./bzip2-tests/go/compress/pass-random1.bz2 Recompress PASS: ./bzip2-tests/go/compress/pass-random1.bz2 Redecompress -: OK PASS: ./bzip2-tests/go/compress/pass-random1.bz2 md5sum Matched PASS: ./bzip2-tests/go/compress/pass-random1.bz2 Decompress (small) PASS: ./bzip2-tests/go/compress/pass-random1.bz2 Md5sum Matched PASS: ./bzip2-tests/go/compress/pass-random1.bz2 Recompress (small) PASS: ./bzip2-tests/go/compress/pass-random1.bz2 Redecompress (small) -: OK PASS: ./bzip2-tests/go/compress/pass-random1.bz2 md5sum Matched Processing ./bzip2-tests/go/compress/random.data.bz2 PASS: ./bzip2-tests/go/compress/random.data.bz2 Decompress -: OK PASS: ./bzip2-tests/go/compress/random.data.bz2 md5sum Matched PASS: ./bzip2-tests/go/compress/random.data.bz2 Recompress PASS: ./bzip2-tests/go/compress/random.data.bz2 Redecompress -: OK PASS: ./bzip2-tests/go/compress/random.data.bz2 md5sum Matched PASS: ./bzip2-tests/go/compress/random.data.bz2 Decompress (small) PASS: ./bzip2-tests/go/compress/random.data.bz2 Md5sum Matched PASS: ./bzip2-tests/go/compress/random.data.bz2 Recompress (small) PASS: ./bzip2-tests/go/compress/random.data.bz2 Redecompress (small) -: OK PASS: ./bzip2-tests/go/compress/random.data.bz2 md5sum Matched Processing ./bzip2-tests/go/compress/pass-random2.bz2 PASS: ./bzip2-tests/go/compress/pass-random2.bz2 Decompress -: OK PASS: ./bzip2-tests/go/compress/pass-random2.bz2 md5sum Matched PASS: ./bzip2-tests/go/compress/pass-random2.bz2 Recompress PASS: ./bzip2-tests/go/compress/pass-random2.bz2 Redecompress -: OK PASS: ./bzip2-tests/go/compress/pass-random2.bz2 md5sum Matched PASS: ./bzip2-tests/go/compress/pass-random2.bz2 Decompress (small) PASS: ./bzip2-tests/go/compress/pass-random2.bz2 Md5sum Matched PASS: ./bzip2-tests/go/compress/pass-random2.bz2 Recompress (small) PASS: ./bzip2-tests/go/compress/pass-random2.bz2 Redecompress (small) -: OK PASS: ./bzip2-tests/go/compress/pass-random2.bz2 md5sum Matched Processing ./bzip2-tests/go/compress/e.txt.bz2 PASS: ./bzip2-tests/go/compress/e.txt.bz2 Decompress -: OK PASS: ./bzip2-tests/go/compress/e.txt.bz2 md5sum Matched PASS: ./bzip2-tests/go/compress/e.txt.bz2 Recompress PASS: ./bzip2-tests/go/compress/e.txt.bz2 Redecompress -: OK PASS: ./bzip2-tests/go/compress/e.txt.bz2 md5sum Matched PASS: ./bzip2-tests/go/compress/e.txt.bz2 Decompress (small) PASS: ./bzip2-tests/go/compress/e.txt.bz2 Md5sum Matched PASS: ./bzip2-tests/go/compress/e.txt.bz2 Recompress (small) PASS: ./bzip2-tests/go/compress/e.txt.bz2 Redecompress (small) -: OK PASS: ./bzip2-tests/go/compress/e.txt.bz2 md5sum Matched Processing ./bzip2-tests/go/compress/Isaac.Newton-Opticks.txt.bz2 PASS: ./bzip2-tests/go/compress/Isaac.Newton-Opticks.txt.bz2 Decompress -: OK PASS: ./bzip2-tests/go/compress/Isaac.Newton-Opticks.txt.bz2 md5sum Matched PASS: ./bzip2-tests/go/compress/Isaac.Newton-Opticks.txt.bz2 Recompress PASS: ./bzip2-tests/go/compress/Isaac.Newton-Opticks.txt.bz2 Redecompress -: OK PASS: ./bzip2-tests/go/compress/Isaac.Newton-Opticks.txt.bz2 md5sum Matched PASS: ./bzip2-tests/go/compress/Isaac.Newton-Opticks.txt.bz2 Decompress (small) PASS: ./bzip2-tests/go/compress/Isaac.Newton-Opticks.txt.bz2 Md5sum Matched PASS: ./bzip2-tests/go/compress/Isaac.Newton-Opticks.txt.bz2 Recompress (small) PASS: ./bzip2-tests/go/compress/Isaac.Newton-Opticks.txt.bz2 Redecompress (small) -: OK PASS: ./bzip2-tests/go/compress/Isaac.Newton-Opticks.txt.bz2 md5sum Matched Processing ./bzip2-tests/lbzip2/rand.bz2 PASS: ./bzip2-tests/lbzip2/rand.bz2 Decompress -: OK PASS: ./bzip2-tests/lbzip2/rand.bz2 md5sum Matched PASS: ./bzip2-tests/lbzip2/rand.bz2 Recompress PASS: ./bzip2-tests/lbzip2/rand.bz2 Redecompress -: OK PASS: ./bzip2-tests/lbzip2/rand.bz2 md5sum Matched PASS: ./bzip2-tests/lbzip2/rand.bz2 Decompress (small) PASS: ./bzip2-tests/lbzip2/rand.bz2 Md5sum Matched PASS: ./bzip2-tests/lbzip2/rand.bz2 Recompress (small) PASS: ./bzip2-tests/lbzip2/rand.bz2 Redecompress (small) -: OK PASS: ./bzip2-tests/lbzip2/rand.bz2 md5sum Matched Processing ./bzip2-tests/lbzip2/32767.bz2 PASS: ./bzip2-tests/lbzip2/32767.bz2 Decompress -: OK PASS: ./bzip2-tests/lbzip2/32767.bz2 md5sum Matched PASS: ./bzip2-tests/lbzip2/32767.bz2 Recompress PASS: ./bzip2-tests/lbzip2/32767.bz2 Redecompress -: OK PASS: ./bzip2-tests/lbzip2/32767.bz2 md5sum Matched PASS: ./bzip2-tests/lbzip2/32767.bz2 Decompress (small) PASS: ./bzip2-tests/lbzip2/32767.bz2 Md5sum Matched PASS: ./bzip2-tests/lbzip2/32767.bz2 Recompress (small) PASS: ./bzip2-tests/lbzip2/32767.bz2 Redecompress (small) -: OK PASS: ./bzip2-tests/lbzip2/32767.bz2 md5sum Matched Processing ./bzip2-tests/lbzip2/idx899999.bz2 bzip2: I/O or other error, bailing out. Possible reason follows. bzip2: No space left on device FAIL: ./bzip2-tests/lbzip2/idx899999.bz2 Decompress Processing ./bzip2-tests/lbzip2/concat.bz2 PASS: ./bzip2-tests/lbzip2/concat.bz2 Decompress -: OK PASS: ./bzip2-tests/lbzip2/concat.bz2 md5sum Matched PASS: ./bzip2-tests/lbzip2/concat.bz2 Recompress PASS: ./bzip2-tests/lbzip2/concat.bz2 Redecompress -: OK PASS: ./bzip2-tests/lbzip2/concat.bz2 md5sum Matched PASS: ./bzip2-tests/lbzip2/concat.bz2 Decompress (small) PASS: ./bzip2-tests/lbzip2/concat.bz2 Md5sum Matched PASS: ./bzip2-tests/lbzip2/concat.bz2 Recompress (small) PASS: ./bzip2-tests/lbzip2/concat.bz2 Redecompress (small) -: OK PASS: ./bzip2-tests/lbzip2/concat.bz2 md5sum Matched Processing ./bzip2-tests/lbzip2/codelen20.bz2 PASS: ./bzip2-tests/lbzip2/codelen20.bz2 Decompress -: OK PASS: ./bzip2-tests/lbzip2/codelen20.bz2 md5sum Matched PASS: ./bzip2-tests/lbzip2/codelen20.bz2 Recompress PASS: ./bzip2-tests/lbzip2/codelen20.bz2 Redecompress -: OK PASS: ./bzip2-tests/lbzip2/codelen20.bz2 md5sum Matched PASS: ./bzip2-tests/lbzip2/codelen20.bz2 Decompress (small) PASS: ./bzip2-tests/lbzip2/codelen20.bz2 Md5sum Matched PASS: ./bzip2-tests/lbzip2/codelen20.bz2 Recompress (small) PASS: ./bzip2-tests/lbzip2/codelen20.bz2 Redecompress (small) -: OK PASS: ./bzip2-tests/lbzip2/codelen20.bz2 md5sum Matched Processing ./bzip2-tests/lbzip2/incomp-1.bz2 PASS: ./bzip2-tests/lbzip2/incomp-1.bz2 Decompress -: OK PASS: ./bzip2-tests/lbzip2/incomp-1.bz2 md5sum Matched PASS: ./bzip2-tests/lbzip2/incomp-1.bz2 Recompress PASS: ./bzip2-tests/lbzip2/incomp-1.bz2 Redecompress -: OK PASS: ./bzip2-tests/lbzip2/incomp-1.bz2 md5sum Matched PASS: ./bzip2-tests/lbzip2/incomp-1.bz2 Decompress (small) PASS: ./bzip2-tests/lbzip2/incomp-1.bz2 Md5sum Matched PASS: ./bzip2-tests/lbzip2/incomp-1.bz2 Recompress (small) PASS: ./bzip2-tests/lbzip2/incomp-1.bz2 Redecompress (small) -: OK PASS: ./bzip2-tests/lbzip2/incomp-1.bz2 md5sum Matched Processing ./bzip2-tests/lbzip2/incomp-2.bz2 PASS: ./bzip2-tests/lbzip2/incomp-2.bz2 Decompress -: OK PASS: ./bzip2-tests/lbzip2/incomp-2.bz2 md5sum Matched PASS: ./bzip2-tests/lbzip2/incomp-2.bz2 Recompress PASS: ./bzip2-tests/lbzip2/incomp-2.bz2 Redecompress -: OK PASS: ./bzip2-tests/lbzip2/incomp-2.bz2 md5sum Matched PASS: ./bzip2-tests/lbzip2/incomp-2.bz2 Decompress (small) PASS: ./bzip2-tests/lbzip2/incomp-2.bz2 Md5sum Matched PASS: ./bzip2-tests/lbzip2/incomp-2.bz2 Recompress (small) PASS: ./bzip2-tests/lbzip2/incomp-2.bz2 Redecompress (small) -: OK PASS: ./bzip2-tests/lbzip2/incomp-2.bz2 md5sum Matched Processing ./bzip2-tests/lbzip2/ch255.bz2 bzip2: I/O or other error, bailing out. Possible reason follows. bzip2: No space left on device FAIL: ./bzip2-tests/lbzip2/ch255.bz2 Decompress Processing ./bzip2-tests/lbzip2/repet.bz2 PASS: ./bzip2-tests/lbzip2/repet.bz2 Decompress -: OK PASS: ./bzip2-tests/lbzip2/repet.bz2 md5sum Matched PASS: ./bzip2-tests/lbzip2/repet.bz2 Recompress PASS: ./bzip2-tests/lbzip2/repet.bz2 Redecompress -: OK PASS: ./bzip2-tests/lbzip2/repet.bz2 md5sum Matched PASS: ./bzip2-tests/lbzip2/repet.bz2 Decompress (small) PASS: ./bzip2-tests/lbzip2/repet.bz2 Md5sum Matched PASS: ./bzip2-tests/lbzip2/repet.bz2 Recompress (small) PASS: ./bzip2-tests/lbzip2/repet.bz2 Redecompress (small) -: OK PASS: ./bzip2-tests/lbzip2/repet.bz2 md5sum Matched Processing ./bzip2-tests/lbzip2/fib.bz2 PASS: ./bzip2-tests/lbzip2/fib.bz2 Decompress -: OK PASS: ./bzip2-tests/lbzip2/fib.bz2 md5sum Matched PASS: ./bzip2-tests/lbzip2/fib.bz2 Recompress PASS: ./bzip2-tests/lbzip2/fib.bz2 Redecompress -: OK PASS: ./bzip2-tests/lbzip2/fib.bz2 md5sum Matched PASS: ./bzip2-tests/lbzip2/fib.bz2 Decompress (small) PASS: ./bzip2-tests/lbzip2/fib.bz2 Md5sum Matched PASS: ./bzip2-tests/lbzip2/fib.bz2 Recompress (small) PASS: ./bzip2-tests/lbzip2/fib.bz2 Redecompress (small) -: OK PASS: ./bzip2-tests/lbzip2/fib.bz2 md5sum Matched Processing ./bzip2-tests/lbzip2/trash.bz2 PASS: ./bzip2-tests/lbzip2/trash.bz2 Decompress -: OK PASS: ./bzip2-tests/lbzip2/trash.bz2 md5sum Matched PASS: ./bzip2-tests/lbzip2/trash.bz2 Recompress PASS: ./bzip2-tests/lbzip2/trash.bz2 Redecompress -: OK PASS: ./bzip2-tests/lbzip2/trash.bz2 md5sum Matched PASS: ./bzip2-tests/lbzip2/trash.bz2 Decompress (small) PASS: ./bzip2-tests/lbzip2/trash.bz2 Md5sum Matched PASS: ./bzip2-tests/lbzip2/trash.bz2 Recompress (small) PASS: ./bzip2-tests/lbzip2/trash.bz2 Redecompress (small) -: OK PASS: ./bzip2-tests/lbzip2/trash.bz2 md5sum Matched Processing ./bzip2-tests/lbzip2/gap.bz2 PASS: ./bzip2-tests/lbzip2/gap.bz2 Decompress -: OK PASS: ./bzip2-tests/lbzip2/gap.bz2 md5sum Matched PASS: ./bzip2-tests/lbzip2/gap.bz2 Recompress PASS: ./bzip2-tests/lbzip2/gap.bz2 Redecompress -: OK PASS: ./bzip2-tests/lbzip2/gap.bz2 md5sum Matched PASS: ./bzip2-tests/lbzip2/gap.bz2 Decompress (small) PASS: ./bzip2-tests/lbzip2/gap.bz2 Md5sum Matched PASS: ./bzip2-tests/lbzip2/gap.bz2 Recompress (small) PASS: ./bzip2-tests/lbzip2/gap.bz2 Redecompress (small) -: OK PASS: ./bzip2-tests/lbzip2/gap.bz2 md5sum Matched Processing ./bzip2-tests/lbzip2/empty.bz2 PASS: ./bzip2-tests/lbzip2/empty.bz2 Decompress -: OK PASS: ./bzip2-tests/lbzip2/empty.bz2 md5sum Matched PASS: ./bzip2-tests/lbzip2/empty.bz2 Recompress PASS: ./bzip2-tests/lbzip2/empty.bz2 Redecompress -: OK PASS: ./bzip2-tests/lbzip2/empty.bz2 md5sum Matched PASS: ./bzip2-tests/lbzip2/empty.bz2 Decompress (small) PASS: ./bzip2-tests/lbzip2/empty.bz2 Md5sum Matched PASS: ./bzip2-tests/lbzip2/empty.bz2 Recompress (small) PASS: ./bzip2-tests/lbzip2/empty.bz2 Redecompress (small) -: OK PASS: ./bzip2-tests/lbzip2/empty.bz2 md5sum Matched Processing ./bzip2-tests/pyflate/765B.bz2 PASS: ./bzip2-tests/pyflate/765B.bz2 Decompress -: OK PASS: ./bzip2-tests/pyflate/765B.bz2 md5sum Matched PASS: ./bzip2-tests/pyflate/765B.bz2 Recompress PASS: ./bzip2-tests/pyflate/765B.bz2 Redecompress -: OK PASS: ./bzip2-tests/pyflate/765B.bz2 md5sum Matched PASS: ./bzip2-tests/pyflate/765B.bz2 Decompress (small) PASS: ./bzip2-tests/pyflate/765B.bz2 Md5sum Matched PASS: ./bzip2-tests/pyflate/765B.bz2 Recompress (small) PASS: ./bzip2-tests/pyflate/765B.bz2 Redecompress (small) -: OK PASS: ./bzip2-tests/pyflate/765B.bz2 md5sum Matched Processing ./bzip2-tests/pyflate/45MB-fb.bz2 bzip2: I/O or other error, bailing out. Possible reason follows. bzip2: No space left on device FAIL: ./bzip2-tests/pyflate/45MB-fb.bz2 Decompress Processing ./bzip2-tests/pyflate/45MB-00.bz2 bzip2: I/O or other error, bailing out. Possible reason follows. bzip2: No space left on device FAIL: ./bzip2-tests/pyflate/45MB-00.bz2 Decompress Processing ./bzip2-tests/pyflate/510B.bz2 PASS: ./bzip2-tests/pyflate/510B.bz2 Decompress -: OK PASS: ./bzip2-tests/pyflate/510B.bz2 md5sum Matched PASS: ./bzip2-tests/pyflate/510B.bz2 Recompress PASS: ./bzip2-tests/pyflate/510B.bz2 Redecompress -: OK PASS: ./bzip2-tests/pyflate/510B.bz2 md5sum Matched PASS: ./bzip2-tests/pyflate/510B.bz2 Decompress (small) PASS: ./bzip2-tests/pyflate/510B.bz2 Md5sum Matched PASS: ./bzip2-tests/pyflate/510B.bz2 Recompress (small) PASS: ./bzip2-tests/pyflate/510B.bz2 Redecompress (small) -: OK PASS: ./bzip2-tests/pyflate/510B.bz2 md5sum Matched Processing ./bzip2-tests/pyflate/hello-world.bz2 PASS: ./bzip2-tests/pyflate/hello-world.bz2 Decompress -: OK PASS: ./bzip2-tests/pyflate/hello-world.bz2 md5sum Matched PASS: ./bzip2-tests/pyflate/hello-world.bz2 Recompress PASS: ./bzip2-tests/pyflate/hello-world.bz2 Redecompress -: OK PASS: ./bzip2-tests/pyflate/hello-world.bz2 md5sum Matched PASS: ./bzip2-tests/pyflate/hello-world.bz2 Decompress (small) PASS: ./bzip2-tests/pyflate/hello-world.bz2 Md5sum Matched PASS: ./bzip2-tests/pyflate/hello-world.bz2 Recompress (small) PASS: ./bzip2-tests/pyflate/hello-world.bz2 Redecompress (small) -: OK PASS: ./bzip2-tests/pyflate/hello-world.bz2 md5sum Matched Processing ./bzip2-tests/pyflate/aaa.bz2 PASS: ./bzip2-tests/pyflate/aaa.bz2 Decompress -: OK PASS: ./bzip2-tests/pyflate/aaa.bz2 md5sum Matched PASS: ./bzip2-tests/pyflate/aaa.bz2 Recompress PASS: ./bzip2-tests/pyflate/aaa.bz2 Redecompress -: OK PASS: ./bzip2-tests/pyflate/aaa.bz2 md5sum Matched PASS: ./bzip2-tests/pyflate/aaa.bz2 Decompress (small) PASS: ./bzip2-tests/pyflate/aaa.bz2 Md5sum Matched PASS: ./bzip2-tests/pyflate/aaa.bz2 Recompress (small) PASS: ./bzip2-tests/pyflate/aaa.bz2 Redecompress (small) -: OK PASS: ./bzip2-tests/pyflate/aaa.bz2 md5sum Matched Processing ./bzip2-tests/pyflate/empty.bz2 PASS: ./bzip2-tests/pyflate/empty.bz2 Decompress -: OK PASS: ./bzip2-tests/pyflate/empty.bz2 md5sum Matched PASS: ./bzip2-tests/pyflate/empty.bz2 Recompress PASS: ./bzip2-tests/pyflate/empty.bz2 Redecompress -: OK PASS: ./bzip2-tests/pyflate/empty.bz2 md5sum Matched PASS: ./bzip2-tests/pyflate/empty.bz2 Decompress (small) PASS: ./bzip2-tests/pyflate/empty.bz2 Md5sum Matched PASS: ./bzip2-tests/pyflate/empty.bz2 Recompress (small) PASS: ./bzip2-tests/pyflate/empty.bz2 Redecompress (small) -: OK PASS: ./bzip2-tests/pyflate/empty.bz2 md5sum Matched Processing ./bzip2-tests/dotnetzip/dancing-color.ps.bz2 PASS: ./bzip2-tests/dotnetzip/dancing-color.ps.bz2 Decompress -: OK PASS: ./bzip2-tests/dotnetzip/dancing-color.ps.bz2 md5sum Matched PASS: ./bzip2-tests/dotnetzip/dancing-color.ps.bz2 Recompress PASS: ./bzip2-tests/dotnetzip/dancing-color.ps.bz2 Redecompress -: OK PASS: ./bzip2-tests/dotnetzip/dancing-color.ps.bz2 md5sum Matched PASS: ./bzip2-tests/dotnetzip/dancing-color.ps.bz2 Decompress (small) PASS: ./bzip2-tests/dotnetzip/dancing-color.ps.bz2 Md5sum Matched PASS: ./bzip2-tests/dotnetzip/dancing-color.ps.bz2 Recompress (small) PASS: ./bzip2-tests/dotnetzip/dancing-color.ps.bz2 Redecompress (small) -: OK PASS: ./bzip2-tests/dotnetzip/dancing-color.ps.bz2 md5sum Matched Processing ./bzip2-tests/dotnetzip/sample1.bz2 PASS: ./bzip2-tests/dotnetzip/sample1.bz2 Decompress -: OK PASS: ./bzip2-tests/dotnetzip/sample1.bz2 md5sum Matched PASS: ./bzip2-tests/dotnetzip/sample1.bz2 Recompress PASS: ./bzip2-tests/dotnetzip/sample1.bz2 Redecompress -: OK PASS: ./bzip2-tests/dotnetzip/sample1.bz2 md5sum Matched PASS: ./bzip2-tests/dotnetzip/sample1.bz2 Decompress (small) PASS: ./bzip2-tests/dotnetzip/sample1.bz2 Md5sum Matched PASS: ./bzip2-tests/dotnetzip/sample1.bz2 Recompress (small) PASS: ./bzip2-tests/dotnetzip/sample1.bz2 Redecompress (small) -: OK PASS: ./bzip2-tests/dotnetzip/sample1.bz2 md5sum Matched Processing ./bzip2-tests/dotnetzip/sample2.bz2 PASS: ./bzip2-tests/dotnetzip/sample2.bz2 Decompress -: OK PASS: ./bzip2-tests/dotnetzip/sample2.bz2 md5sum Matched PASS: ./bzip2-tests/dotnetzip/sample2.bz2 Recompress PASS: ./bzip2-tests/dotnetzip/sample2.bz2 Redecompress -: OK PASS: ./bzip2-tests/dotnetzip/sample2.bz2 md5sum Matched PASS: ./bzip2-tests/dotnetzip/sample2.bz2 Decompress (small) PASS: ./bzip2-tests/dotnetzip/sample2.bz2 Md5sum Matched PASS: ./bzip2-tests/dotnetzip/sample2.bz2 Recompress (small) PASS: ./bzip2-tests/dotnetzip/sample2.bz2 Redecompress (small) -: OK PASS: ./bzip2-tests/dotnetzip/sample2.bz2 md5sum Matched !!! 6 .bz files did not decompressed/recompressed correctly. Testing detection of bad input data... bzip2: Data integrity error when decompressing. PASS: Correctly found data integrity errors in ./bzip2-tests/go/compress/fail-issue5747.bz2.bad during decompress. bzip2: Data integrity error when decompressing. PASS: Correctly found data integrity errors in ./bzip2-tests/go/compress/fail-issue5747.bz2.bad during decompress (small) bzip2: Data integrity error when decompressing. PASS: Correctly found data integrity errors in ./bzip2-tests/lbzip2/overrun.bz2.bad during decompress. bzip2: Data integrity error when decompressing. PASS: Correctly found data integrity errors in ./bzip2-tests/lbzip2/overrun.bz2.bad during decompress (small) bzip2: Data integrity error when decompressing. PASS: Correctly found data integrity errors in ./bzip2-tests/lbzip2/crc2.bz2.bad during decompress. bzip2: Data integrity error when decompressing. PASS: Correctly found data integrity errors in ./bzip2-tests/lbzip2/crc2.bz2.bad during decompress (small) bzip2: Data integrity error when decompressing. PASS: Correctly found data integrity errors in ./bzip2-tests/lbzip2/crc1.bz2.bad during decompress. bzip2: Data integrity error when decompressing. PASS: Correctly found data integrity errors in ./bzip2-tests/lbzip2/crc1.bz2.bad during decompress (small) bzip2: Data integrity error when decompressing. PASS: Correctly found data integrity errors in ./bzip2-tests/lbzip2/overrun2.bz2.bad during decompress. bzip2: Data integrity error when decompressing. PASS: Correctly found data integrity errors in ./bzip2-tests/lbzip2/overrun2.bz2.bad during decompress (small) bzip2: Data integrity error when decompressing. PASS: Correctly found data integrity errors in ./bzip2-tests/lbzip2/cve.bz2.bad during decompress. bzip2: Data integrity error when decompressing. PASS: Correctly found data integrity errors in ./bzip2-tests/lbzip2/cve.bz2.bad during decompress (small) bzip2: Data integrity error when decompressing. PASS: Correctly found data integrity errors in ./bzip2-tests/lbzip2/cve2.bz2.bad during decompress. bzip2: Data integrity error when decompressing. PASS: Correctly found data integrity errors in ./bzip2-tests/lbzip2/cve2.bz2.bad during decompress (small) PASS: Correctly found data integrity errors in ./bzip2-tests/lbzip2/void.bz2.bad during decompress. PASS: Correctly found data integrity errors in ./bzip2-tests/lbzip2/void.bz2.bad during decompress (small) Correctly found all bad file data integrity errors. Bad results, look for !!! in the logs above - ./bzip2-tests/commons-compress/zip64support.tar.bz2 bad decompress result - ./bzip2-tests/go/regexp/re2-exhaustive.txt.bz2 bad decompress result - ./bzip2-tests/lbzip2/idx899999.bz2 bad decompress result - ./bzip2-tests/lbzip2/ch255.bz2 bad decompress result - ./bzip2-tests/pyflate/45MB-fb.bz2 bad decompress result - ./bzip2-tests/pyflate/45MB-00.bz2 bad decompress result DURATION: 34 END: /usr/lib/bzip2/ptest 2020-04-13T17:09 STOP: ptest-runner root@qemux86-64:~# ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [OE-core] [PATCH] bzip2: Add test suite for bzip2 2020-04-13 17:22 ` Rahul Kumar @ 2020-04-13 19:18 ` Randy MacLeod 2020-04-14 1:48 ` Rahul Kumar 0 siblings, 1 reply; 6+ messages in thread From: Randy MacLeod @ 2020-04-13 19:18 UTC (permalink / raw) To: Rahul Kumar, openembedded-core [-- Attachment #1: Type: text/plain, Size: 30989 bytes --] On 2020-04-13 1:22 p.m., Rahul Kumar wrote: > Hi Randy, > > Kindly find the attached bzip2 ptest logs file. Hi Rahul, Most or even all of the tests that fail are due to: bzip2: No space left on device For a [de]compression utility ptest suite, it's certainly reasonable to add extra space to the test image: https://www.yoctoproject.org/docs/current/ref-manual/ref-manual.html#var-IMAGE_ROOTFS_EXTRA_SPACE Make note of what how much extra space is needed in your commit log since we don't have a way for ptests to declare this and for it to be added automatically. It would also be really nice to see a summary of your ptest result in the long log. For example in my recent update to rsyslog in meta-oe: 1ec13d7d9 rsyslog: 8.1911.0 -> 8.2002.0 ... On qemux86-64/kvm the ptest results with extra filesystem space and a timeout of 800 seconds are: 1911 2002 TOTAL: 389 408 PASS: 339 357 SKIP: 39 39 XFAIL: 0 0 FAIL: 11 12 XPASS: 0 0 ERROR: 0 0 I probably should have listed the extra space used! oops. :) > I answered your Question here . > Kindly take a look and feel free to point out if i am wrong at any > place and let me know if i missed anything. > ========== > > + > > +modify run-tests script to write PASS/FAIL as expected by the ptest > infrastructure > > + > > +Signed-off-by: Rahul Kumar <rahulk@mvista.com > <mailto:rahulk@mvista.com>> > > +--- > > + run-tests.sh | 83 > +++++++++++++++++++++++++++++++----------------------------- > > + 1 file changed, 43 insertions(+), 40 deletions(-) > > + > > +diff --git a/run-tests.sh b/run-tests.sh > > +index 1ba8c27..1eff62a 100755 > > +--- a/run-tests.sh > > ++++ b/run-tests.sh > > +@@ -10,7 +10,7 @@ > > + VALGRIND="valgrind" > > + VALGRIND_ARGS="-q --error-exitcode=9" > > + BZIP2="bzip2" > > +-TESTS_DIR="." > > ++TESTS_DIR="./bzip2-tests" > > Can you explain why you did this? Maybe upstream would accept it ? > > Ans: > we need to parse the TEST_DIR Path because we are running runtest.sh > script outside the bzip2-tests directory. > But I figured out a more convenient way for this. > I will parse the TEST_DIR path during running the runscript.sh. > > I can implement this by adding below line in makefile.am > <http://makefile.am> file. > ./bzip2-tests/run-tests.sh --tests-dir="$(PWD)/bzip2-tests" Ah good. > > In Next version of patch I will implement it. > > =========== > > > + IGNORE_MD5=0 > > + > > + for i in "$@" > > +@@ -40,21 +40,21 @@ case $i in > > + esac > > + done > > + > > +-if ! type "valgrind" > /dev/null; then > > ++if ! type "valgrind" > /dev/null 2>&1; then > > + VALGRIND="" > > + VALGRIND_ARGS="" > > + fi > > Explanation: > > if ! type "valgrind" > /dev/null; > suppose if valgrind is not present in my image at that time it is > showing > ./bzip2-tests/run-tests.sh: line 43: type: valgrind: not found > > Since we are displaying a message in script that valgrind is used > or not. > > So i redirect the output > BY Modifying this line with "if ! type "valgrind" > /dev/null 2>&1" > > ========== > > > + echo "Testing ${BZIP2} in directory ${TESTS_DIR}" > > + if [ "$VALGRIND" != "" ]; then > > +- echo " using valgrind" > > ++ echo "Using valgrind: Yes" > > + else > > +- echo " NOT using valgrind" > > ++ echo "Using valgrind: No" > > + fi > > + if [[ ${IGNORE_MD5} -eq 0 ]]; then > > +- echo " checking md5 sums" > > ++ echo "Checking md5 sums: Yes" > > + else > > +- echo " NOT checking md5 sums" > > ++ echo "Checking md5 sums: No" > > + fi > > + > > Explanation: > I Simply modified valgrind and md5sum messages with Yes/No I is worth seeing if upstream will accept the change, IMO. > > ========== > > > + # Remove any left over tesfilecopies from previous runs first. > > +@@ -76,16 +76,16 @@ while IFS= read -r -d '' bzfile; do > > + echo "Processing ${bzfile}" > > + > > + # Decompress it. > > +- echo " Decompress..." > > ++ # echo " Decompress..." > > Explanation: > Initially for each file It is printing Decompress... > I think which is not required to display in ptest logs so i comment it > out. Does it cause a problem? We try to minimize our changes so if it's just aesthetic, don't change it. > > ========== > > + if [[ ${IGNORE_MD5} -ne 1 ]]; then > > +- md5sum --check --status ${md5file} < ${file} \ > > +- || { echo "!!! md5sum doesn't match decompressed file"; > > ++ md5sum -c ${md5file} < ${file} && { echo "PASS: ${bzfile} > md5sum Matched"; } \ > > ++ || { echo "FAIL: ${bzfile} md5sum Matched"; > > + badtests=("${badtests[@]}" $"${file} md5sum doesn't match") > > + nogood=$[${nogood}+1]; conti > > Explanation: > for md5sum there is no short form option for --status option. > use of --status is "don't output anything, status code shows success" > > md5sum -c ${md5file} < ${copy} > so i removed the --status option due to this below line is coming in > ptest log > -: OK The discrete md5sum doesn't have a short form of --status and busybox md5sum only supports '-s'; that's a shame. I guess we'd need to drop the argument for now but this is another case where perhaps upstream bzip2 will accommodate our desire to run the tests with busybox so it would be nice if you could ask and track the upstream status. > > ========== > > + echo "Bad results, look for !!! in the logs above" > + printf ' - %s\n' "${badtests[@]}" > +- exit 1 > + fi > +-- > > Explanation: > if some test failed then script is returning with exit 1 status due to > this at the end of ptest below message is printing > make: *** [Makefile:14: runtest] Error 1 > > logs wil looks like below if script returning with exit 1 status > > PASS: Correctly found data integrity errors in > ./bzip2-tests/lbzip2/void.bz2.bad during decompress (small) > > Correctly found all bad file data integrity errors. > > Bad results, look for !!! in the logs above > - ./bzip2-tests/commons-compress/zip64support.tar.bz2 bad decompress > result > - ./bzip2-tests/go/regexp/re2-exhaustive.txt.bz2 bad decompress result > - ./bzip2-tests/lbzip2/idx899999.bz2 bad decompress result > - ./bzip2-tests/lbzip2/ch255.bz2 bad decompress result > - ./bzip2-tests/pyflate/45MB-fb.bz2 bad decompress result > - ./bzip2-tests/pyflate/45MB-00.bz2 bad decompress result > make: *** [Makefile:14: runtest] Error 1 > > ERROR: Exit status is 512 > DURATION: 31 > END: /usr/lib/bzip2/ptest > 2020-04-13T16:05 > STOP: ptest-runner > root@qemux86-64:~# > > To avoid "make: *** [Makefile:14: runtest] Error 1" messgae > I removed exit 1 line from the script. > May be i am wrong please suggest me i should keep it or remove. I this it's useful information and as long as when you add additional filesystem space and the test all pass then we don't need to make the failure cases look nice! ;-) > > ========== > > > file://configure.ac <http://configure.ac>;subdir=${BP} \ > > file://Makefile.am;subdir=${BP} \ > > file://run-ptest \ > > + > file://0001-bzip2-modify-run-tests-script.patch;patchdir=${WORKDIR}/git \ > > " > > + > > SRC_URI[md5sum] = "67e051268d0c475ea773822f7500d0e5" > > SRC_URI[sha256sum] = > "ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269" > > > > +SRCREV_bzip2-tests = "8b0198efda1603cf81fa2c7a9bb673dd22ae1661" > > + > > UPSTREAM_CHECK_URI = "https://www.sourceware.org/pub/bzip2/" > > > > PACKAGES =+ "libbz2" > > @@ -39,7 +48,7 @@ do_install_ptest () { > > > > FILES_libbz2 = "${libdir}/lib*${SOLIBS}" > > > > -RDEPENDS_${PN}-ptest += "make" > > +RDEPENDS_${PN}-ptest += "make bash" > > Does it really depend on bash or just a POSIX compliant /bin/sh ? > If it requires bash, how bad are the scripts and can they be made > POSIX compliant with the help of: > https://www.shellcheck.net/ > Ans. > This script is based on array concept and Arrays are not part of the > POSIX sh specification. > so i think we should go with bash script. Maybe just add a comment above the RDEPENDS so that if someone wants to get rid of the bash dependency, they know where to start. Ideally upstream would get rid of the bashisms but their run-tests.sh does use: #!/bin/bash so this is fine for now. > > ========== > > > diff --git a/meta/recipes-extended/bzip2/bzip2/Makefile.am > b/meta/recipes-extended/bzip2/bzip2/Makefile.am > > index dcf6458..f917b23 100644 > > --- a/meta/recipes-extended/bzip2/bzip2/Makefile.am > > +++ b/meta/recipes-extended/bzip2/bzip2/Makefile.am > > @@ -46,6 +46,7 @@ runtest: > > else echo "FAIL: sample2 decompress"; fi > > @if cmp sample3.tst sample3.ref; then echo "PASS: sample3 > decompress";\ > > else echo "FAIL: sample3 decompress"; fi > > + ./bzip2-tests/run-tests.sh > > > > install-ptest: > > sed -n '/^runtest:/,/^install-ptest:/{/^install-ptest:/!p}' \ > > @@ -56,6 +57,7 @@ install-ptest: > > cp $(srcdir)/sample1.bz2 $(DESTDIR)/ > > cp $(srcdir)/sample2.bz2 $(DESTDIR)/ > > cp $(srcdir)/sample3.bz2 $(DESTDIR)/ > > + cp -rf $(srcdir)/../git $(DESTDIR)/bzip2-tests > > ln -s $(bindir)/bzip2 $(DESTDIR)/bzip2 > > > > install-exec-hook: > > diff --git a/meta/recipes-extended/bzip2/bzip2_1.0.8.bb > <http://bzip2_1.0.8.bb> b/meta/recipes-extended/bzip2/bzip2_1.0.8.bb > <http://bzip2_1.0.8.bb> > > index 8e9b779..e8ec5c6 100644 > > --- a/meta/recipes-extended/bzip2/bzip2_1.0.8.bb <http://bzip2_1.0.8.bb> > > +++ b/meta/recipes-extended/bzip2/bzip2_1.0.8.bb <http://bzip2_1.0.8.bb> > > @@ -5,16 +5,25 @@ LZ77/LZ78-based compressors, and approaches the > performance of the PPM family of > > HOMEPAGE = "https://sourceware.org/bzip2/" > > SECTION = "console/utils" > > LICENSE = "bzip2" > > -LIC_FILES_CHKSUM = > "file://LICENSE;beginline=4;endline=37;md5=600af43c50f1fcb82e32f19b32df4664" > > - > > +LIC_FILES_CHKSUM = > "file://LICENSE;beginline=4;endline=37;md5=600af43c50f1fcb82e32f19b32df4664 > \ > > + file://../git/go/LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707 \ > > + > file://../git/dotnetzip/License.txt;md5=9cb56871eed4e748c3bc7e8ff352a54f > \ > > + > file://../git/dotnetzip/License.zlib.txt;md5=cc421ccd22eeb2e5db6b79e6de0a029f > \ > > + > file://../git/commons-compress/LICENSE.txt;md5=86d3f3a95c324c9479bd8986968f4327 > \ > > What's all this additional license info about? > Please explain in when replying as well as in the long log. > > Ans: > I don't have much knowledge about the licensing part so I populated > all the licenses which are present in the bzip2-tests source code. > can you please provide any suggestions on what basis we should take > the decision of the license population. You should use: LICENSE = "GPLv3+" since the only code is the run-tests.sh script and that the license given in the script. The rest of the LICENSE information in the git repo seems to have been copied from the packages where these compressed _data_ files came from. Since we are not compiling any source, we only need to have a LIC_FILES_CHKSUM entry for run-tests.sh. We are simply using the compressed files as data so we can ignore the license info. Ideally the upstream repo would remove the misleading files but IANAL and I don't think it's a problem for us really. It's probably worth explaining this in a sentence or two in your commit log. > ========== > > Let me know if I missed anything here. I think there are a few changes to make for a v2. Hopefully you will write a commit log that explains the changes that we have agreed to make. The idea is that someone should be able to read the long log and have a general idea of what the code changes are. Thanks for working on this ptest addition, it looks like it's heading in the right direction and almost done now. ../Randy > > *Thanks & Regards,* > Rahul Kumar > Software Engineer,Linux Solutions Engineering > Group,Montavista Software LLC > Email Id: rahulk@mvista.com <mailto:rahulk@mvista.com> > <https://plus.google.com/+CodeTwoSoftware> > > > On Fri, Apr 3, 2020 at 4:02 AM Randy MacLeod > <randy.macleod@windriver.com <mailto:randy.macleod@windriver.com>> wrote: > > On 2020-04-02 7:10 a.m., Rahul Kumar wrote: > > [YOCTO #13444] > > Thanks for contributing this work Rahul. > > It would be good if the long log explained the changes made > in a sentence or two. I've made some comments and asked > some questions inline below. I may have gone overboard but > I hope you get the idea that we'd like to see not just the > changes but the reason for the changes. > > Also, can you present the results of running: > # ptest-runner bzip2 > on qemux86-64 with kvm enabled in the long log? > If there are tests that fail or are skipped > comment on that even it it's to say that you don't know what is wrong. > > > > > Signed-off-by: Rahul Kumar <rahulk@mvista.com > <mailto:rahulk@mvista.com>> > > --- > > .../bzip2/0001-bzip2-modify-run-tests-script.patch | 220 > +++++++++++++++++++++ > > meta/recipes-extended/bzip2/bzip2/Makefile.am | 2 + > > meta/recipes-extended/bzip2/bzip2_1.0.8.bb > <http://bzip2_1.0.8.bb> | 15 +- > > 3 files changed, 234 insertions(+), 3 deletions(-) > > create mode 100644 > meta/recipes-extended/bzip2/bzip2/0001-bzip2-modify-run-tests-script.patch > > > > diff --git > a/meta/recipes-extended/bzip2/bzip2/0001-bzip2-modify-run-tests-script.patch > b/meta/recipes-extended/bzip2/bzip2/0001-bzip2-modify-run-tests-script.patch > > new file mode 100644 > > index 0000000..8ae3c4e > > --- /dev/null > > +++ > b/meta/recipes-extended/bzip2/bzip2/0001-bzip2-modify-run-tests-script.patch > > @@ -0,0 +1,220 @@ > > +From 42e6258485030085285d4b30854bfb94bcf43880 Mon Sep 17 > 00:00:00 2001 > > +From: Rahul Kumar <rahulk@mvista.com <mailto:rahulk@mvista.com>> > > +Date: Mon, 30 Mar 2020 12:17:00 +0530 > > +Subject: [PATCH] bzip2: modify run-tests script > > + > > +Upstream-Status: Inappropriate [ modify run-tests script for > ptest infrastructure ] > > It seems that some of the changes are to make the tests less > verbose and > to 'tighten-up' the language and formatting used. Upstream might > accept > them, have you checked? If you change the status to Pending I think it > would be better for now because that would force someone check on the > progress at some point. > > > + > > +modify run-tests script to write PASS/FAIL as expected by the > ptest infrastructure > > + > > +Signed-off-by: Rahul Kumar <rahulk@mvista.com > <mailto:rahulk@mvista.com>> > > +--- > > + run-tests.sh | 83 > +++++++++++++++++++++++++++++++----------------------------- > > + 1 file changed, 43 insertions(+), 40 deletions(-) > > + > > +diff --git a/run-tests.sh b/run-tests.sh > > +index 1ba8c27..1eff62a 100755 > > +--- a/run-tests.sh > > ++++ b/run-tests.sh > > +@@ -10,7 +10,7 @@ > > + VALGRIND="valgrind" > > + VALGRIND_ARGS="-q --error-exitcode=9" > > + BZIP2="bzip2" > > +-TESTS_DIR="." > > ++TESTS_DIR="./bzip2-tests" > > Can you explain why you did this? Maybe upstream would accept it. > > > + IGNORE_MD5=0 > > + > > + for i in "$@" > > +@@ -40,21 +40,21 @@ case $i in > > + esac > > + done > > + > > +-if ! type "valgrind" > /dev/null; then > > ++if ! type "valgrind" > /dev/null 2>&1; then > > + VALGRIND="" > > + VALGRIND_ARGS="" > > + fi > > + > > + echo "Testing ${BZIP2} in directory ${TESTS_DIR}" > > + if [ "$VALGRIND" != "" ]; then > > +- echo " using valgrind" > > ++ echo "Using valgrind: Yes" > > + else > > +- echo " NOT using valgrind" > > ++ echo "Using valgrind: No" > > + fi > > + if [[ ${IGNORE_MD5} -eq 0 ]]; then > > +- echo " checking md5 sums" > > ++ echo "Checking md5 sums: Yes" > > + else > > +- echo " NOT checking md5 sums" > > ++ echo "Checking md5 sums: No" > > + fi > > + > > + # Remove any left over tesfilecopies from previous runs first. > > +@@ -76,16 +76,16 @@ while IFS= read -r -d '' bzfile; do > > + echo "Processing ${bzfile}" > > + > > + # Decompress it. > > +- echo " Decompress..." > > ++ # echo " Decompress..." > > Without an explanation in the long log, I can't tell if this > comment was removed intentionally or perhaps when you were debugging. > I expect you have a good reason to remove it but an explaination would > be helpful. > > > + rm -f "${file}" > > +- ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -k -d -q ${bzfile} \ > > +- || { echo "!!! bad decompress result $?"; > > ++ ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -k -d -q ${bzfile} && > { echo "PASS: ${bzfile} Decompress"; } \ > > ++ || { echo "FAIL: ${bzfile} Decompress"; > > + badtests=("${badtests[@]}" $"${bzfile} bad decompress > result") > > + nogood=$[${nogood}+1]; continue; } > > + > > + if [[ ${IGNORE_MD5} -ne 1 ]]; then > > +- md5sum --check --status ${md5file} < ${file} \ > > +- || { echo "!!! md5sum doesn't match decompressed file"; > > ++ md5sum -c ${md5file} < ${file} && { echo "PASS: ${bzfile} > md5sum Matched"; } \ > > ++ || { echo "FAIL: ${bzfile} md5sum Matched"; > > + badtests=("${badtests[@]}" $"${file} md5sum doesn't > match") > > + nogood=$[${nogood}+1]; continue; } > > + fi > > +@@ -93,20 +93,20 @@ while IFS= read -r -d '' bzfile; do > > + # Compress and decompress a copy > > + mv "${file}" "${copy}" > > + rm -f "${bzcopy}" > > +- echo " Recompress..." > > +- ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -z -q -s ${copy} \ > > +- || { echo "!!! bad compress result $?"; > > ++ # echo " Recompress..." > > ++ ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -z -q -s ${copy} && { > echo "PASS: ${bzfile} Recompress "; } \ > > ++ || { echo "FAIL: ${bzfile} Recompress"; > > + badtests=("${badtests[@]}" $"${copy} bad result") > > + nogood=$[${nogood}+1]; continue; } > > +- echo " Redecompress..." > > +- ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -d -q -s ${bzcopy} \ > > +- || { echo "!!! bad (re)decompress result $?"; > > ++ # echo " Redecompress..." > > ++ ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -d -q -s ${bzcopy} && > { echo "PASS: ${bzfile} Redecompress"; } \ > > ++ || { echo "FAIL: ${bzfile} Redecompress"; > > + badtests=("${badtests[@]}" $"${bzcopy} bad result") > > + nogood=$[${nogood}+1]; continue; } > > + > > + if [[ ${IGNORE_MD5} -ne 1 ]]; then > > +- md5sum --check --status ${md5file} < ${copy} \ > > +- || { echo "!!! md5sum doesn't match (re)decompressed file"; > > ++ md5sum -c ${md5file} < ${copy} && { echo "PASS: ${bzfile} > md5sum Matched"; } \ > > ++ || { echo "FAIL: ${bzfile} md5sum Matched"; > > + badtests=("${badtests[@]}" $"${copy} md5sum doesn't > match") > > + nogood=$[${nogood}+1]; continue; } > > + fi > > +@@ -114,16 +114,16 @@ while IFS= read -r -d '' bzfile; do > > + rm "${copy}" > > + > > + # Now do it all again in "small" mode. > > +- echo " Decompress (small)..." > > ++ # echo " Decompress (small)..." > > + rm -f "${file}" > > +- ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -k -d -q -s ${bzfile} \ > > +- || { echo "!!! bad decompress result $?"; > > ++ ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -k -d -q -s ${bzfile} > &&{ echo "PASS: ${bzfile} Decompress (small)"; } \ > > ++ || { echo "FAIL: ${bzfile} Decompress (small)"; > > + badtests=("${badtests[@]}" $"${bzfile} bad decompress > result") > > + nogood=$[${nogood}+1]; continue; } > > + > > + if [[ ${IGNORE_MD5} -ne 1 ]]; then > > +- md5sum --check --status ${md5file} < ${file} \ > > +- || { echo "!!! md5sum doesn't match decompressed file"; > > ++ md5sum -c ${md5file} < ${file} > /dev/null 2>&1 && { echo > "PASS: ${bzfile} Md5sum Matched"; } \ > > ++ || { echo "FAIL: ${bzfile} Md5sum Matched"; > > + badtests=("${badtests[@]}" $"${file} md5sum doesn't > match") > > + nogood=$[${nogood}+1]; continue; } > > + fi > > +@@ -131,20 +131,20 @@ while IFS= read -r -d '' bzfile; do > > + # Compress and decompress a copy > > + mv "${file}" "${copy}" > > + rm -f "${bzcopy}" > > +- echo " Recompress (small)..." > > +- ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -z -q -s ${copy} \ > > +- || { echo "!!! bad compress result $?"; > > ++ # echo " Recompress (small)..." > > ++ ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -z -q -s ${copy} && { > echo "PASS: ${bzfile} Recompress (small)"; } \ > > ++ || { echo "FAIL: ${bzfile} Recompress (small)"; > > + badtests=("${badtests[@]}" $"${copy} bad result") > > + nogood=$[${nogood}+1]; continue; } > > +- echo " Redecompress (small)..." > > +- ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -d -q -s ${bzcopy} \ > > +- || { echo "!!! bad (re)decompress result $?"; > > ++ # echo " Redecompress (small)..." > > ++ ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -d -q -s ${bzcopy} && > { echo "PASS: ${bzfile} Redecompress (small)"; } \ > > ++ || { echo "FAIL: ${bzfile} Redecompress (small)"; > > + badtests=("${badtests[@]}" $"${bzcopy} bad result") > > + nogood=$[${nogood}+1]; continue; } > > + > > + if [[ ${IGNORE_MD5} -ne 1 ]]; then > > +- md5sum --check --status ${md5file} < ${copy} \ > > +- || { echo "!!! md5sum doesn't match (re)decompressed file"; > > ++ md5sum -c ${md5file} < ${copy} && { echo "PASS: ${bzfile} > md5sum Matched"; } \ > > ++ || { echo "FAIL: ${bzfile} md5sum : Miss Matched"; > > + badtests=("${badtests[@]}" $"${copy} md5sum doesn't > match") > > + nogood=$[${nogood}+1]; continue; } > > + fi > > +@@ -169,14 +169,14 @@ nobad=0 > > + badbad=0 > > + while IFS= read -r -d '' badfile; do > > + > > +- echo "Processing ${badfile}" > > ++ # echo "Processing ${badfile}" > > + > > +- echo " Trying to decompress..." > > ++ # echo " Trying to decompress..." > > + ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -k -d -q ${badfile} > > + ret=$? > > + > > + if [[ ${ret} -eq 0 ]]; then > > +- echo "!!! badness not detected" > > ++ echo "FAIL: badness not detected" > > + nobad=$[${nobad}+1] > > + badtests=("${badtests[@]}" $"${badfile} badness not detected") > > + continue > > +@@ -185,18 +185,20 @@ while IFS= read -r -d '' badfile; do > > + # Assumes "normal" badness is detected by exit code 1 or 2. > > + # A crash or valgrind issue will be reported with something > else. > > + if [[ ${ret} != 1 ]] && [[ ${ret} != 2 ]]; then > > +- echo "!!! baddness caused baddness in ${BZIP2}" > > ++ echo "FAIL: baddness caused baddness in ${BZIP2}" > It's 'badness': > https://www.merriam-webster.com/thesaurus/badness > > + badbad=$[${badbad}+1] > > + badtests=("${badtests[@]}" $"${badfile} badness caused > baddness") > > + continue > > ++ else > > ++ echo "PASS: Correctly found data integrity errors in > ${badfile} during decompress." > > + fi > > + > > +- echo " Trying to decompress (small)..." > > ++ # echo " Trying to decompress (small)..." > > + ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -k -d -q -s ${badfile} > > + ret=$? > > + > > + if [[ ${ret} -eq 0 ]]; then > > +- echo "!!! badness not detected" > > ++ echo "FAIL: badness not detected " > > + nobad=$[${nobad}+1] > > + badtests=("${badtests[@]}" $"${badfile} badness not detected") > > + continue > > +@@ -205,10 +207,12 @@ while IFS= read -r -d '' badfile; do > > + # Assumes "normal" badness is detected by exit code 1 or 2. > > + # A crash or valgrind issue will be reported with something > else. > > + if [[ ${ret} != 1 ]] && [[ ${ret} != 2 ]]; then > > +- echo "!!! baddness caused baddness in ${BZIP2}" > > ++ echo "FAIL: baddness caused baddness in ${BZIP2}" > > + badbad=$[${badbad}+1] > > + badtests=("${badtests[@]}" $"${badfile} badness caused > baddness") > > + continue > > ++ else > > ++ echo "PASS: Correctly found data integrity errors in > ${badfile} during decompress (small)" > > + fi > > + > > + done < <(find ${TESTS_DIR} -type f -name \*\.bz2.bad -print0) > > +@@ -234,5 +238,4 @@ if [[ ${results} -eq 0 ]]; then > > + else > > + echo "Bad results, look for !!! in the logs above" > > + printf ' - %s\n' "${badtests[@]}" > > +- exit 1 > > + fi > > +-- > > +2.7.4 > > diff --git a/meta/recipes-extended/bzip2/bzip2/Makefile.am > b/meta/recipes-extended/bzip2/bzip2/Makefile.am > > index dcf6458..f917b23 100644 > > --- a/meta/recipes-extended/bzip2/bzip2/Makefile.am > > +++ b/meta/recipes-extended/bzip2/bzip2/Makefile.am > > @@ -46,6 +46,7 @@ runtest: > > else echo "FAIL: sample2 decompress"; fi > > @if cmp sample3.tst sample3.ref; then echo "PASS: sample3 > decompress";\ > > else echo "FAIL: sample3 decompress"; fi > > + ./bzip2-tests/run-tests.sh > > > > install-ptest: > > sed -n '/^runtest:/,/^install-ptest:/{/^install-ptest:/!p}' \ > > @@ -56,6 +57,7 @@ install-ptest: > > cp $(srcdir)/sample1.bz2 $(DESTDIR)/ > > cp $(srcdir)/sample2.bz2 $(DESTDIR)/ > > cp $(srcdir)/sample3.bz2 $(DESTDIR)/ > > + cp -rf $(srcdir)/../git $(DESTDIR)/bzip2-tests > > ln -s $(bindir)/bzip2 $(DESTDIR)/bzip2 > > > > install-exec-hook: > > diff --git a/meta/recipes-extended/bzip2/bzip2_1.0.8.bb > <http://bzip2_1.0.8.bb> > b/meta/recipes-extended/bzip2/bzip2_1.0.8.bb <http://bzip2_1.0.8.bb> > > index 8e9b779..e8ec5c6 100644 > > --- a/meta/recipes-extended/bzip2/bzip2_1.0.8.bb > <http://bzip2_1.0.8.bb> > > +++ b/meta/recipes-extended/bzip2/bzip2_1.0.8.bb > <http://bzip2_1.0.8.bb> > > @@ -5,16 +5,25 @@ LZ77/LZ78-based compressors, and approaches > the performance of the PPM family of > > HOMEPAGE = "https://sourceware.org/bzip2/" > > SECTION = "console/utils" > > LICENSE = "bzip2" > > -LIC_FILES_CHKSUM = > "file://LICENSE;beginline=4;endline=37;md5=600af43c50f1fcb82e32f19b32df4664" > > - > > +LIC_FILES_CHKSUM = > "file://LICENSE;beginline=4;endline=37;md5=600af43c50f1fcb82e32f19b32df4664 > \ > > + file://../git/go/LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707 \ > > + > file://../git/dotnetzip/License.txt;md5=9cb56871eed4e748c3bc7e8ff352a54f > \ > > + > file://../git/dotnetzip/License.zlib.txt;md5=cc421ccd22eeb2e5db6b79e6de0a029f > \ > > + > file://../git/commons-compress/LICENSE.txt;md5=86d3f3a95c324c9479bd8986968f4327 > \ > > What's all this additional license info about? > Please explain in when replying as well as in the long log. > > > + " > > SRC_URI = > "https://sourceware.org/pub/${BPN}/${BPN}-${PV}.tar.gz > <https://sourceware.org/pub/$%7BBPN%7D/$%7BBPN%7D-$%7BPV%7D.tar.gz> \ > > + > git://sourceware.org/git/bzip2-tests.git;name=bzip2-tests > <http://sourceware.org/git/bzip2-tests.git;name=bzip2-tests> \ > > Mention how big this repo is in the long log. > > > file://configure.ac > <http://configure.ac>;subdir=${BP} \ > > file://Makefile.am;subdir=${BP} \ > > file://run-ptest \ > > + > file://0001-bzip2-modify-run-tests-script.patch;patchdir=${WORKDIR}/git > \ > > " > > + > > SRC_URI[md5sum] = "67e051268d0c475ea773822f7500d0e5" > > SRC_URI[sha256sum] = > "ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269" > > > > +SRCREV_bzip2-tests = "8b0198efda1603cf81fa2c7a9bb673dd22ae1661" > > + > > UPSTREAM_CHECK_URI = "https://www.sourceware.org/pub/bzip2/" > > > > PACKAGES =+ "libbz2" > > @@ -39,7 +48,7 @@ do_install_ptest () { > > > > FILES_libbz2 = "${libdir}/lib*${SOLIBS}" > > > > -RDEPENDS_${PN}-ptest += "make" > > +RDEPENDS_${PN}-ptest += "make bash" > > Does it really depend on bash or just a POSIX compliant /bin/sh ? > If it requires bash, how bad are the scripts and can they be made > POSIX compliant with the help of: > https://www.shellcheck.net/ > > ../Randy > > > > > PROVIDES_append_class-native = " bzip2-replacement-native" > > BBCLASSEXTEND = "native nativesdk" > > > > > > > > > > > -- > # Randy MacLeod > # Wind River Linux > -- # Randy MacLeod # Wind River Linux [-- Attachment #2: Type: text/html, Size: 51241 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [OE-core] [PATCH] bzip2: Add test suite for bzip2 2020-04-13 19:18 ` Randy MacLeod @ 2020-04-14 1:48 ` Rahul Kumar 2020-04-15 0:23 ` Randy MacLeod 0 siblings, 1 reply; 6+ messages in thread From: Rahul Kumar @ 2020-04-14 1:48 UTC (permalink / raw) To: Randy MacLeod, openembedded-core [-- Attachment #1: Type: text/plain, Size: 29396 bytes --] Hi Randy, Thanks for your feedback. As per your suggestion,I am working on that. currently my patch has Upstream-Status: Inappropriate. Since I am not aware of the patch submission process on bzip2, I posted a query on bzip2 mailing list (2 days back) but I did not get any response from there. If they are not responding, in this case shall i keep Upstream-Status: Inappropriate and send the v2 to oe-core Or should i wait for his response? Or Do you have any idea how to submit the patch for bzip2-test repo. *Thanks & Regards,* Rahul Kumar Software Engineer,Linux Solutions Engineering Group,Montavista Software LLC Email Id: rahulk@mvista.com <https://plus.google.com/+CodeTwoSoftware> On Tue, Apr 14, 2020 at 12:48 AM Randy MacLeod <randy.macleod@windriver.com> wrote: > On 2020-04-13 1:22 p.m., Rahul Kumar wrote: > > Hi Randy, > > Kindly find the attached bzip2 ptest logs file. > > Hi Rahul, > > Most or even all of the tests that fail are due to: > > bzip2: No space left on device > > For a [de]compression utility ptest suite, it's certainly reasonable > to add extra space to the test image: > > https://www.yoctoproject.org/docs/current/ref-manual/ref-manual.html#var-IMAGE_ROOTFS_EXTRA_SPACE > > Make note of what how much extra space is needed in your commit log since > we don't have a way for ptests to declare this and for it to be added > automatically. > > It would also be really nice to see a summary of your ptest result > in the long log. For example in my recent update to rsyslog in meta-oe: > 1ec13d7d9 rsyslog: 8.1911.0 -> 8.2002.0 > ... > > On qemux86-64/kvm the ptest results with extra filesystem > space and a timeout of 800 seconds are: > 1911 2002 > TOTAL: 389 408 > PASS: 339 357 > SKIP: 39 39 > XFAIL: 0 0 > FAIL: 11 12 > XPASS: 0 0 > ERROR: 0 0 > > I probably should have listed the extra space used! oops. :) > > I answered your Question here . > Kindly take a look and feel free to point out if i am wrong at any place > and let me know if i missed anything. > ========== > > + > > +modify run-tests script to write PASS/FAIL as expected by the ptest > infrastructure > > + > > +Signed-off-by: Rahul Kumar <rahulk@mvista.com> > > +--- > > + run-tests.sh | 83 > +++++++++++++++++++++++++++++++----------------------------- > > + 1 file changed, 43 insertions(+), 40 deletions(-) > > + > > +diff --git a/run-tests.sh b/run-tests.sh > > +index 1ba8c27..1eff62a 100755 > > +--- a/run-tests.sh > > ++++ b/run-tests.sh > > +@@ -10,7 +10,7 @@ > > + VALGRIND="valgrind" > > + VALGRIND_ARGS="-q --error-exitcode=9" > > + BZIP2="bzip2" > > +-TESTS_DIR="." > > ++TESTS_DIR="./bzip2-tests" > > Can you explain why you did this? Maybe upstream would accept it ? > > Ans: > we need to parse the TEST_DIR Path because we are running runtest.sh > script outside the bzip2-tests directory. > But I figured out a more convenient way for this. > I will parse the TEST_DIR path during running the runscript.sh. > > I can implement this by adding below line in makefile.am file. > ./bzip2-tests/run-tests.sh --tests-dir="$(PWD)/bzip2-tests" > > Ah good. > > > In Next version of patch I will implement it. > > =========== > > > + IGNORE_MD5=0 > > + > > + for i in "$@" > > +@@ -40,21 +40,21 @@ case $i in > > + esac > > + done > > + > > +-if ! type "valgrind" > /dev/null; then > > ++if ! type "valgrind" > /dev/null 2>&1; then > > + VALGRIND="" > > + VALGRIND_ARGS="" > > + fi > > Explanation: > > if ! type "valgrind" > /dev/null; > suppose if valgrind is not present in my image at that time it is > showing > ./bzip2-tests/run-tests.sh: line 43: type: valgrind: not found > > Since we are displaying a message in script that valgrind is used or > not. > > So i redirect the output > BY Modifying this line with "if ! type "valgrind" > /dev/null 2>&1" > > ========== > > > + echo "Testing ${BZIP2} in directory ${TESTS_DIR}" > > + if [ "$VALGRIND" != "" ]; then > > +- echo " using valgrind" > > ++ echo "Using valgrind: Yes" > > + else > > +- echo " NOT using valgrind" > > ++ echo "Using valgrind: No" > > + fi > > + if [[ ${IGNORE_MD5} -eq 0 ]]; then > > +- echo " checking md5 sums" > > ++ echo "Checking md5 sums: Yes" > > + else > > +- echo " NOT checking md5 sums" > > ++ echo "Checking md5 sums: No" > > + fi > > + > > Explanation: > I Simply modified valgrind and md5sum messages with Yes/No > > I is worth seeing if upstream will accept the change, IMO. > > > ========== > > > + # Remove any left over tesfilecopies from previous runs first. > > +@@ -76,16 +76,16 @@ while IFS= read -r -d '' bzfile; do > > + echo "Processing ${bzfile}" > > + > > + # Decompress it. > > +- echo " Decompress..." > > ++ # echo " Decompress..." > > Explanation: > Initially for each file It is printing Decompress... > I think which is not required to display in ptest logs so i comment it out. > > Does it cause a problem? > We try to minimize our changes so if it's just aesthetic, don't change it. > > > ========== > > + if [[ ${IGNORE_MD5} -ne 1 ]]; then > > +- md5sum --check --status ${md5file} < ${file} \ > > +- || { echo "!!! md5sum doesn't match decompressed file"; > > ++ md5sum -c ${md5file} < ${file} && { echo "PASS: ${bzfile} md5sum > Matched"; } \ > > ++ || { echo "FAIL: ${bzfile} md5sum Matched"; > > + badtests=("${badtests[@]}" $"${file} md5sum doesn't match") > > + nogood=$[${nogood}+1]; conti > > Explanation: > for md5sum there is no short form option for --status option. > use of --status is "don't output anything, status code shows success" > > md5sum -c ${md5file} < ${copy} > so i removed the --status option due to this below line is coming in ptest > log > -: OK > > The discrete md5sum doesn't have a short form of --status and > > busybox md5sum only supports '-s'; that's a shame. > > I guess we'd need to drop the argument for now but > this is another case where perhaps upstream bzip2 will > accommodate our desire to run the tests with busybox so > it would be nice if you could ask and track the upstream status. > > > > ========== > > + echo "Bad results, look for !!! in the logs above" > + printf ' - %s\n' "${badtests[@]}" > +- exit 1 > + fi > +-- > > Explanation: > if some test failed then script is returning with exit 1 status due to > this at the end of ptest below message is printing > make: *** [Makefile:14: runtest] Error 1 > > logs wil looks like below if script returning with exit 1 status > > PASS: Correctly found data integrity errors in > ./bzip2-tests/lbzip2/void.bz2.bad during decompress (small) > > Correctly found all bad file data integrity errors. > > Bad results, look for !!! in the logs above > - ./bzip2-tests/commons-compress/zip64support.tar.bz2 bad decompress > result > - ./bzip2-tests/go/regexp/re2-exhaustive.txt.bz2 bad decompress result > - ./bzip2-tests/lbzip2/idx899999.bz2 bad decompress result > - ./bzip2-tests/lbzip2/ch255.bz2 bad decompress result > - ./bzip2-tests/pyflate/45MB-fb.bz2 bad decompress result > - ./bzip2-tests/pyflate/45MB-00.bz2 bad decompress result > make: *** [Makefile:14: runtest] Error 1 > > ERROR: Exit status is 512 > DURATION: 31 > END: /usr/lib/bzip2/ptest > 2020-04-13T16:05 > STOP: ptest-runner > root@qemux86-64:~# > > To avoid "make: *** [Makefile:14: runtest] Error 1" messgae > I removed exit 1 line from the script. > May be i am wrong please suggest me i should keep it or remove. > > > I this it's useful information and as long as when you add > additional filesystem space and the test all pass then we > don't need to make the failure cases look nice! ;-) > > > ========== > > > file://configure.ac;subdir=${BP} \ > > file://Makefile.am;subdir=${BP} \ > > file://run-ptest \ > > + file://0001-bzip2-modify-run-tests-script.patch;patchdir=${WORKDIR}/git > \ > > " > > + > > SRC_URI[md5sum] = "67e051268d0c475ea773822f7500d0e5" > > SRC_URI[sha256sum] = > "ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269" > > > > +SRCREV_bzip2-tests = "8b0198efda1603cf81fa2c7a9bb673dd22ae1661" > > + > > UPSTREAM_CHECK_URI = "https://www.sourceware.org/pub/bzip2/" > > > > PACKAGES =+ "libbz2" > > @@ -39,7 +48,7 @@ do_install_ptest () { > > > > FILES_libbz2 = "${libdir}/lib*${SOLIBS}" > > > > -RDEPENDS_${PN}-ptest += "make" > > +RDEPENDS_${PN}-ptest += "make bash" > > Does it really depend on bash or just a POSIX compliant /bin/sh ? > If it requires bash, how bad are the scripts and can they be made > POSIX compliant with the help of: > https://www.shellcheck.net/ > Ans. > This script is based on array concept and Arrays are not part of the POSIX > sh specification. > so i think we should go with bash script. > > > Maybe just add a comment above the RDEPENDS so that if > someone wants to get rid of the bash dependency, they know > where to start. Ideally upstream would get rid of the bashisms > but their run-tests.sh does use: #!/bin/bash so this is fine for now. > > > ========== > > > diff --git a/meta/recipes-extended/bzip2/bzip2/Makefile.am > b/meta/recipes-extended/bzip2/bzip2/Makefile.am > > index dcf6458..f917b23 100644 > > --- a/meta/recipes-extended/bzip2/bzip2/Makefile.am > > +++ b/meta/recipes-extended/bzip2/bzip2/Makefile.am > > @@ -46,6 +46,7 @@ runtest: > > else echo "FAIL: sample2 decompress"; fi > > @if cmp sample3.tst sample3.ref; then echo "PASS: sample3 decompress";\ > > else echo "FAIL: sample3 decompress"; fi > > + ./bzip2-tests/run-tests.sh > > > > install-ptest: > > sed -n '/^runtest:/,/^install-ptest:/{/^install-ptest:/!p}' \ > > @@ -56,6 +57,7 @@ install-ptest: > > cp $(srcdir)/sample1.bz2 $(DESTDIR)/ > > cp $(srcdir)/sample2.bz2 $(DESTDIR)/ > > cp $(srcdir)/sample3.bz2 $(DESTDIR)/ > > + cp -rf $(srcdir)/../git $(DESTDIR)/bzip2-tests > > ln -s $(bindir)/bzip2 $(DESTDIR)/bzip2 > > > > install-exec-hook: > > diff --git a/meta/recipes-extended/bzip2/bzip2_1.0.8.bb > b/meta/recipes-extended/bzip2/bzip2_1.0.8.bb > > index 8e9b779..e8ec5c6 100644 > > --- a/meta/recipes-extended/bzip2/bzip2_1.0.8.bb > > +++ b/meta/recipes-extended/bzip2/bzip2_1.0.8.bb > > @@ -5,16 +5,25 @@ LZ77/LZ78-based compressors, and approaches the > performance of the PPM family of > > HOMEPAGE = "https://sourceware.org/bzip2/" > > SECTION = "console/utils" > > LICENSE = "bzip2" > > -LIC_FILES_CHKSUM = > "file://LICENSE;beginline=4;endline=37;md5=600af43c50f1fcb82e32f19b32df4664" > > - > > +LIC_FILES_CHKSUM = " > file://LICENSE;beginline=4;endline=37;md5=600af43c50f1fcb82e32f19b32df4664 > \ > > + > file://../git/go/LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707 \ > > + > file://../git/dotnetzip/License.txt;md5=9cb56871eed4e748c3bc7e8ff352a54f \ > > + > file://../git/dotnetzip/License.zlib.txt;md5=cc421ccd22eeb2e5db6b79e6de0a029f > \ > > + > file://../git/commons-compress/LICENSE.txt;md5=86d3f3a95c324c9479bd8986968f4327 > \ > > What's all this additional license info about? > Please explain in when replying as well as in the long log. > > Ans: > I don't have much knowledge about the licensing part so I populated all > the licenses which are present in the bzip2-tests source code. > can you please provide any suggestions on what basis we should take the > decision of the license population. > > You should use: > > LICENSE = "GPLv3+" > > since the only code is the run-tests.sh script and that > the license given in the script. > > The rest of the LICENSE information in the git repo seems > to have been copied from the packages where these compressed > _data_ files came from. Since we are not compiling any source, > we only need to have a LIC_FILES_CHKSUM entry for run-tests.sh. > We are simply using the compressed files as data so we can > ignore the license info. Ideally the upstream repo would remove > the misleading files but IANAL and I don't think it's a problem > for us really. It's probably worth explaining this in a sentence or > two in your commit log. > > > ========== > > Let me know if I missed anything here. > > I think there are a few changes to make for a v2. > > Hopefully you will write a commit log that explains the > changes that we have agreed to make. The idea is > that someone should be able to read the long log and > have a general idea of what the code changes are. > > Thanks for working on this ptest addition, it looks like it's > heading in the right direction and almost done now. > > ../Randy > > > *Thanks & Regards,* > Rahul Kumar > Software Engineer,Linux Solutions Engineering > Group,Montavista Software LLC > Email Id: rahulk@mvista.com > <https://plus.google.com/+CodeTwoSoftware> > > > On Fri, Apr 3, 2020 at 4:02 AM Randy MacLeod <randy.macleod@windriver.com> > wrote: > >> On 2020-04-02 7:10 a.m., Rahul Kumar wrote: >> > [YOCTO #13444] >> >> Thanks for contributing this work Rahul. >> >> It would be good if the long log explained the changes made >> in a sentence or two. I've made some comments and asked >> some questions inline below. I may have gone overboard but >> I hope you get the idea that we'd like to see not just the >> changes but the reason for the changes. >> >> Also, can you present the results of running: >> # ptest-runner bzip2 >> on qemux86-64 with kvm enabled in the long log? >> If there are tests that fail or are skipped >> comment on that even it it's to say that you don't know what is wrong. >> >> > >> > Signed-off-by: Rahul Kumar <rahulk@mvista.com> >> > --- >> > .../bzip2/0001-bzip2-modify-run-tests-script.patch | 220 >> +++++++++++++++++++++ >> > meta/recipes-extended/bzip2/bzip2/Makefile.am | 2 + >> > meta/recipes-extended/bzip2/bzip2_1.0.8.bb | 15 +- >> > 3 files changed, 234 insertions(+), 3 deletions(-) >> > create mode 100644 >> meta/recipes-extended/bzip2/bzip2/0001-bzip2-modify-run-tests-script.patch >> > >> > diff --git >> a/meta/recipes-extended/bzip2/bzip2/0001-bzip2-modify-run-tests-script.patch >> b/meta/recipes-extended/bzip2/bzip2/0001-bzip2-modify-run-tests-script.patch >> > new file mode 100644 >> > index 0000000..8ae3c4e >> > --- /dev/null >> > +++ >> b/meta/recipes-extended/bzip2/bzip2/0001-bzip2-modify-run-tests-script.patch >> > @@ -0,0 +1,220 @@ >> > +From 42e6258485030085285d4b30854bfb94bcf43880 Mon Sep 17 00:00:00 2001 >> > +From: Rahul Kumar <rahulk@mvista.com> >> > +Date: Mon, 30 Mar 2020 12:17:00 +0530 >> > +Subject: [PATCH] bzip2: modify run-tests script >> > + >> > +Upstream-Status: Inappropriate [ modify run-tests script for ptest >> infrastructure ] >> >> It seems that some of the changes are to make the tests less verbose and >> to 'tighten-up' the language and formatting used. Upstream might accept >> them, have you checked? If you change the status to Pending I think it >> would be better for now because that would force someone check on the >> progress at some point. >> >> > + >> > +modify run-tests script to write PASS/FAIL as expected by the ptest >> infrastructure >> > + >> > +Signed-off-by: Rahul Kumar <rahulk@mvista.com> >> > +--- >> > + run-tests.sh | 83 >> +++++++++++++++++++++++++++++++----------------------------- >> > + 1 file changed, 43 insertions(+), 40 deletions(-) >> > + >> > +diff --git a/run-tests.sh b/run-tests.sh >> > +index 1ba8c27..1eff62a 100755 >> > +--- a/run-tests.sh >> > ++++ b/run-tests.sh >> > +@@ -10,7 +10,7 @@ >> > + VALGRIND="valgrind" >> > + VALGRIND_ARGS="-q --error-exitcode=9" >> > + BZIP2="bzip2" >> > +-TESTS_DIR="." >> > ++TESTS_DIR="./bzip2-tests" >> >> Can you explain why you did this? Maybe upstream would accept it. >> >> > + IGNORE_MD5=0 >> > + >> > + for i in "$@" >> > +@@ -40,21 +40,21 @@ case $i in >> > + esac >> > + done >> > + >> > +-if ! type "valgrind" > /dev/null; then >> > ++if ! type "valgrind" > /dev/null 2>&1; then >> > + VALGRIND="" >> > + VALGRIND_ARGS="" >> > + fi >> > + >> > + echo "Testing ${BZIP2} in directory ${TESTS_DIR}" >> > + if [ "$VALGRIND" != "" ]; then >> > +- echo " using valgrind" >> > ++ echo "Using valgrind: Yes" >> > + else >> > +- echo " NOT using valgrind" >> > ++ echo "Using valgrind: No" >> > + fi >> > + if [[ ${IGNORE_MD5} -eq 0 ]]; then >> > +- echo " checking md5 sums" >> > ++ echo "Checking md5 sums: Yes" >> > + else >> > +- echo " NOT checking md5 sums" >> > ++ echo "Checking md5 sums: No" >> > + fi >> > + >> > + # Remove any left over tesfilecopies from previous runs first. >> > +@@ -76,16 +76,16 @@ while IFS= read -r -d '' bzfile; do >> > + echo "Processing ${bzfile}" >> > + >> > + # Decompress it. >> > +- echo " Decompress..." >> > ++ # echo " Decompress..." >> >> Without an explanation in the long log, I can't tell if this >> comment was removed intentionally or perhaps when you were debugging. >> I expect you have a good reason to remove it but an explaination would >> be helpful. >> >> > + rm -f "${file}" >> > +- ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -k -d -q ${bzfile} \ >> > +- || { echo "!!! bad decompress result $?"; >> > ++ ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -k -d -q ${bzfile} && { echo >> "PASS: ${bzfile} Decompress"; } \ >> > ++ || { echo "FAIL: ${bzfile} Decompress"; >> > + badtests=("${badtests[@]}" $"${bzfile} bad decompress >> result") >> > + nogood=$[${nogood}+1]; continue; } >> > + >> > + if [[ ${IGNORE_MD5} -ne 1 ]]; then >> > +- md5sum --check --status ${md5file} < ${file} \ >> > +- || { echo "!!! md5sum doesn't match decompressed file"; >> > ++ md5sum -c ${md5file} < ${file} && { echo "PASS: ${bzfile} md5sum >> Matched"; } \ >> > ++ || { echo "FAIL: ${bzfile} md5sum Matched"; >> > + badtests=("${badtests[@]}" $"${file} md5sum doesn't match") >> > + nogood=$[${nogood}+1]; continue; } >> > + fi >> > +@@ -93,20 +93,20 @@ while IFS= read -r -d '' bzfile; do >> > + # Compress and decompress a copy >> > + mv "${file}" "${copy}" >> > + rm -f "${bzcopy}" >> > +- echo " Recompress..." >> > +- ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -z -q -s ${copy} \ >> > +- || { echo "!!! bad compress result $?"; >> > ++ # echo " Recompress..." >> > ++ ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -z -q -s ${copy} && { echo >> "PASS: ${bzfile} Recompress "; } \ >> > ++ || { echo "FAIL: ${bzfile} Recompress"; >> > + badtests=("${badtests[@]}" $"${copy} bad result") >> > + nogood=$[${nogood}+1]; continue; } >> > +- echo " Redecompress..." >> > +- ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -d -q -s ${bzcopy} \ >> > +- || { echo "!!! bad (re)decompress result $?"; >> > ++ # echo " Redecompress..." >> > ++ ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -d -q -s ${bzcopy} && { echo >> "PASS: ${bzfile} Redecompress"; } \ >> > ++ || { echo "FAIL: ${bzfile} Redecompress"; >> > + badtests=("${badtests[@]}" $"${bzcopy} bad result") >> > + nogood=$[${nogood}+1]; continue; } >> > + >> > + if [[ ${IGNORE_MD5} -ne 1 ]]; then >> > +- md5sum --check --status ${md5file} < ${copy} \ >> > +- || { echo "!!! md5sum doesn't match (re)decompressed file"; >> > ++ md5sum -c ${md5file} < ${copy} && { echo "PASS: ${bzfile} md5sum >> Matched"; } \ >> > ++ || { echo "FAIL: ${bzfile} md5sum Matched"; >> > + badtests=("${badtests[@]}" $"${copy} md5sum doesn't match") >> > + nogood=$[${nogood}+1]; continue; } >> > + fi >> > +@@ -114,16 +114,16 @@ while IFS= read -r -d '' bzfile; do >> > + rm "${copy}" >> > + >> > + # Now do it all again in "small" mode. >> > +- echo " Decompress (small)..." >> > ++ # echo " Decompress (small)..." >> > + rm -f "${file}" >> > +- ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -k -d -q -s ${bzfile} \ >> > +- || { echo "!!! bad decompress result $?"; >> > ++ ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -k -d -q -s ${bzfile} &&{ >> echo "PASS: ${bzfile} Decompress (small)"; } \ >> > ++ || { echo "FAIL: ${bzfile} Decompress (small)"; >> > + badtests=("${badtests[@]}" $"${bzfile} bad decompress >> result") >> > + nogood=$[${nogood}+1]; continue; } >> > + >> > + if [[ ${IGNORE_MD5} -ne 1 ]]; then >> > +- md5sum --check --status ${md5file} < ${file} \ >> > +- || { echo "!!! md5sum doesn't match decompressed file"; >> > ++ md5sum -c ${md5file} < ${file} > /dev/null 2>&1 && { echo "PASS: >> ${bzfile} Md5sum Matched"; } \ >> > ++ || { echo "FAIL: ${bzfile} Md5sum Matched"; >> > + badtests=("${badtests[@]}" $"${file} md5sum doesn't match") >> > + nogood=$[${nogood}+1]; continue; } >> > + fi >> > +@@ -131,20 +131,20 @@ while IFS= read -r -d '' bzfile; do >> > + # Compress and decompress a copy >> > + mv "${file}" "${copy}" >> > + rm -f "${bzcopy}" >> > +- echo " Recompress (small)..." >> > +- ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -z -q -s ${copy} \ >> > +- || { echo "!!! bad compress result $?"; >> > ++ # echo " Recompress (small)..." >> > ++ ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -z -q -s ${copy} && { echo >> "PASS: ${bzfile} Recompress (small)"; } \ >> > ++ || { echo "FAIL: ${bzfile} Recompress (small)"; >> > + badtests=("${badtests[@]}" $"${copy} bad result") >> > + nogood=$[${nogood}+1]; continue; } >> > +- echo " Redecompress (small)..." >> > +- ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -d -q -s ${bzcopy} \ >> > +- || { echo "!!! bad (re)decompress result $?"; >> > ++ # echo " Redecompress (small)..." >> > ++ ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -d -q -s ${bzcopy} && { echo >> "PASS: ${bzfile} Redecompress (small)"; } \ >> > ++ || { echo "FAIL: ${bzfile} Redecompress (small)"; >> > + badtests=("${badtests[@]}" $"${bzcopy} bad result") >> > + nogood=$[${nogood}+1]; continue; } >> > + >> > + if [[ ${IGNORE_MD5} -ne 1 ]]; then >> > +- md5sum --check --status ${md5file} < ${copy} \ >> > +- || { echo "!!! md5sum doesn't match (re)decompressed file"; >> > ++ md5sum -c ${md5file} < ${copy} && { echo "PASS: ${bzfile} md5sum >> Matched"; } \ >> > ++ || { echo "FAIL: ${bzfile} md5sum : Miss Matched"; >> > + badtests=("${badtests[@]}" $"${copy} md5sum doesn't match") >> > + nogood=$[${nogood}+1]; continue; } >> > + fi >> > +@@ -169,14 +169,14 @@ nobad=0 >> > + badbad=0 >> > + while IFS= read -r -d '' badfile; do >> > + >> > +- echo "Processing ${badfile}" >> > ++ # echo "Processing ${badfile}" >> > + >> > +- echo " Trying to decompress..." >> > ++ # echo " Trying to decompress..." >> > + ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -k -d -q ${badfile} >> > + ret=$? >> > + >> > + if [[ ${ret} -eq 0 ]]; then >> > +- echo "!!! badness not detected" >> > ++ echo "FAIL: badness not detected" >> > + nobad=$[${nobad}+1] >> > + badtests=("${badtests[@]}" $"${badfile} badness not detected") >> > + continue >> > +@@ -185,18 +185,20 @@ while IFS= read -r -d '' badfile; do >> > + # Assumes "normal" badness is detected by exit code 1 or 2. >> > + # A crash or valgrind issue will be reported with something else. >> > + if [[ ${ret} != 1 ]] && [[ ${ret} != 2 ]]; then >> > +- echo "!!! baddness caused baddness in ${BZIP2}" >> > ++ echo "FAIL: baddness caused baddness in ${BZIP2}" >> It's 'badness': >> https://www.merriam-webster.com/thesaurus/badness >> > + badbad=$[${badbad}+1] >> > + badtests=("${badtests[@]}" $"${badfile} badness caused baddness") >> > + continue >> > ++ else >> > ++ echo "PASS: Correctly found data integrity errors in ${badfile} >> during decompress." >> > + fi >> > + >> > +- echo " Trying to decompress (small)..." >> > ++ # echo " Trying to decompress (small)..." >> > + ${VALGRIND} ${VALGRIND_ARGS} ${BZIP2} -k -d -q -s ${badfile} >> > + ret=$? >> > + >> > + if [[ ${ret} -eq 0 ]]; then >> > +- echo "!!! badness not detected" >> > ++ echo "FAIL: badness not detected " >> > + nobad=$[${nobad}+1] >> > + badtests=("${badtests[@]}" $"${badfile} badness not detected") >> > + continue >> > +@@ -205,10 +207,12 @@ while IFS= read -r -d '' badfile; do >> > + # Assumes "normal" badness is detected by exit code 1 or 2. >> > + # A crash or valgrind issue will be reported with something else. >> > + if [[ ${ret} != 1 ]] && [[ ${ret} != 2 ]]; then >> > +- echo "!!! baddness caused baddness in ${BZIP2}" >> > ++ echo "FAIL: baddness caused baddness in ${BZIP2}" >> > + badbad=$[${badbad}+1] >> > + badtests=("${badtests[@]}" $"${badfile} badness caused baddness") >> > + continue >> > ++ else >> > ++ echo "PASS: Correctly found data integrity errors in ${badfile} >> during decompress (small)" >> > + fi >> > + >> > + done < <(find ${TESTS_DIR} -type f -name \*\.bz2.bad -print0) >> > +@@ -234,5 +238,4 @@ if [[ ${results} -eq 0 ]]; then >> > + else >> > + echo "Bad results, look for !!! in the logs above" >> > + printf ' - %s\n' "${badtests[@]}" >> > +- exit 1 >> > + fi >> > +-- >> > +2.7.4 >> > diff --git a/meta/recipes-extended/bzip2/bzip2/Makefile.am >> b/meta/recipes-extended/bzip2/bzip2/Makefile.am >> > index dcf6458..f917b23 100644 >> > --- a/meta/recipes-extended/bzip2/bzip2/Makefile.am >> > +++ b/meta/recipes-extended/bzip2/bzip2/Makefile.am >> > @@ -46,6 +46,7 @@ runtest: >> > else echo "FAIL: sample2 decompress"; fi >> > @if cmp sample3.tst sample3.ref; then echo "PASS: sample3 >> decompress";\ >> > else echo "FAIL: sample3 decompress"; fi >> > + ./bzip2-tests/run-tests.sh >> > >> > install-ptest: >> > sed -n '/^runtest:/,/^install-ptest:/{/^install-ptest:/!p}' \ >> > @@ -56,6 +57,7 @@ install-ptest: >> > cp $(srcdir)/sample1.bz2 $(DESTDIR)/ >> > cp $(srcdir)/sample2.bz2 $(DESTDIR)/ >> > cp $(srcdir)/sample3.bz2 $(DESTDIR)/ >> > + cp -rf $(srcdir)/../git $(DESTDIR)/bzip2-tests >> > ln -s $(bindir)/bzip2 $(DESTDIR)/bzip2 >> > >> > install-exec-hook: >> > diff --git a/meta/recipes-extended/bzip2/bzip2_1.0.8.bb >> b/meta/recipes-extended/bzip2/bzip2_1.0.8.bb >> > index 8e9b779..e8ec5c6 100644 >> > --- a/meta/recipes-extended/bzip2/bzip2_1.0.8.bb >> > +++ b/meta/recipes-extended/bzip2/bzip2_1.0.8.bb >> > @@ -5,16 +5,25 @@ LZ77/LZ78-based compressors, and approaches the >> performance of the PPM family of >> > HOMEPAGE = "https://sourceware.org/bzip2/" >> > SECTION = "console/utils" >> > LICENSE = "bzip2" >> > -LIC_FILES_CHKSUM = >> "file://LICENSE;beginline=4;endline=37;md5=600af43c50f1fcb82e32f19b32df4664" >> > - >> > +LIC_FILES_CHKSUM = " >> file://LICENSE;beginline=4;endline=37;md5=600af43c50f1fcb82e32f19b32df4664 >> \ >> > + >> file://../git/go/LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707 \ >> > + >> file://../git/dotnetzip/License.txt;md5=9cb56871eed4e748c3bc7e8ff352a54f >> \ >> > + >> file://../git/dotnetzip/License.zlib.txt;md5=cc421ccd22eeb2e5db6b79e6de0a029f >> \ >> > + >> file://../git/commons-compress/LICENSE.txt;md5=86d3f3a95c324c9479bd8986968f4327 >> \ >> >> What's all this additional license info about? >> Please explain in when replying as well as in the long log. >> >> > + " >> > SRC_URI = "https://sourceware.org/pub/${BPN}/${BPN}-${PV}.tar.gz \ >> > + git://sourceware.org/git/bzip2-tests.git;name=bzip2-tests \ >> >> Mention how big this repo is in the long log. >> >> > file://configure.ac;subdir=${BP} \ >> > file://Makefile.am;subdir=${BP} \ >> > file://run-ptest \ >> > + file://0001-bzip2-modify-run-tests-script.patch;patchdir=${WORKDIR}/git >> \ >> > " >> > + >> > SRC_URI[md5sum] = "67e051268d0c475ea773822f7500d0e5" >> > SRC_URI[sha256sum] = >> "ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269" >> > >> > +SRCREV_bzip2-tests = "8b0198efda1603cf81fa2c7a9bb673dd22ae1661" >> > + >> > UPSTREAM_CHECK_URI = "https://www.sourceware.org/pub/bzip2/" >> > >> > PACKAGES =+ "libbz2" >> > @@ -39,7 +48,7 @@ do_install_ptest () { >> > >> > FILES_libbz2 = "${libdir}/lib*${SOLIBS}" >> > >> > -RDEPENDS_${PN}-ptest += "make" >> > +RDEPENDS_${PN}-ptest += "make bash" >> >> Does it really depend on bash or just a POSIX compliant /bin/sh ? >> If it requires bash, how bad are the scripts and can they be made >> POSIX compliant with the help of: >> https://www.shellcheck.net/ >> >> ../Randy >> >> > >> > PROVIDES_append_class-native = " bzip2-replacement-native" >> > BBCLASSEXTEND = "native nativesdk" >> > >> > >> > >> > >> >> >> -- >> # Randy MacLeod >> # Wind River Linux >> > > -- > # Randy MacLeod > # Wind River Linux > > [-- Attachment #2: Type: text/html, Size: 51949 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [OE-core] [PATCH] bzip2: Add test suite for bzip2 2020-04-14 1:48 ` Rahul Kumar @ 2020-04-15 0:23 ` Randy MacLeod 0 siblings, 0 replies; 6+ messages in thread From: Randy MacLeod @ 2020-04-15 0:23 UTC (permalink / raw) To: Rahul Kumar, openembedded-core On 2020-04-13 9:48 p.m., Rahul Kumar wrote: > Hi Randy, > > Thanks for your feedback. > As per your suggestion,I am working on that. > > currently my patch has Upstream-Status: Inappropriate. > > Since I am not aware of the patch submission process on bzip2, I posted > a query on bzip2 mailing list (2 days back) but I did not get any > response from there. > If they are not responding, in this case shall i keep Upstream-Status: > Inappropriate and send the v2 to oe-core Or should i wait for his > response? It's your call but I'd like to see: Upstream-Status: Submitted. as per: https://www.openembedded.org/wiki/Commit_Patch_Message_Guidelines#Patch_Header_Recommendations:_Upstream-Status Submitted [where] - Submitted to upstream, waiting approval - Optionally include where it was submitted, such as the author, mailing list, etc. > Or > Do you have any idea how to submit the patch for bzip2-test repo. No, I don't. If there's no answer, ping me here and we'll see if someone can find a connection to the upstream developer(s). ../Randy > > *Thanks & Regards,* > Rahul Kumar > Software Engineer,Linux Solutions Engineering > Group,Montavista Software LLC > Email Id: rahulk@mvista.com <mailto:rahulk@mvista.com> > <https://plus.google.com/+CodeTwoSoftware> -- # Randy MacLeod # Wind River Linux ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2020-04-15 0:23 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2020-04-02 11:10 [PATCH] bzip2: Add test suite for bzip2 Rahul Kumar 2020-04-02 22:32 ` [OE-core] " Randy MacLeod 2020-04-13 17:22 ` Rahul Kumar 2020-04-13 19:18 ` Randy MacLeod 2020-04-14 1:48 ` Rahul Kumar 2020-04-15 0:23 ` Randy MacLeod
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox