/[soft]/rpm/urpmi/trunk/t/superuser--http.t
ViewVC logotype

Contents of /rpm/urpmi/trunk/t/superuser--http.t

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4851 - (show annotations) (download) (as text)
Fri Jun 8 18:50:40 2012 UTC (11 years, 10 months ago) by tv
File MIME type: application/x-troff
File size: 1725 byte(s)
(test_exotic_medium_name) skip test when building as root in /root

else File::Path::mkpath() in urpm::create_var_lib_rpm() tries to
create directories in /root/rpmbuild/urpmi*/t/root (but as nobody),
thus it stat every directory in $PWD, which fails (due to permissions!)
then try to create them which fails (due to directory already existing)

another solution would be to use a mkstemp()ed directory in TMPDIR...
1 #!/usr/bin/perl
2
3 use strict;
4 use lib '.', 't';
5 use helper;
6 use Test::More 'no_plan';
7 use Cwd 'getcwd';
8
9
10 need_root_and_prepare();
11 my $url = start_httpd();
12
13 my $name = 'various';
14
15 test($_) foreach 'various', 'various_no_subdir';
16 test_exotic_medium_name();
17
18 sub test {
19 my ($medium_name) = @_;
20
21 urpmi_addmedia("$medium_name $url/media/$medium_name");
22 urpmi($name);
23 is(`rpm -qa --root $::pwd/root`, "$name-1-1\n");
24 urpme($name);
25 urpmi_removemedia($medium_name);
26 }
27
28 sub test_exotic_medium_name {
29 if (getcwd() =~ m!^/root/!) {
30 warn "SKIPing test_exotic_medium_name() due to nobody having no access to /root/rpm*\n";
31 return;
32 }
33 my $medium_name = 'the medium (+name+)';
34 urpmi_addmedia("'$medium_name' $url/media/various");
35
36 # test urpmf/urpmq using synthesis
37 is(run_urpm_cmd('urpmf --summary .'), "various:various\n");
38 is(run_urpm_cmd('urpmq --summary various'), "various : various ( 1-1 )\n");
39
40 # test urpmf/urpmq using info.xml.lzma as user
41 mkdir 'root/tmp'; chmod 0777, 'root/tmp';
42 is(run_urpm_cmd_as_user('urpmf --sourcerpm .'), "various:various-1-1.src.rpm\n");
43 is(run_urpm_cmd_as_user('urpmq --sourcerpm various'), "various: various-1-1.src.rpm\n");
44
45 # test urpmf/urpmq using info.xml.lzma as root
46 is(run_urpm_cmd('urpmf --sourcerpm .'), "various:various-1-1.src.rpm\n");
47 is(run_urpm_cmd('urpmq --sourcerpm various'), "various: various-1-1.src.rpm\n");
48
49 urpmi($name);
50 is(`rpm -qa --root $::pwd/root`, "$name-1-1\n");
51 urpme($name);
52
53 urpmi_removemedia("'$medium_name'");
54 }
55
56 sub run_urpm_cmd_as_user {
57 my ($cmd) = @_;
58 my $full_cmd = "su nobody -c '" . urpm_cmd($cmd). "'";
59 warn "# $full_cmd\n";
60 `$full_cmd`;
61 }

  ViewVC Help
Powered by ViewVC 1.1.30