[Pkg-pascal-devel] Bug#968245: fpc: autopkgtest failure.
peter green
plugwash at p10link.net
Wed Aug 19 01:47:22 BST 2020
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.
-------------- next part --------------
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 <plugwash at 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 <plugwash at 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
More information about the Pkg-pascal-devel
mailing list