On 11/08/2020 16:27, peter green wrote:
Package: fpc
Version: 3.2.0+dfsg-5
Severity: serious

The autopkgtest for fpc 3.2.0 is failing

Compiling utests.pp
PPU Loading 
/usr/lib/x86_64-linux-gnu/fpc/3.2.0/units/x86_64-linux/fcl-base/custapp.ppu
PPU Source: custapp.pp not available
Recompiling CustApp, checksum changed for 
/tmp/autopkgtest-lxc.6w1qz1lt/downtmp/build.rui/src/fpcsrc/rtl/units/x86_64-linux/sysutils.ppu
custapp.pp(14,58) Fatal: Can't find unit CustApp used by cgiapp
Fatal: Compilation aborted

It looks like the testsuite is trying (and failing) to use custapp.ppu from the 
package in conjunction with a
locally-built sysutils.ppu. Afaict the test needs to either use the sysutils 
from the package or build it's own custapp
unit.

Ok, tracked down that issue, it seems that building the makefiles also built 
the rtl, I have added a step in the
script to clean up any units built during the makefile build process before 
proceeding with the tests.

The second issue I ran into was that the version lists in 
fpcsrc/tests/utils/testsuite/utests.pp were
inconsistent with each other. This strongly suggest that upstream have never 
actually run the testsuite
on 3.2.0.

The third issue was that there were a number of unexpected failures.

+test/tarray15
+webtbs/tw12038
+webtbs/tw17904
+webtbs/tw22744b
+webtbf/tw25862
+webtbs/tw26481
+webtbs/tw2886
+webtbs/tw29957

Some of these seem to be newly introduced tests, but others do seem like they 
may be regressions.

Nevertheless the current state of the fpc ecosystem in testing is not really 
viable. Some rc bug fixes
are being blocked from migrating and many packages are present but not 
buildable on ppc64el in testing
since unstable has fpc on ppc64el but testing doesn't. We need 3.2.0 in testing 
to move forward.

As such if noone comes up with a better idea I intend to make an upload adding 
these to the list of
expected failures.

I have only tested on amd64 so far, but I will try and test on the other 
architectures before upload
and adjust the expected failures list for those architectures too.

Anyway a work in progress debdiff is attatched.
diff -Nru fpc-3.2.0+dfsg/debian/changelog fpc-3.2.0+dfsg/debian/changelog
--- fpc-3.2.0+dfsg/debian/changelog     2020-08-07 15:24:16.000000000 +0000
+++ fpc-3.2.0+dfsg/debian/changelog     2020-08-18 19:53:55.000000000 +0000
@@ -1,3 +1,23 @@
+fpc (3.2.0+dfsg-6) UNRELEASED; urgency=medium
+
+  * Make autopkgtest more verbose.
+  * Fix issue with autopkgtest trying to use a packaged fcl with a locally
+    built rtl by cleaning up the rtl that is built during makefile generation
+    (Closes: )
+  * Fix version lists in utests.pp
+  * Make autopkgtest use unified diff to report changes in failures.
+  * Update list of expected test failures
+    + add test/tarray15
+    + add webtbs/tw12038
+    + add webtbs/tw17904
+    + add webtbs/tw22744b
+    + add webtbf/tw25862
+    + add webtbs/tw26481
+    + add webtbs/tw2886
+    + add webtbs/tw29957
+
+ -- Peter Michael Green <plugw...@debian.org>  Tue, 18 Aug 2020 19:53:55 +0000
+
 fpc (3.2.0+dfsg-5) unstable; urgency=medium
 
   * Disable optimizations when building for m68k.
diff -Nru fpc-3.2.0+dfsg/debian/patches/fix-utest-version-lists.patch 
fpc-3.2.0+dfsg/debian/patches/fix-utest-version-lists.patch
--- fpc-3.2.0+dfsg/debian/patches/fix-utest-version-lists.patch 1970-01-01 
00:00:00.000000000 +0000
+++ fpc-3.2.0+dfsg/debian/patches/fix-utest-version-lists.patch 2020-08-18 
19:53:55.000000000 +0000
@@ -0,0 +1,25 @@
+Description: fix version lists in utests.pp
+ utests.pp has three version lists, the first defining an enumerated type
+ and then the second two defining textual versions and svn branches
+ for each enumeration entry.
+
+ Unfortunately the first list was not consistent with each other resulting
+ in a compile error. This patch expands the first list to match the
+ others.
+Author: Peter Michael Green <plugw...@debian.org>
+
+--- fpc-3.2.0+dfsg.orig/fpcsrc/tests/utils/testsuite/utests.pp
++++ fpc-3.2.0+dfsg/fpcsrc/tests/utils/testsuite/utests.pp
+@@ -211,7 +211,11 @@ type
+     ver_3_0_3,
+     ver_3_0_4,
+     ver_3_0_5,
+-    ver_3_1_1);
++    ver_3_1_1,
++    ver_3_2_0,
++    ver_3_2_1,
++    ver_3_3_1
++);
+ 
+ const
+   ver_trunk = high (known_versions);
diff -Nru fpc-3.2.0+dfsg/debian/patches/series 
fpc-3.2.0+dfsg/debian/patches/series
--- fpc-3.2.0+dfsg/debian/patches/series        2020-08-07 13:56:04.000000000 
+0000
+++ fpc-3.2.0+dfsg/debian/patches/series        2020-08-18 19:53:55.000000000 
+0000
@@ -22,3 +22,4 @@
 ncurses6.patch
 fix-FTBFS-on-m68k.patch
 Fix-liking-with-libc-when-PIC-is-enabled.patch
+fix-utest-version-lists.patch
diff -Nru fpc-3.2.0+dfsg/debian/source/timestamps 
fpc-3.2.0+dfsg/debian/source/timestamps
--- fpc-3.2.0+dfsg/debian/source/timestamps     2020-08-07 15:24:16.000000000 
+0000
+++ fpc-3.2.0+dfsg/debian/source/timestamps     2020-08-18 19:53:55.000000000 
+0000
@@ -212,6 +212,7 @@
 fpcsrc/rtl/unix/dl.pp 2020-05-14T13:54+00:00
 fpcsrc/rtl/unix/timezone.inc 2020-05-14T13:54+00:00
 fpcsrc/tests/test/units/sysutils/texpfncase.pp 2020-05-14T13:54+00:00
+fpcsrc/tests/utils/testsuite/utests.pp 2020-08-19T00:44+00:00
 fpcsrc/utils/fpcm/fpcmmain.pp 2020-05-14T13:54+00:00
 fpcsrc/utils/fpcm/fpmake.pp 2020-05-14T13:54+00:00
 fpcsrc/utils/fpcres/fpcres.pas 2020-05-14T13:54+00:00
diff -Nru fpc-3.2.0+dfsg/debian/tests/ref_fail_x86_64-linux 
fpc-3.2.0+dfsg/debian/tests/ref_fail_x86_64-linux
--- fpc-3.2.0+dfsg/debian/tests/ref_fail_x86_64-linux   2020-06-06 
08:34:37.000000000 +0000
+++ fpc-3.2.0+dfsg/debian/tests/ref_fail_x86_64-linux   2020-08-18 
19:53:55.000000000 +0000
@@ -6,6 +6,7 @@
 # code comment: this test will work only as soon as we have global dfa
 test/opt/tdfa8
 test/packages/webtbs/tw14265
+test/tarray15
 # pass instead of fail
 test/tcpstr2a
 test/thlp29
@@ -24,10 +25,16 @@
 # code comment: This test needs C libraries
 webtbs/tw0876
 Note: This test needs C libraries
+webtbs/tw12038
 webtbs/tw16161
 webtbs/tw17236
+webtbs/tw17904
+webtbs/tw22744b
 webtbs/tw24197
 webtbs/tw24863
+webtbs/tw26481
+webtbs/tw2886
+webtbs/tw29957
 webtbs/tw3930
 # pass instead of fail
 webtbs/tw4809
@@ -38,5 +45,6 @@
 # fails upstream with "-Fd" but not with "-Cg -O2 -Fd"
 # assembler test that doesn't fail...
 webtbf/tw22665b
+webtbf/tw25862
 # Maybe only fails under Kylix
 webtbf/tw3930a
diff -Nru fpc-3.2.0+dfsg/debian/tests/run-upstream-testsuite 
fpc-3.2.0+dfsg/debian/tests/run-upstream-testsuite
--- fpc-3.2.0+dfsg/debian/tests/run-upstream-testsuite  2020-06-06 
08:34:37.000000000 +0000
+++ fpc-3.2.0+dfsg/debian/tests/run-upstream-testsuite  2020-08-18 
19:53:26.000000000 +0000
@@ -3,7 +3,7 @@
 # It is licensed under the same license as the fpc package
 
 set -e # Make sure the test fails if a command fails
-
+echo starting run-upstream-testsuite
 FULL_TARGET=`fpc -iSP`-`fpc -iSO` # x86_64-linux
 FPC_VER=`fpc -iV`
 DEB_HOST_MULTIARCH=`dpkg-architecture -qDEB_HOST_MULTIARCH`
@@ -18,13 +18,18 @@
 else   
        MAKEMAKEFILES=true
 fi
-
+echo about to run debian/rules makefiles
 [ "$MAKEMAKEFILES" = "true" ] && debian/rules makefiles
-# Generate missing configuration file for testsuite
+echo debian/rules makefiles builds the rtl which caused problems later
+echo so clean up the rtl that was just built.
+find . -name '*.o' -delete
+find . -name '*.ppu' -delete
+
+echo Generate missing configuration file for testsuite
 [ -f ${UTESTS}.cfg ] || grep '^  Def' ${UTESTS}.pp > ${UTESTS}.cfg
 
-# If the make target is run without intervention, the units target is build and
-# installed, while we want to test with the installed units.
+echo If the make target is run without intervention, the units target is build 
and
+echo installed, while we want to test with the installed units.
 [ -d ${TESTUNITDIR} ] || mkdir ${TESTUNITDIR}
 for FILE in ${LIBDIR}/units/$FULL_TARGET/*/*.[op]* ; do
        [ -h ${TESTUNITDIR}/${FILE##*/} ] || ln -s ${FILE} ${TESTUNITDIR}
@@ -33,28 +38,28 @@
 echo Compiled > ${TESTUNITDIRROOT}/fpcunit-stamp.${FULL_TARGET}
 echo Compiled > ${TESTUNITDIRROOT}/packages-stamp.${FULL_TARGET}
 
-# Some tests need additional objects, lets make them first (why are they not
-# automatically build?)
+echo 'Some tests need additional objects, lets make them first (why are they 
not'
+echo 'automatically build?)'
 mkdir -p fpcsrc/tests/test/cg/obj/${FULL_TARGET##*-}/${FULL_TARGET%%-*} 
#linux/x86_64
 make -C fpcsrc/tests create_c_objects TEST_FPC=`which fpc` TEST_CCOMPILER=gcc
-# Run the real test suite; this doesn't fail on its own
+echo 'Run the real test suite; this does not fail on its own'
 LC_ALL=C.UTF-8 make -C fpcsrc/tests all TEST_FPC=`which fpc`
-# The next line just creates some nice output
+echo The next line just creates some nice output
 make -C fpcsrc/tests digest TEST_FPC=`which fpc`
 
-# Let's save some of the output
+echo Let\'s save some of the output
 if [ -n "${ADT_ARTIFACTS}" ] ; then
        cp -p fpcsrc/tests/output/${FULL_TARGET}/faillist ${ADT_ARTIFACTS}
        cp -p fpcsrc/tests/output/${FULL_TARGET}/log ${ADT_ARTIFACTS}
        cp -p fpcsrc/tests/output/${FULL_TARGET}/longlog ${ADT_ARTIFACTS}
 fi
 
-# Compare the new results with known results if we have them
+echo Compare the new results with known results if we have them
 REF_FILE=debian/tests/ref_fail_${FULL_TARGET}
 if [ -f ${REF_FILE} ] ; then
        echo
        echo Difference between expected failures and current failures:
-       diff ${REF_FILE} fpcsrc/tests/output/${FULL_TARGET}/faillist || true
+       diff -u ${REF_FILE} fpcsrc/tests/output/${FULL_TARGET}/faillist || true
        echo
        echo "Checking (and fail if so) for new failures:"
        if diff ${REF_FILE} fpcsrc/tests/output/${FULL_TARGET}/faillist | grep 
\>\  >/dev/null ; then
@@ -67,7 +72,7 @@
     echo "No reference file found for $FULL_TARGET. Please consider adding 
one."
 fi
 
-# For debugging, add clean target
+echo For debugging, add clean target
 if [ -n "$CLEAN" ] ; then
        make -C fpcsrc/tests digest TEST_FPC=`which fpc`
        debian/rules clean-makefiles

Reply via email to