Page Menu
Home
GnuPG
Search
Configure Global Search
Log In
Files
F35336854
basic_all_hwfeature_combinations.sh
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Size
2 KB
Subscribers
None
basic_all_hwfeature_combinations.sh
View Options
#!/bin/bash
# Run basic tests with all HW feature combinations
# Copyright 2017 Jussi Kivilinna <jussi.kivilinna@iki.fi>
#
# This file is free software; as a special exception the author gives
# unlimited permission to copy and/or distribute it, with or without
# modifications, as long as this notice is preserved.
#
# This file is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
#
# Use BINEXT to set executable extension
# For example for Windows executables: BINEXT=.exe
if
[
"x
$BINEXT
"
!
=
"x"
]
&&
[
-e
"tests/version
$BINEXT
"
]
;
then
binext
=
"
$BINEXT
"
else
binext
=
""
fi
# Use BINPRE to set executable prefix
# For example to run Windows executable with WINE: BINPRE="wine "
if
[
"x
$BINPRE
"
!
=
"x"
]
;
then
binpre
=
"
$BINPRE
"
else
binpre
=
""
fi
# Use NJOBS to define number of parallel tasks
if
[
"x
$NJOBS
"
!
=
"x"
]
;
then
njobs
=
"
$NJOBS
"
else
# default to cpu count
ncpus
=
$(
nproc --all
)
if
[
"x@cpus"
!
=
"x"
]
;
then
njobs
=
$ncpus
else
# could not get cpu count, use 4 parallel tasks instead
njobs
=
4
fi
fi
get_supported_hwfeatures
()
{
$binpre
"tests/version
$binext
"
2
>
&
1
|
\
grep
"hwflist"
|
\
sed -e
's/hwflist://'
-e
's/:/ /g'
-e
's/\x0d/\x0a/g'
}
hwfs
=(
$(
get_supported_hwfeatures
)
)
retcodes
=()
optslist
=()
echo
"Total HW-feature combinations:
$((
1
<<
${#
hwfs
[@]
}
))
"
for
((
cbits
=
0
;
cbits <
(
1
<<
${#
hwfs
[@]
}
)
;
cbits++
))
;
do
for
((
mask
=
0
;
mask <
${#
hwfs
[@]
}
;
mask++
))
;
do
match
=
$((
(
1
<<mask) & cbits))
if [ "x$match" != "x0" ]; then
echo -n "--disable-hwf ${hwfs[$mask
]}
"
fi
done
echo ""
done | sort | (
# Run all combinations
nbasic=0
nwait=0
failed=0
output=""
while read opts; do
currn=
$nbasic
curr_jobs=(
$(
jobs
-p
)
)
while [ "
${#
curr_jobs
[@]
}
" -ge "
$njobs
" ]; do
# Wait for one job to complete
wait
${
retcodes
[
$nwait
]
}
retval=
$?
if [ "
x
$retval
" != "
x0
" ]; then
output="
$output
\n
ERROR: HWF disable failed:
[
${
optslist
[
$nwait
]
}
]
"
failed=1
else
output="
$output
\n
SUCCESS: HWF disable OK:
[
${
optslist
[
$nwait
]
}
]
"
fi
nwait=
$((
nwait+1
))
curr_jobs=(
$(
jobs
-p
)
)
if [
$failed
!= 0 ]; then
break
fi
done
if [
$failed
!= 0 ]; then
break
fi
nbasic=
$((
nbasic+1
))
echo "
[
$nbasic
/
$((
1
<<
${#
hwfs
[@]
}
))
]
Basic
test
with
'$opts'
"
optslist[
$currn
]="
$opts
"
nice nice
$binpre
"
tests/basic
$binext
"
$opts
& retcodes[
$currn
]=
$!
done
# Fetch remaining return codes
for ((; nwait < nbasic; nwait++)); do
# Wait for one job to complete
wait
${
retcodes
[
$nwait
]
}
retval=
$?
if [ "
x
$retval
" != "
x0
" ]; then
output="
$output
\n
ERROR: HWF disable failed:
[
${
optslist
[
$nwait
]
}
]
"
failed=1
else
output="
$output
\n
SUCCESS: HWF disable OK:
[
${
optslist
[
$nwait
]
}
]
"
fi
done
echo -e "
$output
"
exit
$failed
)
File Metadata
Details
Attached
Mime Type
text/x-shellscript
Expires
Fri, Feb 6, 8:10 AM (7 h, 4 m)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
c3/77/1b39854627a713f814194fe939e6
Attached To
rC libgcrypt
Event Timeline
Log In to Comment