line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
1
|
|
|
|
|
|
|
#!/usr/bin/perl -w |
2
|
|
|
|
|
|
|
|
3
|
|
|
|
|
|
|
# The script tests Arch::Session methods. |
4
|
|
|
|
|
|
|
|
5
|
1
|
|
|
1
|
|
841
|
use FindBin; |
|
1
|
|
|
|
|
1342
|
|
|
1
|
|
|
|
|
57
|
|
6
|
1
|
|
|
1
|
|
994
|
use lib "$FindBin::Bin/../perllib"; |
|
1
|
|
|
|
|
681
|
|
|
1
|
|
|
|
|
6
|
|
7
|
|
|
|
|
|
|
|
8
|
1
|
|
|
1
|
|
1329
|
use Test::More; |
|
1
|
|
|
|
|
21953
|
|
|
1
|
|
|
|
|
150
|
|
9
|
1
|
|
|
1
|
|
930
|
use Arch::Util qw(is_tla_functional); |
|
1
|
|
|
|
|
3
|
|
|
1
|
|
|
|
|
3217
|
|
10
|
|
|
|
|
|
|
|
11
|
1
|
50
|
|
|
|
7
|
plan skip_all => "No functional arch backend" unless is_tla_functional; |
12
|
0
|
|
|
|
|
0
|
plan tests => 37; |
13
|
|
|
|
|
|
|
|
14
|
0
|
|
|
|
|
0
|
use_ok("Arch::Session"); |
15
|
0
|
|
|
|
|
0
|
use_ok("Arch::Util", "run_tla", "save_file"); |
16
|
0
|
|
|
|
|
0
|
use_ok("Arch::Backend", "has_archive_setup_cmd"); |
17
|
0
|
|
|
|
|
0
|
use_ok("Arch::TempFiles"); |
18
|
|
|
|
|
|
|
|
19
|
0
|
|
|
|
|
0
|
my $tmp = Arch::TempFiles->new; |
20
|
0
|
|
|
|
|
0
|
my $dir = $tmp->dir; |
21
|
0
|
0
|
0
|
|
|
0
|
die "Internal: Arch::TempFiles::dir didn't create dir\n" unless $dir && -d $dir; |
22
|
|
|
|
|
|
|
|
23
|
0
|
|
|
|
|
0
|
$ENV{HOME} = $dir; |
24
|
|
|
|
|
|
|
|
25
|
|
|
|
|
|
|
sub run_tla0 (@) { |
26
|
0
|
|
|
0
|
|
|
my $cmd = "'tla " . join(" ", @_) . "'"; |
27
|
0
|
|
|
|
|
|
run_tla(@_); |
28
|
0
|
0
|
|
|
|
|
fail($cmd), die "$cmd failed: $?\n" if $?; |
29
|
0
|
|
|
|
|
|
pass($cmd); |
30
|
|
|
|
|
|
|
} |
31
|
|
|
|
|
|
|
|
32
|
0
|
|
|
|
|
0
|
my $archive = 'arch-perl@example.com--test'; |
33
|
0
|
|
|
|
|
0
|
my $userid = 'Arch Perl '; |
34
|
|
|
|
|
|
|
|
35
|
0
|
|
|
|
|
0
|
my $dont_setup = !has_archive_setup_cmd(); |
36
|
0
|
|
|
|
|
0
|
my $status; |
37
|
|
|
|
|
|
|
|
38
|
0
|
|
|
|
|
0
|
run_tla0("my-id", $userid); |
39
|
0
|
|
|
|
|
0
|
run_tla0("make-archive $archive $dir/$archive"); |
40
|
0
|
0
|
|
|
|
0
|
SKIP: { |
41
|
0
|
|
|
|
|
0
|
skip("this arch backend has no archive-setup", 2) if $dont_setup; |
42
|
0
|
|
|
|
|
0
|
run_tla0("archive-setup $archive/cat--brn--0"); |
43
|
0
|
|
|
|
|
0
|
run_tla0("archive-setup $archive/cat--brn--1"); |
44
|
|
|
|
|
|
|
} |
45
|
|
|
|
|
|
|
|
46
|
0
|
|
|
|
|
0
|
my $dir2 = "$dir/tree_a"; |
47
|
0
|
0
|
|
|
|
0
|
mkdir($dir2, 0777) or die "Can't mkdir $dir2: $!"; |
48
|
0
|
0
|
|
|
|
0
|
chdir($dir2) or die "Can't chdir $dir2: $!"; |
49
|
|
|
|
|
|
|
|
50
|
0
|
|
|
|
|
0
|
my $session = new Arch::Session; |
51
|
0
|
|
|
|
|
0
|
isa_ok($session, 'Arch::Session', "create Arch::Session instanse"); |
52
|
0
|
|
|
|
|
0
|
is($session->my_id, $userid, "read my-id"); |
53
|
0
|
|
|
|
|
0
|
is($session->my_id("bad_id"), 0, "set bad my-id"); |
54
|
0
|
|
|
|
|
0
|
is($session->my_id, $userid, "read my-id again"); |
55
|
0
|
|
|
|
|
0
|
is($session->my_id(''), 1, "set good my-id"); |
56
|
0
|
|
|
|
|
0
|
is($session->my_id, '', "read my-id one more time"); |
57
|
|
|
|
|
|
|
|
58
|
0
|
|
|
|
|
0
|
my $tree = $session->init_tree("$archive/cat--dog--0.1"); |
59
|
0
|
|
0
|
|
|
0
|
ok($tree && ref($tree) eq 'Arch::Tree', "create Arch::Tree instanse"); |
60
|
|
|
|
|
|
|
|
61
|
0
|
0
|
|
|
|
0
|
mkdir("foo", 0777) or die "Can't mkdir foo: $!"; |
62
|
0
|
|
|
|
|
0
|
save_file("foo/bar", "Just foo bar"); |
63
|
0
|
|
|
|
|
0
|
$status = $tree->add("foo", "foo/bar"); |
64
|
0
|
|
|
|
|
0
|
is($status, 0, "add 2 files"); |
65
|
0
|
|
|
|
|
0
|
$status = $tree->import; |
66
|
0
|
|
|
|
|
0
|
is($status, 0, "import"); |
67
|
|
|
|
|
|
|
|
68
|
0
|
|
|
|
|
0
|
$session->working_names($archive); |
69
|
0
|
|
|
|
|
0
|
is($session->working_name, $archive, "working_name"); |
70
|
0
|
|
|
|
|
0
|
my $categories = $session->categories; |
71
|
0
|
|
|
|
|
0
|
is(ref($categories), 'ARRAY', " categories"); |
72
|
0
|
|
|
|
|
0
|
is(@$categories, 1, " check number"); |
73
|
0
|
|
|
|
|
0
|
is($categories->[0], 'cat', " check first element"); |
74
|
|
|
|
|
|
|
|
75
|
0
|
0
|
|
|
|
0
|
SKIP: { |
76
|
0
|
|
|
|
|
0
|
skip("this arch backend removed empty branches", 8) if $dont_setup; |
77
|
0
|
|
|
|
|
0
|
$session->working_names($archive, 'cat'); |
78
|
0
|
|
|
|
|
0
|
is($session->working_name, "$archive/cat", "working_name"); |
79
|
0
|
|
|
|
|
0
|
my $branches = $session->branches; |
80
|
0
|
|
|
|
|
0
|
is(ref($branches), 'ARRAY', " branches"); |
81
|
0
|
|
|
|
|
0
|
is(@$branches, 2, " check number"); |
82
|
0
|
|
|
|
|
0
|
is($branches->[1], 'cat--dog', " check second element"); |
83
|
|
|
|
|
|
|
|
84
|
0
|
|
|
|
|
0
|
$session->working_names($archive, 'cat', 'brn'); |
85
|
0
|
|
|
|
|
0
|
is($session->working_name, "$archive/cat--brn", "working_name"); |
86
|
0
|
|
|
|
|
0
|
my $versions = $session->versions; |
87
|
0
|
|
|
|
|
0
|
is(ref($versions), 'ARRAY', " versions"); |
88
|
0
|
|
|
|
|
0
|
is(@$versions, 2, " check number"); |
89
|
0
|
|
|
|
|
0
|
is($versions->[1], "cat--brn--1", " check second element"); |
90
|
|
|
|
|
|
|
} |
91
|
|
|
|
|
|
|
|
92
|
0
|
|
|
|
|
0
|
$session->working_names($archive, 'cat', 'dog', '0.1'); |
93
|
0
|
|
|
|
|
0
|
is($session->working_name, "$archive/cat--dog--0.1", "working_name"); |
94
|
0
|
|
|
|
|
0
|
my $revisions = $session->revisions; |
95
|
0
|
|
|
|
|
0
|
is(ref($revisions), 'ARRAY', " revisions"); |
96
|
0
|
|
|
|
|
0
|
is(@$revisions, 1, " check number"); |
97
|
0
|
|
|
|
|
0
|
is($revisions->[0], "base-0", " check first element"); |
98
|
|
|
|
|
|
|
|
99
|
0
|
|
|
|
|
0
|
ok($session->is_archive_registered($archive), "is_archive_registered"); |
100
|
0
|
|
|
|
|
0
|
ok(!$session->is_archive_registered('some@thing--test'), "!is_archive_registered"); |
101
|
|
|
|
|
|
|
|
102
|
0
|
|
|
|
|
0
|
is_deeply($session->expanded_revisions, [ "$archive/cat--dog--0.1--base-0" ], "expanded_revisions"); |
103
|
0
|
|
|
|
|
0
|
is_deeply($session->expanded_versions, [ "$archive/cat--dog--0.1" ], "expanded_versions"); |
104
|
|
|
|
|
|
|
|
105
|
|
|
|
|
|
|
# TODO in tests/session-2: |
106
|
|
|
|
|
|
|
# get_revision_descs, expanded_archive_info, get_log, get_changeset |