summaryrefslogtreecommitdiffstats
path: root/t/README
blob: 41f483454bbdc208682a1a59a72cdb1390e45b20 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
The tests are running the following way:

01compile.t	ensures everything is valid perl
02create_pkgs.t	builds the various RPMs needed by the others tests
cfg.t		tests reading/writing the config files
pod.t		check for POD errors in files (optional)
superuser--*.t  tests needing to be run as root

The first tests just ensure that basic things in urpmi works.

you need to be root to run superuser--*.t,
with a normal user those tests are simply skipped.

They actually test both urpmi, URPM _and_ *rpm* extensively.
It had often found regressions in rpm itself that rpm's own testsuite didn't found.

superuser--file-conflicts.t runs only some patches on Mageia due to having a
downstream patch there

superuser--mirrorlist.t will only be run on Mageia as it needs a specific patch
that introduces Time::ZoneInfo->current_zone()

Usage:
------

use "make testall"

You can speed up things by using eatmydata which will prevent all the fsync()
& fdatasync() calls in librpm:
eatmydata make testall

If you didn't alter the tests data, you can further speedup a re-run by using:
[[ -d t/media ]] && mv -f t/02create_pkgs.t{,.i}

You can selectively run some tests:
# Run everything:
PERL_DL_NONLAZY=1 perl "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t 
# Only run everything orphans tests:
PERL_DL_NONLAZY=1 perl "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*orphans*.t
# If you want to see the output:
perl t/superuser--orphans.t


Layout:
=======

The testsuite layout is :
t/
  *.t the tests
  helper.pm common stuff for the tests
  data/  data for the tests
     SPECS/ spec files for generating test rpms
     rpm-*/ some old rpm v3 pkgs & some buggy rpms in order to check rpmlib itself
  media/ where test rpms & test repos are generated