mirror of
git://projects.qi-hardware.com/wernermisc.git
synced 2024-11-15 13:30:38 +02:00
ab5df0a8d8
This time, we even fail an assertion. Once again, it's because the state changes are out of sync with the "under consideration" stack.
99 lines
1.5 KiB
Bash
Executable File
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
|