Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
varnish-cache
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Commits
Open sidebar
varnishcache
varnish-cache
Commits
12bad7a1
Commit
12bad7a1
authored
Jan 11, 2017
by
Poul-Henning Kamp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add experimental support for gcov (talk to me first!) and some
general cleanup and polishing.
parent
f6a1111e
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
158 additions
and
72 deletions
+158
-72
vtest.sh
tools/vtest.sh
+158
-72
No files found.
tools/vtest.sh
View file @
12bad7a1
...
@@ -33,11 +33,9 @@ set -e
...
@@ -33,11 +33,9 @@ set -e
export
MAKEFLAGS
=
"
${
MAKEFLAGS
:-
-j2
}
"
export
MAKEFLAGS
=
"
${
MAKEFLAGS
:-
-j2
}
"
export
TMPDIR
=
`
pwd
`
/tmp
# This tempdirectory must not be used by anything else.
mkdir
-p
tmp
# Do *NOT* set this to /tmp
export
TMPDIR
=
`
pwd
`
/_vtest_tmp
# Try to make varnish own it, in case we run as root
chown
varnish tmp
>
/dev/null 2>&1
||
true
# Message to be shown in result pages
# Message to be shown in result pages
# Max 10 char of [A-Za-z0-9/. _-]
# Max 10 char of [A-Za-z0-9/. _-]
...
@@ -49,12 +47,28 @@ WAITGOOD=60 # unit: WAITPERIOD
...
@@ -49,12 +47,28 @@ WAITGOOD=60 # unit: WAITPERIOD
WAITBAD
=
1
# unit: WAITPERIOD
WAITBAD
=
1
# unit: WAITPERIOD
MAXRUNS
=
"
${
MAXRUNS
:-
0
}
"
MAXRUNS
=
"
${
MAXRUNS
:-
0
}
"
#######################################################################
# NB: No User Serviceable Parts Beyond This Point
#######################################################################
enable_gcov
=
false
SSH_DST
=
"-p 203 vtest@varnish-cache.org"
SSH_DST
=
"-p 203 vtest@varnish-cache.org"
export
SRCDIR
=
`
pwd
`
/varnish-cache
export
REPORTDIR
=
`
pwd
`
/_report
export
BUILDDIR
=
${
BUILDDIR
:-${
SRCDIR
}}
export
VTEST_REPORT
=
"
${
REPORTDIR
}
/_log"
#######################################################################
#######################################################################
# Establish TMPDIR
mkdir
-p
${
TMPDIR
}
rm
-rf
${
TMPDIR
}
/
*
# Try to make varnish own TMPDIR, in case we run as root
chown
varnish
${
TMPDIR
}
>
/dev/null 2>&1
||
true
#######################################################################
# Establish the SRCDIR we build/run/test
if
!
(
cd
varnish-cache 2>/dev/null
)
;
then
if
!
(
cd
varnish-cache 2>/dev/null
)
;
then
git clone
\
git clone
\
...
@@ -62,30 +76,108 @@ if ! (cd varnish-cache 2>/dev/null) ; then
...
@@ -62,30 +76,108 @@ if ! (cd varnish-cache 2>/dev/null) ; then
varnish-cache
varnish-cache
fi
fi
export
SRCDIR
=
`
pwd
`
/varnish-cache
#######################################################################
# Submission of results
if
[
!
-f
vt_key.pub
]
;
then
if
[
!
-f
vt_key.pub
]
;
then
ssh-keygen
-t
ed25519
-N
""
-f
vt_key
ssh-keygen
-t
ed25519
-N
""
-f
vt_key
fi
fi
pack
()
(
cd
${
REPORTDIR
}
tar
czf - _log
\
`
grep
'^MANIFEST '
_log |
sort
-u
|
sed
's/^MANIFEST *//'
`
\
)
submit
()
(
ssh
\
-T
\
-o
StrictHostKeyChecking
=
no
\
-o
PasswordAuthentication
=
no
\
-o
NumberOfPasswordPrompts
=
0
\
-o
RequestTTY
=
no
\
-i
vt_key
\
${
SSH_DST
}
\
true
\
<
${
1
}
)
rm
-f
${
TMPDIR
}
/_report.tgz
touch
${
TMPDIR
}
/_report.tgz
if
!
submit
${
TMPDIR
}
/_report.tgz
;
then
echo
"Test submit failed"
echo
echo
"You probably need to email this VTEST specific ssh-key"
echo
"to phk@varnish-cache.org"
echo
sed
's/^/ /'
vt_key.pub
echo
exit
2
fi
#######################################################################
autogen
()
(
autogen
()
(
set
-e
set
-e
cd
"
${
BUILD
DIR
}
"
cd
"
${
SRC
DIR
}
"
nice
make distclean
>
/dev/null 2>&1
||
true
nice
make distclean
>
/dev/null 2>&1
||
true
nice
sh
"
${
SRCDIR
}
"
/autogen.des
nice
sh
"
${
SRCDIR
}
"
/autogen.des
)
)
makedistcheck
()
(
makedistcheck
()
(
set
-e
set
-e
cd
"
${
BUILD
DIR
}
"
cd
"
${
SRC
DIR
}
"
nice
make vtest-clean
nice
make vtest-clean
nice
make distcheck
nice
make distcheck
)
)
gcovtest
()
(
set
-x
if
[
`
id
-u
`
-eq
0
]
&&
su
-m
varnish
-c
'true'
;
then
su
-m
varnish
-c
"make check"
||
exit
1
cd
bin/varnishtest
./varnishtest
-i
tests/[ab]0000?.vtc tests/j
*
.vtc
||
exit
1
else
make check
||
exit
1
fi
)
makegcov
()
(
set
-x
cd
"
${
SRCDIR
}
"
export
CFLAGS
=
"-fprofile-arcs -ftest-coverage -fstack-protector -DDONT_DLCLOSE_VMODS"
CC
=
gcc49
export
MAKEFLAGS
=
-j1
find
.
-name
'*.gc??'
-print
| xargs
rm
-f
sh autogen.des
||
exit
1
make
||
exit
1
if
[
`
id
-u
`
-eq
0
]
;
then
chown
-R
varnish
.
|
true
fi
if
gcovtest
&&
make gcov_digest
;
then
retval
=
0
else
retval
=
1
fi
if
[
`
id
-u
`
-eq
0
]
;
then
chown
-R
root
.
||
true
fi
exit
${
retval
}
)
failedtests
()
(
failedtests
()
(
set
-e
set
-e
REPORTDIR
=
`
pwd
`
/_report
cd
"
${
SRCDIR
}
"
cd
varnish-cache
VERSION
=
`
./configure
--version
|
awk
'NR == 1 {print $NF}'
`
VERSION
=
`
./configure
--version
|
awk
'NR == 1 {print $NF}'
`
LOGDIR
=
varnish-
$VERSION
/_build/sub/bin/varnishtest/tests
LOGDIR
=
varnish-
$VERSION
/_build/sub/bin/varnishtest/tests
...
@@ -104,48 +196,20 @@ failedtests () (
...
@@ -104,48 +196,20 @@ failedtests () (
done
done
)
)
pack
()
(
cd
_report
tar
czf - _log
\
`
grep
'^MANIFEST '
_log |
sort
-u
|
sed
's/^MANIFEST *//'
`
\
)
submit
()
(
ssh
\
-T
\
-o
StrictHostKeyChecking
=
no
\
-o
PasswordAuthentication
=
no
\
-o
NumberOfPasswordPrompts
=
0
\
-o
RequestTTY
=
no
\
-i
vt_key
\
${
SSH_DST
}
\
true
\
<
${
1
}
)
rm
-f
_report.tgz
touch
_report.tgz
if
!
submit _report.tgz
;
then
echo
"Test submit failed"
echo
echo
"You probably need to email this VTEST specific ssh-key"
echo
"to phk@varnish-cache.org"
echo
sed
's/^/ /'
vt_key.pub
echo
exit
2
fi
orev
=
000
orev
=
000
waitnext
=
${
WAITBAD
}
waitnext
=
${
WAITBAD
}
i
=
0
i
=
0
last_day
=
`
date
+%d
`
while
[
$MAXRUNS
-eq
0
]
||
[
$i
-lt
$MAXRUNS
]
while
[
$MAXRUNS
-eq
0
]
||
[
$i
-lt
$MAXRUNS
]
do
do
i
=
$((
i
+
1
))
i
=
$((
i
+
1
))
(
cd
varnish-cache
&&
git pull
>
/dev/null 2>&1
||
true
)
(
cd
"
${
SRCDIR
}
"
&&
git pull
>
/dev/null 2>&1
||
true
)
rev
=
`
cd
varnish-cache
&&
git show
-s
--pretty
=
format:%H
`
rev
=
`
cd
"
${
SRCDIR
}
"
&&
git show
-s
--pretty
=
format:%H
`
if
[
"
${
waitnext
}
"
-gt
0
-a
"x
${
rev
}
"
=
"x
${
orev
}
"
]
;
then
if
[
"
${
waitnext
}
"
-gt
0
-a
"x
${
rev
}
"
=
"x
${
orev
}
"
]
;
then
sleep
${
WAITPERIOD
}
sleep
${
WAITPERIOD
}
waitnext
=
`
expr
${
waitnext
}
- 1
||
true
`
waitnext
=
`
expr
${
waitnext
}
- 1
||
true
`
...
@@ -154,44 +218,66 @@ do
...
@@ -154,44 +218,66 @@ do
waitnext
=
${
WAITBAD
}
waitnext
=
${
WAITBAD
}
orev
=
${
rev
}
orev
=
${
rev
}
if
!
[
-d
"
${
BUILDDIR
}
"
]
&&
!
mkdir
-p
"
${
BUILD
DIR
}
"
;
then
if
!
[
-d
"
${
SRCDIR
}
"
]
&&
!
mkdir
-p
"
${
SRC
DIR
}
"
;
then
echo
>
&2
"could not create
BUILDDIR
${
BUILD
DIR
}
"
echo
>
&2
"could not create
SRCDIR
${
SRC
DIR
}
"
exit
2
exit
2
fi
fi
rm
-rf
_report
rm
-rf
"
${
REPORTDIR
}
"
mkdir
_report
mkdir
"
${
REPORTDIR
}
"
export
LOG
=
_report/_log
echo
"VTEST 1.03"
>
${
LOG
}
if
!
$enable_gcov
;
then
echo
"DATE
`
date
+%s
`
"
>>
${
LOG
}
do_gcov
=
false
echo
"BRANCH trunk"
>>
${
LOG
}
elif
[
-f
_force_gcov
]
;
then
echo
"HOST
`
hostname
`
"
>>
${
LOG
}
do_gcov
=
true
echo
"UNAME
`
uname
-a
`
"
>>
${
LOG
}
rm
-f
_force_gcov
echo
"UGID
`
id
`
"
>>
${
LOG
}
elif
[
`
date
+%d
`
==
$last_day
]
;
then
do_gcov
=
false
elif
[
`
date
+%H
`
-lt
3
]
;
then
do_gcov
=
false
else
do_gcov
=
true
fi
echo
"VTEST 1.04"
>
${
VTEST_REPORT
}
echo
"DATE
`
date
+%s
`
"
>>
${
VTEST_REPORT
}
echo
"BRANCH trunk"
>>
${
VTEST_REPORT
}
echo
"HOST
`
hostname
`
"
>>
${
VTEST_REPORT
}
echo
"UNAME
`
uname
-a
`
"
>>
${
VTEST_REPORT
}
echo
"UGID
`
id
`
"
>>
${
VTEST_REPORT
}
if
[
-x
/usr/bin/lsb_release
]
;
then
if
[
-x
/usr/bin/lsb_release
]
;
then
echo
"LSB
`
lsb_release
-d
`
"
>>
${
LOG
}
echo
"LSB
`
lsb_release
-d
`
"
>>
${
VTEST_REPORT
}
else
else
echo
"LSB none"
>>
${
LOG
}
echo
"LSB none"
>>
${
VTEST_REPORT
}
fi
fi
echo
"MESSAGE
${
MESSAGE
}
"
>>
${
LOG
}
echo
"MESSAGE
${
MESSAGE
}
"
>>
${
VTEST_REPORT
}
echo
"GITREV
$rev
"
>>
${
LOG
}
echo
"GITREV
$rev
"
>>
${
VTEST_REPORT
}
if
!
autogen
>>
_report
/_autogen 2>&1
;
then
if
!
autogen
>>
${
REPORTDIR
}
/_autogen 2>&1
;
then
echo
"AUTOGEN BAD"
>>
${
LOG
}
echo
"AUTOGEN BAD"
>>
${
VTEST_REPORT
}
echo
"MANIFEST _autogen"
>>
${
LOG
}
echo
"MANIFEST _autogen"
>>
${
VTEST_REPORT
}
else
else
echo
"AUTOGEN GOOD"
>>
${
LOG
}
echo
"AUTOGEN GOOD"
>>
${
VTEST_REPORT
}
if
!
makedistcheck
>>
_report/_makedistcheck 2>&1
;
then
if
$do_gcov
;
then
echo
"MAKEDISTCHECK BAD"
>>
${
LOG
}
last_day
=
`
date
+%d
`
echo
"MANIFEST _autogen"
>>
${
LOG
}
if
makegcov
>>
${
REPORTDIR
}
/_makegcov 2>&1
;
then
echo
"MANIFEST _makedistcheck"
>>
${
LOG
}
mv
${
SRCDIR
}
/_gcov
${
REPORTDIR
}
/
failedtests
>>
${
LOG
}
echo
"MAKEGCOV GOOD"
>>
${
VTEST_REPORT
}
echo
"MANIFEST _gcov"
>>
${
VTEST_REPORT
}
else
echo
"MAKEGCOV BAD"
>>
${
VTEST_REPORT
}
echo
"MANIFEST _makegcov"
>>
${
VTEST_REPORT
}
fi
elif
!
makedistcheck
>>
${
REPORTDIR
}
/_makedistcheck 2>&1
;
then
echo
"MAKEDISTCHECK BAD"
>>
${
VTEST_REPORT
}
echo
"MANIFEST _autogen"
>>
${
VTEST_REPORT
}
echo
"MANIFEST _makedistcheck"
>>
${
VTEST_REPORT
}
failedtests
>>
${
VTEST_REPORT
}
else
else
echo
"MAKEDISTCHECK GOOD"
>>
${
LOG
}
echo
"MAKEDISTCHECK GOOD"
>>
${
VTEST_REPORT
}
waitnext
=
${
WAITGOOD
}
waitnext
=
${
WAITGOOD
}
fi
fi
fi
fi
echo
"VTEST END"
>>
${
LOG
}
echo
"VTEST END"
>>
${
VTEST_REPORT
}
pack
>
_report.tgz
pack
>
${
TMPDIR
}
/
_report.tgz
submit _report.tgz
submit
${
TMPDIR
}
/
_report.tgz
done
done
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment