File: test-history

package info (click to toggle)
apt 3.1.13
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 22,764 kB
  • sloc: cpp: 71,085; sh: 31,750; xml: 5,553; perl: 217; python: 197; ansic: 191; makefile: 41
file content (134 lines) | stat: -rwxr-xr-x 3,780 bytes parent folder | download
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#!/bin/sh
set -e

TESTDIR="$(readlink -f "$(dirname "$0")")"
. "$TESTDIR/framework"
setupenvironment
configarchitecture 'amd64'

buildsimplenativepackage 'pkg1' 'amd64' '1' 'stable'
buildsimplenativepackage 'pkg2' 'amd64' '1' 'stable'


setupaptarchive

cathistory() {
    sed rootdir/var/log/apt/history.log -re 's/^(Commandline|Start-Date|End-Date):.*/\1: dummy/'
}


testsuccess aptget install pkg1

testequal "
Start-Date: dummy
Commandline: dummy
Install: pkg1:amd64 (1)
End-Date: dummy" cathistory

testsuccess aptget install pkg2 --comment="A test comment"

testequal "
Start-Date: dummy
Commandline: dummy
Install: pkg1:amd64 (1)
End-Date: dummy

Start-Date: dummy
Commandline: dummy
Comment: A test comment
Install: pkg2:amd64 (1)
End-Date: dummy" cathistory

normalizedinfo() {
    apt history-info 0 | sed -E \
    -e 's/^( *-?Start time *: ).*/\1dummy/' \
    -e 's/^( *-?End time *: ).*/\1dummy/' \
    -e 's|^( *-?Command line *: ).*/(.*)|\1\2|'
}

testsuccessequal "Transaction ID: 0
Start time: dummy
End time: dummy
Requested by: 
Command line: apt-get install pkg1
Packages changed:
    Install pkg1:amd64 (1)
" normalizedinfo
 
# replace aribtrary command line and date with "dummy".
normalizedlist() {
    apt history-list | sed -E 's/^([0-9]+)[[:space:]]+'\
'.*'\
'[0-9]{4}-[0-9]{2}-[0-9]{2}[[:space:]]+'\
'[0-9]{2}:[0-9]{2}:[0-9]{2}/'\
'\1  dummy                    dummy               /'
}

testsuccessequal "ID Command line             Date and Time          Action    Changes                  

0  dummy                    dummy                  Install   1                        
1  dummy                    dummy                  Install   1                        " normalizedlist

################################################################################
# Read previous history for manipulation
################################################################################

# Test history
# 0 - Install pkg1
# 1 - Install pkg2
# 2 - Remove pkg1 (undo ID 0)
# 3 - Install pkg1 (undo ID 2)
# 4 - Remove pkg1 (redo ID 2)
# 5 - Install pkg1 (rollback to ID 1)
# 6 - Remove pkg1 (rollback to ID 2)

testdpkginstalled pkg1
# undo the first package install
apt history-undo 0 -y >> /dev/null
testdpkgnotinstalled pkg1
# ...which generates a new id that we also undo
apt history-undo 2 -y >>/dev/null
testdpkginstalled pkg1

# redo the removal
apt history-redo 2 -y >> /dev/null
testdpkgnotinstalled pkg1

# rollback to ID 1 and it should be installed
apt history-rollback 1 -y >> /dev/null 
testdpkginstalled pkg1
# rollback to ID 2 and it should be removed
apt history-rollback 2 -y >> /dev/null
testdpkgnotinstalled pkg1
# rollback to ID 0 and it should be installed
apt history-rollback 0 -y >> /dev/null
testdpkginstalled pkg1
# rollback to ID 4 and it should be removed
apt history-rollback 4 -y >> /dev/null
testdpkgnotinstalled pkg1

################################################################################
# Reset history log
################################################################################

msgmsg "Actionless group"
cat > rootdir/var/log/apt/history.log << EOF
Start-Date: dummy
Commandline: install nothing
End-Date: dummy
EOF

testsuccessequal "ID Command line             Date and Time          Action    Changes                  

0  install nothing          dummy                            0                        " normalizedlist

testsuccessequal "Transaction ID: 0
Start time: dummy
End time: dummy
Requested by: 
Command line: install nothing
Packages changed:" normalizedinfo

testfailureequal "E: Incorrect usage, no ID was given." apt history-redo
testfailureequal "E: Incorrect usage, no ID was given." apt history-undo
testfailureequal "E: Incorrect usage, no ID was given." apt history-rollback