1
0
mirror of git://projects.qi-hardware.com/wernermisc.git synced 2024-12-21 03:06:47 +02:00
wernermisc/qpkg/test/bug-adding
Werner Almesberger ab5df0a8d8 qpkg/test/bug-adding: found another manifestation of the same problem
This time, we even fail an assertion. Once again, it's because the state
changes are out of sync with the "under consideration" stack.
2010-11-22 21:49:50 -03:00

99 lines
1.5 KiB
Bash
Executable File

#!/bin/sh
. ./Common
###############################################################################
#
# See the comment at the end of "resolve" in prereq.c for details.
#
qpkg_fail "BUG: we don't clean up QPKG_ADDING, yielding false errors" \
prereq A <<EOF
Package: D
Version: 0
Architecture: test
Conflicts: B (= 1)
Filename: D_0
Package: C
Version: 0
Architecture: test
Depends: D
Filename: C_0
Package: B
Version: 1
Architecture: test
Depends: C
Filename: B_1
Package: B
Version: 0
Architecture: test
Depends: C
Filename: B_0
Package: A
Version: 0
Architecture: test
Depends: B
Filename: A_0
EOF
expect <<EOF
package C version 0 has cyclic dependency
EOF
###############################################################################
#
# We also fail (badly) to restore QPKG_ADDING after we moved on:
#
# A -> B, D
# B -> C_1
# C_0 -> B
# D conflicts with C_1
#
# "resolve" recurses as follows:
#
# A_0 -> B
# B_0|D -> C
# C_1|D -> next (we clear B here !)
# D_0 -> done
# C_0|D -> next (we try to clear B again)
#
qpkg_fail "BUG: we don't restore QPKG_ADDING, missing errors" \
prereq A <<EOF
Package: D
Version: 0
Architecture: test
Filename: D
Package: C
Version: 1
Architecture: test
Filename: C_1
Package: C
Version: 0
Architecture: test
Depends: B
Filename: C_0
Package: B
Version: 0
Architecture: test
Depends: C
Filename: B
Package: A
Version: 0
Architecture: test
Depends: B, D
Filename: A
EOF
expect <<EOF
qpkg: prereq.c:185: resolve: Assertion \`top->pkg->flags & QPKG_ADDING' failed.
Aborted
EOF