This is a simple document to start writing down the various test cases and dep issues that our dependency checking tool _should_ catch and other issues that shouldn't cause failure.
Should Pass
The following are examples of situations in which depcheck should not fail - some are simple happy path tests, others are situations where we've had problems with depcheck incorrectly reporting failure
Simple happy path
This is a simple case in which an update does not cause problems
Existing Repo Contents
- foo-0.1-1.noarch
- no requires
Update Repo Contents
- bar-0.1-1.noarch
- requires: foo-0.1-1.fc99a
Conflicts
When two packages conflict, they aren't supposed to be installed together but this does not constitute a depsolving error
Existing Repo Contents
- foo-0.1-1.x86_64
- conflicts: bar
Update Repo Contents
- bar-0.1-1.x86_64
- conflicts: foo
Strange conflict
This is a bit of a corner case that we've hit before where one arch's package conflicts with a subpackage of another arch. This shouldn't fail because you can't actually install them at the same time
see https://fedorahosted.org/autoqa/ticket/328
Existing Repo Contents
- foo-0.1-1.x86_64
- conflicts: foo-extras.i386
Update Repo Contents
- foo-0.1-1.i386
- foo-extras-0.1-1.x86_64
- foo-extras-0.1-1.i386
Happy Path Multilib
This is a normal multilib update
Existing Repo Contents
- foo-0.1-1.x86_64
- foo-0.1-1.i386
Update Repo Contents
- foo-0.2-1.x86_64
- foo-0.2-1.i386
Should Fail
These are the scenarios in which depcheck should fail and are examples of things that we don't want to get into the repositories.
Simple version conflict
Existing Repo Contents
- foo-0.1-1.noarch
- no requires
- bar-0.1-1.noarch
- requires: foo-0.1-1.noarch
Update Repo Contents
- bar-0.2-1.noarch
- requires: foo-0.2-1.noarch
Basic Multilib Fail
Existing Repo Contents
- foo-0.1-1.x86_64
- foo-0.1-1.i386
Update Repo Contents
- foo-0.2-1.x86_64
Missing Package Requires
Existing Repo Contents
- foo-0.1-1.x86_64
- no requires
Update Repo Contents
- foo-0.2-1.x86_64
- requires: bar-0.1-1.x86_64
Missing File Requires
Existing Repo Contents
- foo-0.1-1.x86_64
- no requires
Update Repo Contents
- foo-0.2-1.x86_64
- requires: libbar.so
Dropped Provides
Existing Repo Contents
- foo-0.1-1.x86_64
- requires: libbbar.so
- bar-0.1-1.x86_64
- provides: libbar.so
Update Repo Contents
- bar-0.2-1.x86_64
- provides: none