libtest.lib: new library for test framework
Signed-off-by: Davide Madrisan <davide.madrisan@gmail.com>
This commit is contained in:
parent
055aa310d9
commit
a50a7d17d7
13
ChangeLog
13
ChangeLog
@ -67,6 +67,19 @@ Changes in version 1.12.0
|
||||
* pck-update - Davide Madrisan:
|
||||
Do not reinitialize the tests counter before executing a new test battery.
|
||||
|
||||
+ improvement
|
||||
* lib/libtest.lib - Davide Madrisan:
|
||||
New library containing the test framwork code and functions.
|
||||
|
||||
* lib/Makefile - Davide Madrisan:
|
||||
Updated by adding the library libtest.lib.
|
||||
|
||||
* pck-update - Davide Madrisan:
|
||||
Move code for test to the new library libtest.lib.
|
||||
|
||||
* i18n - Davide Madrisan:
|
||||
Updated. Add a .po file for libtest.lib.
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
Changes in version 1.10.0
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Makefile for autospec
|
||||
# Copyright (C) 2008,2010 by Davide Madrisan <davide.madrisan@gmail.com>
|
||||
# Copyright (C) 2008,2010,2012 by Davide Madrisan <davide.madrisan@gmail.com>
|
||||
|
||||
# This program is free software; you can redistribute it and/or modify it under
|
||||
# the terms of version 2 of the GNU General Public License as published by the
|
||||
@ -18,7 +18,8 @@ srcdir = ..
|
||||
|
||||
include $(srcdir)/Makefile.env
|
||||
|
||||
pck_libs := libapse.lib libcfg.lib libmsgmng.lib libnetwork.lib libspec.lib README.API
|
||||
pck_libs := libapse.lib libcfg.lib libmsgmng.lib libnetwork.lib libspec.lib \
|
||||
libtest.lib README.API
|
||||
pck_libs_infiles := $(wildcard *.in)
|
||||
|
||||
all:
|
||||
|
156
lib/libtest.lib.in
Normal file
156
lib/libtest.lib.in
Normal file
@ -0,0 +1,156 @@
|
||||
#!/bin/bash
|
||||
# libtest.lib -- @package@ library used by the test framework
|
||||
# Copyright (C) 2012 Davide Madrisan <davide.madrisan@gmail.com>
|
||||
|
||||
[ -z "$BASH" ] || [ ${BASH_VERSION:0:1} -lt 3 ] &&
|
||||
{ echo $"this script requires bash version 3 or better" >&2 && exit 1; }
|
||||
|
||||
me=(${0##*/} "@version@" "@date@")
|
||||
|
||||
[ -r @libdir@/libmsgmng.lib ] ||
|
||||
{ echo "$me: "$"library not found"": @libdir@/libmsgmng.lib" 1>&2
|
||||
exit 1; }
|
||||
. @libdir@/libmsgmng.lib
|
||||
|
||||
if [[ -z "$LANG" && -r /etc/sysconfig/i18n ]]; then
|
||||
. /etc/sysconfig/i18n
|
||||
[ "$LANG" ] && export LANG
|
||||
fi
|
||||
TEXTDOMAIN="libtest"; export TEXTDOMAIN
|
||||
|
||||
[ -n "$testdir" ] ||
|
||||
notify.error "\`testdir': "$"unset in the configuration files"
|
||||
[ -d "$testdir" ] ||
|
||||
notify.error $"no such file or directory"": \`$testdir'"
|
||||
|
||||
# do parse the list of skipped test to set 'ignore_test_list_value[]'
|
||||
ignore_test_list_value=()
|
||||
OIFS="$IFS"; IFS=','
|
||||
for token in $ignore_test_list; do
|
||||
IFS='='; set -- $token
|
||||
ignore_test_list_value[${#ignore_test_list_value[*]}]="$1";
|
||||
IFS=','
|
||||
done
|
||||
IFS="$OIFS"
|
||||
notify.debug "ignore_test_list_value = (${ignore_test_list_value[*]})"
|
||||
|
||||
# function test.rpms_extract()
|
||||
# extract the files contained in all the rpm archives build by
|
||||
# by a single specfile
|
||||
# args:
|
||||
# -i|--infofile the file containing infos about packages to extract
|
||||
# -t|--tmpdir the directory where the files will be extracted to
|
||||
function test.rpms_extract() {
|
||||
local rpminfofile tmpextractdir
|
||||
TEMP=`LC_ALL=C getopt \
|
||||
-o i:t: --long infofile:,tmpdir: -n "$FUNCNAME" -- "$@"`
|
||||
[[ $? = 0 ]] || return 1
|
||||
eval set -- "$TEMP"
|
||||
|
||||
while :; do
|
||||
case "$1" in
|
||||
-i|--infofile)
|
||||
rpminfofile="$2"
|
||||
shift
|
||||
;;
|
||||
-t|--tmpdir)
|
||||
tmpextractdir="$2"
|
||||
shift
|
||||
;;
|
||||
--) shift; break ;;
|
||||
*) notify.error $"\
|
||||
(bug)"" -- $FUNCNAME: "$"\`getopt' error" ;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
[ "$rpminfofile" ] || notify.error $"\
|
||||
(bug)"" -- $FUNCNAME: "$"missing mandatory arg"" (--infofile)"
|
||||
[ -r "$rpminfofile" ] || notify.error $"\
|
||||
(bug)"" -- $FUNCNAME: "$"cannot read"" \`$rpminfofile'"
|
||||
|
||||
[ "$tmpextractdir" ] || notify.error $"\
|
||||
(bug)"" -- $FUNCNAME: "$"missing mandatory arg"" (--tmpdir)"
|
||||
[ -d "$tmpextractdir" ] || notify.error $"\
|
||||
(bug)"" -- $FUNCNAME: "$"no such file or directory"" \`$tmpextractdir'"
|
||||
|
||||
. $rpminfofile
|
||||
|
||||
local i=0
|
||||
for pck in ${rpmpkg_name[@]}; do
|
||||
[[ -e "$pck" ]] || notify.error $"package not found"": \`$pck'"
|
||||
|
||||
mkdir -p $tmpextractdir/$i 2>/dev/null
|
||||
[ $? -eq 0 ] || notify.error $"\
|
||||
can't create temporary directory"": $tmpextractdir/$i"
|
||||
|
||||
pushd $tmpextractdir/$i >/dev/null
|
||||
rpm2cpio $pck > rpm_extract_tmp.cpio
|
||||
[ $? -eq 0 ] ||
|
||||
notify --error $"cannot extract files from rpm archive"
|
||||
|
||||
cpio --quiet --extract --make-directories < rpm_extract_tmp.cpio
|
||||
[ $? -eq 0 ] ||
|
||||
notify --error $"cannot extract files from cpio archive"
|
||||
|
||||
rm -f rpm_extract_tmp.cpio
|
||||
popd >/dev/null
|
||||
let "i += 1"
|
||||
done
|
||||
}
|
||||
|
||||
function test.skip() {
|
||||
local test n found
|
||||
|
||||
test="$1"
|
||||
let "found = 0"
|
||||
|
||||
for n in ${ignore_test_list_value[*]}; do
|
||||
[ "$n" = "$test" ] && let "found = 1"
|
||||
done
|
||||
|
||||
return $((!$found))
|
||||
}
|
||||
|
||||
function test.num2str() {
|
||||
[ $test_number -le 9 ] && echo " $test_number" || echo " $test_number"
|
||||
}
|
||||
|
||||
function test.runall() {
|
||||
local ARGS
|
||||
ARGS=`LC_ALL=C getopt \
|
||||
-o d: --long testdir: \
|
||||
-n "$FUNCNAME" -- "$@"`
|
||||
[ $? = 0 ] || notify.error $"(bug)"" -- $FUNCNAME: "$"\`getopt' error"
|
||||
|
||||
local testdir
|
||||
|
||||
eval set -- "$ARGS"
|
||||
while :; do
|
||||
case "$1" in
|
||||
-d|--testdir)
|
||||
testdir="$2"
|
||||
shift
|
||||
;;
|
||||
--) shift; break ;;
|
||||
*) notify.error $"\
|
||||
(bug)"" -- $FUNCNAME: "$"\`getopt' error: bad command \`$1'" ;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
[ -n "$testdir" ] ||
|
||||
notify.error "\`testdir': "$"unset in the configuration files"
|
||||
[ -d "$testdir" ] ||
|
||||
notify.error $"no such file or directory"": \`$testdir'"
|
||||
|
||||
local test_number=1
|
||||
local fname
|
||||
|
||||
for fname in $testdir/*; do
|
||||
notify.debug "$FUNCNAME: running test: \`$fname'"
|
||||
. $fname
|
||||
alltests --infofile "$tmpextractdir/rpmpkg.info" \
|
||||
--tmpdir "$tmpextractdir"
|
||||
done
|
||||
}
|
@ -2629,8 +2629,6 @@ pck_newver = \"$pck_newver\", pck_newrel = \"$pck_newrel\""
|
||||
[[ "$pck_newver" != $SPEC_VERSION ]] &&
|
||||
notify.error $"release for new package required"
|
||||
|
||||
local i
|
||||
|
||||
local pck_rpmversion
|
||||
# use the value provided by user via command line when available
|
||||
pck_rpmversion=${pck_newver:-$SPEC_VERSION}
|
||||
@ -2652,6 +2650,7 @@ pck_newver = \"$pck_newver\", pck_newrel = \"$pck_newrel\""
|
||||
# - rpmpkg_name[] : name of the rpm packages
|
||||
# - data saved in '$infofile'
|
||||
|
||||
local i
|
||||
local pcknew_name
|
||||
> $tmpextractdir/rpmpkg.info
|
||||
i=0
|
||||
@ -2677,95 +2676,17 @@ $pck-$pck_rpmversion-$pck_rpmrelease$DISTRO_rpm.$target_cpu.rpm"
|
||||
let "i += 1"
|
||||
done
|
||||
|
||||
# function rpms.extract()
|
||||
# extract the files contained in all the rpm archives build by
|
||||
# by a single specfile
|
||||
# args:
|
||||
# -i|--infofile the file containing infos about packages to extract
|
||||
# -t|--tmpdir the directory where the files will be extracted to
|
||||
function rpms.extract() {
|
||||
local rpminfofile tmpextractdir
|
||||
TEMP=`LC_ALL=C getopt \
|
||||
-o i:t: --long infofile:,tmpdir: -n "$FUNCNAME" -- "$@"`
|
||||
[[ $? = 0 ]] || return 1
|
||||
eval set -- "$TEMP"
|
||||
[ -r @libdir@/libtest.lib ] ||
|
||||
{ echo "$me: "$"library not found"": @libdir@/libtest.lib" 1>&2
|
||||
exit 1; }
|
||||
. @libdir@/libtest.lib
|
||||
|
||||
while :; do
|
||||
case "$1" in
|
||||
-i|--infofile)
|
||||
rpminfofile="$2"
|
||||
shift
|
||||
;;
|
||||
-t|--tmpdir)
|
||||
tmpextractdir="$2"
|
||||
shift
|
||||
;;
|
||||
--) shift; break ;;
|
||||
*) notify.error $"\
|
||||
(bug)"" -- $FUNCNAME: "$"\`getopt' error" ;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
[ "$rpminfofile" ] || notify.error $"\
|
||||
(bug)"" -- $FUNCNAME: "$"missing mandatory arg"" (--infofile)"
|
||||
[ -r "$rpminfofile" ] || notify.error $"\
|
||||
(bug)"" -- $FUNCNAME: "$"cannot read"" \`$rpminfofile'"
|
||||
|
||||
[ "$tmpextractdir" ] || notify.error $"\
|
||||
(bug)"" -- $FUNCNAME: "$"missing mandatory arg"" (--tmpdir)"
|
||||
[ -d "$tmpextractdir" ] || notify.error $"\
|
||||
(bug)"" -- $FUNCNAME: "$"no such file or directory"" \`$tmpextractdir'"
|
||||
|
||||
. $rpminfofile
|
||||
|
||||
i=0
|
||||
for pck in ${rpmpkg_name[@]}; do
|
||||
[[ -e "$pck" ]] || notify.error $"\
|
||||
package not found"": \`$pck'"
|
||||
|
||||
mkdir -p $tmpextractdir/$i 2>/dev/null
|
||||
[ $? -eq 0 ] || notify.error $"\
|
||||
can't create temporary directory"": $tmpextractdir/$i"
|
||||
|
||||
pushd $tmpextractdir/$i >/dev/null
|
||||
rpm2cpio $pck > rpm_extract_tmp.cpio
|
||||
[ $? -eq 0 ] ||
|
||||
notify --error $"cannot extract files from rpm archive"
|
||||
|
||||
cpio --quiet --extract --make-directories < rpm_extract_tmp.cpio
|
||||
[ $? -eq 0 ] ||
|
||||
notify --error $"cannot extract files from cpio archive"
|
||||
|
||||
rm -f rpm_extract_tmp.cpio
|
||||
popd >/dev/null
|
||||
let "i += 1"
|
||||
done
|
||||
}
|
||||
|
||||
rpms.extract \
|
||||
test.rpms_extract \
|
||||
--infofile "$tmpextractdir/rpmpkg.info" \
|
||||
--tmpdir "$tmpextractdir" || exit 1
|
||||
|
||||
# execute all the available tests...
|
||||
|
||||
[ -n "$testdir" ] ||
|
||||
notify.error "\`testdir': "$"unset in the configuration files"
|
||||
[ -d "$testdir" ] ||
|
||||
notify.error $"no such file or directory"": \`$testdir'"
|
||||
|
||||
function test_number_str() {
|
||||
[ $test_number -le 9 ] &&
|
||||
echo " $test_number" || echo " $test_number"
|
||||
}
|
||||
|
||||
( local test_number=1
|
||||
for fname in $testdir/*; do
|
||||
notify.debug "$FUNCNAME: running test: \`$fname'"
|
||||
. $fname
|
||||
alltests --infofile "$tmpextractdir/rpmpkg.info" \
|
||||
--tmpdir "$tmpextractdir"
|
||||
done )
|
||||
test.runall --testdir "$testdir"
|
||||
|
||||
# temporary files cleanup
|
||||
rm -fr $tmpextractdir
|
||||
|
47
po/it/libtest.po
Normal file
47
po/it/libtest.po
Normal file
@ -0,0 +1,47 @@
|
||||
# translation of it.po to Italiana
|
||||
# Copyright (C) 2012 Davide Madrisan
|
||||
# Davide Madrisan <davide.madrisan@gmail.com>
|
||||
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: it\n"
|
||||
"POT-Creation-Date: 2012-05-19 12:04+0200\n"
|
||||
"PO-Revision-Date: 2012-05-19 12:04+0200\n"
|
||||
"Last-Translator: Davide Madrisan <davide.madrisan@gmail.com>\n"
|
||||
"Language-Team: Italiana <it@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
# lib/libtest
|
||||
|
||||
msgid "\\`getopt' error"
|
||||
msgstr "errore in \\`getopt'"
|
||||
|
||||
msgid "\\`getopt' error: bad command \\`$1'"
|
||||
msgstr "errore in \\`getopt': comando errato \\`$1'"
|
||||
|
||||
msgid "missing mandatory arg"
|
||||
msgstr "parametro mancante"
|
||||
|
||||
msgid "cannot read"
|
||||
msgstr "impossibile leggere"
|
||||
|
||||
msgid "no such file or directory"
|
||||
msgstr "file o cartella non trovata"
|
||||
|
||||
msgid "package not found"
|
||||
msgstr "pacchetto non trovato"
|
||||
|
||||
msgid "can't create temporary directory"
|
||||
msgstr "impossibile creare la cartella temporanea"
|
||||
|
||||
msgid "cannot extract files from rpm archive"
|
||||
msgstr "impossibile estrarre i file dall'archivio rpm"
|
||||
|
||||
msgid "cannot extract files from cpio archive"
|
||||
msgstr "impossibile estrarre i file dall'archivio cpio"
|
||||
|
||||
msgid "unset in the configuration files"
|
||||
msgstr "non configurato nei file di configurazione"
|
||||
|
@ -69,7 +69,9 @@ function alltests() {
|
||||
# - symlinks to files in the buildroot directory for rpm
|
||||
# (usable for a symlink attacks)
|
||||
# - symlinks not pointing to existing files
|
||||
notify.note "$(test_number_str). ${NOTE}"\
|
||||
|
||||
test.skip $test_number || {
|
||||
notify.note "$(test.num2str). ${NOTE}"\
|
||||
$"checking for wrong symbolic links""${NORM}..."
|
||||
|
||||
# local rpmbuildroot=`sed -n "/%description/q;{
|
||||
@ -107,21 +109,24 @@ wrong symlink"": \`${NOTE}${f/./}${NORM}' --> \`${NOTE}$(readlink $f)${NORM}'"
|
||||
done
|
||||
popd >/dev/null
|
||||
let "i += 1"
|
||||
done
|
||||
done; }
|
||||
test_number=$(($test_number + 1))
|
||||
|
||||
# check for `%buildroot' strings
|
||||
test.skip $test_number || {
|
||||
if [ "$rpm_ignores_buildroot" = 1 ]; then
|
||||
[ "$SPEC_BUILDROOT" ] &&
|
||||
if [ "$SPEC_BUILDROOT" ]; then
|
||||
notify.note \
|
||||
"$(test_number_str). ${NOTE}"\
|
||||
"$(test.num2str). ${NOTE}"\
|
||||
$"checking for \`$SPEC_BUILDROOT' (%buildroot) strings"\
|
||||
"${NORM}... "$"skipped" ||
|
||||
"${NORM}... "$"skipped"
|
||||
else
|
||||
notify.note \
|
||||
"$(test_number_str). ${NOTE}"\
|
||||
"$(test.num2str). ${NOTE}"\
|
||||
$"checking for %buildroot strings""${NORM}... "$"N/A"
|
||||
fi
|
||||
else
|
||||
notify.note "$(test_number_str). "\
|
||||
notify.note "$(test.num2str). "\
|
||||
$"checking for \`$SPEC_BUILDROOT' (%buildroot) strings"
|
||||
|
||||
[ "$SPEC_BUILDROOT" ] || notify.error \
|
||||
@ -143,12 +148,13 @@ sed "s,$SPEC_BUILDROOT\(.*\), - [%buildroot]\1,")"
|
||||
popd >/dev/null
|
||||
let "i += 1"
|
||||
done
|
||||
fi
|
||||
fi; }
|
||||
test_number=$(($test_number + 1))
|
||||
|
||||
# check for `%_builddir' strings
|
||||
BUILDDIR="$(rpm --eval=%_builddir 2>/dev/null)"
|
||||
notify.note "$(test_number_str). ${NOTE}"\
|
||||
test.skip $test_number || {
|
||||
notify.note "$(test.num2str). ${NOTE}"\
|
||||
$"checking for \`$BUILDDIR' (%_builddir) strings""${NORM}... "
|
||||
|
||||
[ "$BUILDDIR" ] ||
|
||||
@ -169,13 +175,14 @@ sed "s,$BUILDDIR,[%_builddir],g;s,.*, - &,")"
|
||||
done
|
||||
popd >/dev/null
|
||||
let "i += 1"
|
||||
done
|
||||
done; }
|
||||
test_number=$(($test_number + 1))
|
||||
|
||||
# check for suspected plugins (.la, .so) in devel packages
|
||||
# note: pure plugins must be in the main package, not in devel
|
||||
notify.note "$(test_number_str). ${NOTE}"$"\
|
||||
checking for suspicious plugins in devel packages""${NORM}..."
|
||||
test.skip $test_number || {
|
||||
notify.note "$(test.num2str). ${NOTE}"\
|
||||
$"checking for suspicious plugins in devel packages""${NORM}..."
|
||||
|
||||
let "i = 0"
|
||||
for pck in ${rpmpkg_name[@]}; do
|
||||
@ -193,12 +200,13 @@ grep ' shared object,' | sed -n 's/.\(.*\):.*/\1/p'`; do
|
||||
done
|
||||
popd >/dev/null
|
||||
let "i += 1"
|
||||
done
|
||||
done; }
|
||||
test_number=$(($test_number + 1))
|
||||
|
||||
# check for wrong file attributes in lib and bin dirs
|
||||
notify.note "$(test_number_str). ${NOTE}"$"\
|
||||
checking for wrong file attributes in bin and lib directories""${NORM}..."
|
||||
test.skip $test_number || {
|
||||
notify.note "$(test.num2str). ${NOTE}"\
|
||||
$"checking for wrong file attributes in bin and lib directories""${NORM}..."
|
||||
|
||||
warning=0
|
||||
let "i = 0"
|
||||
@ -231,12 +239,13 @@ ${NOTE}"$"Hint"":${NORM}
|
||||
%defattr(-,root,root)
|
||||
...
|
||||
%attr(0755,root,root) %{_bindir}/<program>
|
||||
-----------------------------"
|
||||
-----------------------------"; }
|
||||
test_number=$(($test_number + 1))
|
||||
|
||||
# check for libraries with undefined symbols
|
||||
notify.note "$(test_number_str). ${NOTE}"$"\
|
||||
checking for libraries with undefined symbols after relocation""${NORM}..."
|
||||
test.skip $test_number || {
|
||||
notify.note "$(test.num2str). ${NOTE}"\
|
||||
$"checking for libraries with undefined symbols after relocation""${NORM}..."
|
||||
|
||||
let "i = 0"
|
||||
local undefsyms
|
||||
@ -261,12 +270,13 @@ $(LC_ALL=C ldd -d -r "$f" 2>/dev/null |& grep "undefined symbol")"
|
||||
done
|
||||
popd >/dev/null
|
||||
let "i += 1"
|
||||
done
|
||||
done; }
|
||||
test_number=$(($test_number + 1))
|
||||
|
||||
# check for binary files in etc (see FHS-2.2)
|
||||
notify.note "$(test_number_str). ${NOTE}"$"\
|
||||
checking for binary files installed in /etc (see FHS)""${NORM}..."
|
||||
test.skip $test_number || {
|
||||
notify.note "$(test.num2str). ${NOTE}"\
|
||||
$"checking for binary files installed in /etc (see FHS)""${NORM}..."
|
||||
|
||||
warning=0
|
||||
let "i = 0"
|
||||
@ -292,12 +302,13 @@ ${NOTE}"$"Hint"":${NORM}
|
||||
%defattr(-,root,root)
|
||||
...
|
||||
%attr(0644,root,root) %{_sysconfdir}/<...file>
|
||||
-----------------------------" #|| exit 1
|
||||
-----------------------------"; } #|| exit 1
|
||||
test_number=$(($test_number + 1))
|
||||
|
||||
# check for installation code needed by info pages
|
||||
notify.note "$(test_number_str). ${NOTE}"$"\
|
||||
checking if the info catalog is updated when necessary""${NORM}..."
|
||||
test.skip $test_number || {
|
||||
notify.note "$(test.num2str). ${NOTE}"\
|
||||
$"checking if the info catalog is updated when necessary""${NORM}..."
|
||||
|
||||
error=0
|
||||
let "i = 0"
|
||||
@ -338,12 +349,13 @@ $([[ "$rpm_macro_uninstallinfo" ]] &&
|
||||
exit 0
|
||||
---------------------------------------"
|
||||
let "total_issues += $error"; }
|
||||
done
|
||||
done; }
|
||||
test_number=$(($test_number + 1))
|
||||
|
||||
# check packages for wrong user and/or group ownerships
|
||||
notify.note "$(test_number_str). ${NOTE}"$"\
|
||||
checking packages for wrong user and/or group ownerships""${NORM}..."
|
||||
test.skip $test_number || {
|
||||
notify.note "$(test.num2str). ${NOTE}"\
|
||||
$"checking packages for wrong user and/or group ownerships""${NORM}..."
|
||||
|
||||
error=0
|
||||
idun="$(id -un)" idgn="$(id -gn)"
|
||||
@ -363,12 +375,13 @@ package not found"": \`${pck##*/}'"
|
||||
let "total_issues += 1"
|
||||
fi
|
||||
done )
|
||||
done
|
||||
done; }
|
||||
test_number=$(($test_number + 1))
|
||||
|
||||
# check for desktop files installed in non standard applnk dir
|
||||
notify.note "$(test_number_str). ${NOTE}"$"\
|
||||
checking packages for desktop files installed in the applnk dir""${NORM}..."
|
||||
test.skip $test_number || {
|
||||
notify.note "$(test.num2str). ${NOTE}"\
|
||||
$"checking packages for desktop files installed in the applnk dir""${NORM}..."
|
||||
|
||||
warning=0
|
||||
rpmdatadir=$(rpm --eval %_datadir 2>/dev/null)
|
||||
@ -393,11 +406,12 @@ checking packages for desktop files installed in the applnk dir""${NORM}..."
|
||||
${NOTE}"$"Hint"":${NORM}
|
||||
"$"create desktop files for:"" ${rpmdatadir}/applications
|
||||
"$"see:"" <http://www.freedesktop.org/>
|
||||
-----------------------------"
|
||||
-----------------------------"; }
|
||||
test_number=$(($test_number + 1))
|
||||
|
||||
# check if a package that do not contains binaries is tagged noarch
|
||||
notify.note "$(test_number_str). ${NOTE}"\
|
||||
test.skip $test_number || {
|
||||
notify.note "$(test.num2str). ${NOTE}"\
|
||||
$"checking for packages with bad BuildArch tag""${NORM}..."
|
||||
|
||||
warning=0
|
||||
@ -421,7 +435,7 @@ ${NOTE}"$"Hint"":${NORM}
|
||||
BuildArch: noarch
|
||||
-----------------------------"
|
||||
let "total_issues += 1"; }
|
||||
fi
|
||||
fi; }
|
||||
test_number=$(($test_number + 1))
|
||||
|
||||
notify.note "
|
||||
|
@ -70,7 +70,8 @@ function alltests() {
|
||||
|
||||
local total_issues=0
|
||||
|
||||
notify.note "$(test_number_str). ${NOTE}"\
|
||||
test.skip $test_number || {
|
||||
notify.note "$(test.num2str). ${NOTE}"\
|
||||
$"checking for RPATH vulnerabilities""${NORM}..."
|
||||
|
||||
let "i = 0"
|
||||
@ -91,10 +92,11 @@ $"checking for RPATH vulnerabilities""${NORM}..."
|
||||
done
|
||||
popd >/dev/null
|
||||
let "i += 1"
|
||||
done
|
||||
done; }
|
||||
test_number=$(($test_number + 1))
|
||||
|
||||
notify.note "$(test_number_str). ${NOTE}"\
|
||||
test.skip $test_number || {
|
||||
notify.note "$(test.num2str). ${NOTE}"\
|
||||
$"checking for setuid binaries""${NORM}..."
|
||||
|
||||
let "i = 0"
|
||||
@ -108,10 +110,11 @@ $"checking for setuid binaries""${NORM}..."
|
||||
done
|
||||
popd >/dev/null
|
||||
let "i += 1"
|
||||
done
|
||||
done; }
|
||||
test_number=$(($test_number + 1))
|
||||
|
||||
notify.note "$(test_number_str). ${NOTE}"\
|
||||
test.skip $test_number || {
|
||||
notify.note "$(test.num2str). ${NOTE}"\
|
||||
$"checking for setgid directories""${NORM}..."
|
||||
|
||||
let "i = 0"
|
||||
@ -123,11 +126,12 @@ $"checking for setgid directories""${NORM}..."
|
||||
done
|
||||
popd >/dev/null
|
||||
let "i += 1"
|
||||
done
|
||||
done; }
|
||||
test_number=$(($test_number + 1))
|
||||
|
||||
# checking for unsecure use of $$ as random source in shell scripts
|
||||
notify.note "$(test_number_str). ${NOTE}"\
|
||||
test.skip $test_number || {
|
||||
notify.note "$(test.num2str). ${NOTE}"\
|
||||
$"checking for unsecure use of \`\$\$' in shell and perl scripts""${NORM}..."
|
||||
|
||||
vulnerable=0
|
||||
@ -165,7 +169,7 @@ ${NOTE}"$"Hint for bash scripts (\`mktemp' required)"":${NORM}
|
||||
${NOTE}"$"Hint for perl scripts"":${NORM}
|
||||
use File::Temp qw/ tempfile /;
|
||||
(\$fh,\$file) = tempfile ('<script_name>.XXXXXX');
|
||||
-----------------------------"
|
||||
-----------------------------"; }
|
||||
test_number=$(($test_number + 1))
|
||||
|
||||
notify.note "
|
||||
|
Loading…
Reference in New Issue
Block a user