1
0
mirror of git://projects.qi-hardware.com/wernermisc.git synced 2024-11-15 10:18:28 +02:00
wernermisc/qpkg/test/bug-adding

99 lines
1.5 KiB
Plaintext
Raw Normal View History

#!/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