release 1.18-9

This commit is contained in:
Dalibor Pospisil 2020-06-09 19:19:00 +02:00
parent 341c4ecf46
commit 9a8095402e
3 changed files with 165 additions and 1 deletions

View File

@ -0,0 +1,36 @@
From 4c95895113d549b5b3b84fe1282fb13d9f5823a0 Mon Sep 17 00:00:00 2001
From: Florian Weimer <fweimer@redhat.com>
Date: Fri, 29 May 2020 17:22:35 +0200
Subject: [PATCH 1/2] journal.sh: Count CPUs optimization
---
src/journal.sh | 13 ++++---------
1 file changed, 4 insertions(+), 9 deletions(-)
diff --git a/src/journal.sh b/src/journal.sh
index f7f2fbd..74dc525 100644
--- a/src/journal.sh
+++ b/src/journal.sh
@@ -872,15 +872,10 @@ __INTERNAL_CreateHeader(){
local line size
# CPU info
if [ -f "/proc/cpuinfo" ]; then
- local count=0
- local type="unknown"
- local cpu_regex="^model\sname.*: (.*)$"
- while read -r line; do
- if [[ "$line" =~ $cpu_regex ]]; then
- type="${BASH_REMATCH[1]}"
- let count++
- fi
- done < "/proc/cpuinfo"
+ local cpu_regex count type
+ cpu_regex="^model\sname.*: (.*)$"
+ count=$(grep -cE "$cpu_regex" /proc/cpuinfo)
+ type="$(grep -E -m 1 "$cpu_regex" /proc/cpuinfo | sed -r "s/$cpu_regex/\1/")"
__INTERNAL_WriteToMetafile hw_cpu -- "$count x $type"
__INTERNAL_LogText " CPUs : $count x $type" 2> /dev/null
fi
--
2.25.4

View File

@ -1,7 +1,7 @@
Name: beakerlib Name: beakerlib
Summary: A shell-level integration testing library Summary: A shell-level integration testing library
Version: 1.18 Version: 1.18
Release: 8%{?dist} Release: 9%{?dist}
License: GPLv2 License: GPLv2
BuildArch: noarch BuildArch: noarch
URL: https://github.com/%{name} URL: https://github.com/%{name}
@ -42,6 +42,8 @@ Patch5: services-state-store.patch
Patch6: local-FileSubmit-argument.patch Patch6: local-FileSubmit-argument.patch
Patch7: cleanup-shell-options.patch Patch7: cleanup-shell-options.patch
Patch8: correct-exit-code-gathering.patch Patch8: correct-exit-code-gathering.patch
Patch9: Count-CPUs-optimization.patch
Patch10: enahanced-library-search.patch
%prep %prep
%autosetup -p1 %autosetup -p1
@ -88,6 +90,10 @@ Files for syntax highlighting BeakerLib tests in VIM editor
%{_datadir}/vim/vimfiles/after/syntax/beakerlib.vim %{_datadir}/vim/vimfiles/after/syntax/beakerlib.vim
%changelog %changelog
* Tue Jun 9 2019 Dalibor Pospisil <dapospis@redhat.com> - 1.18-9
- optiomized CPU info gathering
- enhanced library search
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.18-8 * Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.18-8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild

View File

@ -0,0 +1,122 @@
From 6caca72e63add35ef066cca1dbeae6857ec34b2b Mon Sep 17 00:00:00 2001
From: Dalibor Pospisil <dapospis@redhat.com>
Date: Mon, 8 Jun 2020 17:11:51 +0200
Subject: [PATCH 2/2] enahanced library search
---
src/libraries.sh | 71 ++++++++++++++++++++++++++++++++++++++----------
1 file changed, 56 insertions(+), 15 deletions(-)
diff --git a/src/libraries.sh b/src/libraries.sh
index 2ccc02e..b40b513 100644
--- a/src/libraries.sh
+++ b/src/libraries.sh
@@ -98,7 +98,7 @@ __INTERNAL_rlLibraryTraverseUpwards() {
while [ "$DIRECTORY" != "/" ]
do
DIRECTORY="$( dirname $DIRECTORY )"
- if [ -d "$DIRECTORY/$COMPONENT" ]
+ if [[ -d "$DIRECTORY/$COMPONENT" || -d "$DIRECTORY/libs/$COMPONENT/$LIBRARY" ]]
then
local CANDIDATE="$DIRECTORY/$COMPONENT/Library/$LIBRARY/lib.sh"
@@ -114,6 +114,14 @@ __INTERNAL_rlLibraryTraverseUpwards() {
LIBFILE="$CANDIDATE"
break
fi
+
+ local CANDIDATE="$DIRECTORY/libs/$COMPONENT/$LIBRARY/lib.sh"
+ if [ -f "$CANDIDATE" ]
+ then
+ LIBFILE="$CANDIDATE"
+ break
+ fi
+
fi
done
}
@@ -139,6 +147,20 @@ __INTERNAL_rlLibrarySearchInRoot(){
return
fi
+ local CANDIDATE="$BEAKERLIB_LIBRARY_PATH/$COMPONENT/$LIBRARY/lib.sh"
+ if [ -f "$CANDIDATE" ]
+ then
+ LIBFILE="$CANDIDATE"
+ return
+ fi
+
+ local CANDIDATE="$BEAKERLIB_LIBRARY_PATH/libs/$COMPONENT/$LIBRARY/lib.sh"
+ if [ -f "$CANDIDATE" ]
+ then
+ LIBFILE="$CANDIDATE"
+ return
+ fi
+
rlLogDebug "rlImport: Library not found in $BEAKERLIB_LIBRARY_PATH"
}
@@ -151,16 +173,20 @@ __INTERNAL_rlLibrarySearch() {
if [ -n "$BEAKERLIB_LIBRARY_PATH" ]
then
- rlLogDebug "rlImport: BEAKERLIB_LIBRARY_PATH is set: trying to search in it"
-
- __INTERNAL_rlLibrarySearchInRoot "$COMPONENT" "$LIBRARY" "$BEAKERLIB_LIBRARY_PATH"
- if [ -n "$LIBFILE" ]
- then
- local VERSION="$(__INTERNAL_extractLibraryVersion "$LIBFILE" "$COMPONENT/$LIBRARY")"
- VERSION=${VERSION:+", version '$VERSION'"}
- rlLogInfo "rlImport: Found '$COMPONENT/$LIBRARY'$VERSION in BEAKERLIB_LIBRARY_PATH"
- return
- fi
+ rlLogDebug "rlImport: BEAKERLIB_LIBRARY_PATH='$BEAKERLIB_LIBRARY_PATH'"
+ local paths=( ${BEAKERLIB_LIBRARY_PATH//:/ } )
+ while [[ -n "$paths" ]]; do
+ rlLogDebug "$FUNCNAME(): trying $paths component of BEAKERLIB_LIBRARY_PATH"
+ __INTERNAL_rlLibrarySearchInRoot "$COMPONENT" "$LIBRARY" "$paths"
+ if [ -n "$LIBFILE" ]
+ then
+ local VERSION="$(__INTERNAL_extractLibraryVersion "$LIBFILE" "$COMPONENT/$LIBRARY")"
+ VERSION=${VERSION:+", version '$VERSION'"}
+ rlLogInfo "rlImport: Found '$COMPONENT/$LIBRARY'$VERSION in BEAKERLIB_LIBRARY_PATH"
+ return
+ fi
+ paths=( "${paths[@]:1}" )
+ done
else
rlLogDebug "rlImport: No BEAKERLIB_LIBRARY_PATH set: trying default"
fi
@@ -213,10 +239,25 @@ The library search mechanism is based on Beaker test hierarchy system, i.e.:
/component/type/test-name/test-file
-When test-file calls rlImport with 'foo/bar' parameter, the directory path
-is traversed upwards, and a check for presence of the test /foo/Library/bar/
-will be performed. This means this function needs to be called from
-the test hierarchy, not e.g. the /tmp directory.
+When test-file calls rlImport with 'foo/bar' parameter, the libraries are searched
+in following locations:
+these are the possible path prefixes
+
+ - colon-separated paths from $BEAKERLIB_LIBRARY_PATH
+ - /mnt/tests
+ - /usr/share/beakerlib-libraries
+
+the next component of the path is one of the following:
+
+ - /foo/Library/bar
+ - /*/foo/Library/bar
+ - /libs/foo/bar
+
+the directory path is then constructed as prefix/path/lib.sh
+If the library is still not found an upwards directory traversal is used, and a
+check for presence of the library in /foo/Library/bar/ or libs/foo/bar/ is to be
+performed. This means this function needs to be called from the test hierarchy,
+not e.g. the /tmp directory.
Once library is found, it is sourced and a verifier function is called.
The verifier function is cunstructed by composing the library prefix and
--
2.25.4