From Fedora Project Wiki

< User:Tflink

Revision as of 18:54, 8 November 2013 by Tflink (talk | contribs) (initial set of scenarios for depcheck pass/failure)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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