blob: a9f2334121c841ca43351eeb111d2c6fec76335f (
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
56
57
58
59
60
61
62
63
64
65
66
67
|
#!/bin/bash
set -e
. tests/lib
t-tstunt-parsechangelog
t-debpolicy
t-prep-newpackage example 1.0
cd $p
revision=1
git tag start
echo DUMMY >some-file
git add some-file
git commit -m some-file
taint=`git rev-parse HEAD`
t-policy-admin taint --global $taint dummy
git reset --hard HEAD~
t-commit 'Make something to autotaint'
t-dgit build
t-dgit push --new
autotaint=`t-git-get-ref "refs/tags/$tagpfx/$v"`
git reset --hard start
t-commit 'Thing which will autotaint'
t-dgit build
fifo=$tmp/sqlite-cmds
mkfifo $fifo
exec 3<>$fifo
sqlite3 -interactive $tmp/git/policy.sqlite3 0<$fifo 3>&- &
sqlite3_pid=$!
taintsout=$tmp/sqlite3.taints-out
echo >&3 'begin;';
echo >&3 ".output $taintsout"
echo >&3 'select * from taints;';
echo >&3 'create table dummy (x text);'
t-dgit build
while ! grep $taint $taintsout; do sleep 0.1; done
DGIT_RPD_TEST_DBLOOP_HOOK='
print STDERR "DBLOOP HOOK $sleepy\n";
$poldbh->sqlite_busy_timeout(2500);
if ($sleepy > 2) {
system '\''
set -ex
echo >'"$fifo"' "rollback;"
touch '"$tmp/sqlite3.rolled-back"'
'\'' and die "$? $!";
}
' \
t-dgit push --deliberately-not-fast-forward
exec 3>&-
wait $sqlite3_pid
ls $tmp/sqlite3.rolled-back
t-policy-admin list-taints | tee $tmp/taints-list | grep $autotaint
t-ok
|