From 9a8095402e687f93bbcdb81f441cf19b18d7e269 Mon Sep 17 00:00:00 2001 From: Dalibor Pospisil Date: Jun 09 2020 17:19:00 +0000 Subject: release 1.18-9 --- diff --git a/Count-CPUs-optimization.patch b/Count-CPUs-optimization.patch new file mode 100644 index 0000000..6d62bd3 --- /dev/null +++ b/Count-CPUs-optimization.patch @@ -0,0 +1,36 @@ +From 4c95895113d549b5b3b84fe1282fb13d9f5823a0 Mon Sep 17 00:00:00 2001 +From: Florian Weimer +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 + diff --git a/beakerlib.spec b/beakerlib.spec index effdd75..8218ffd 100644 --- a/beakerlib.spec +++ b/beakerlib.spec @@ -1,7 +1,7 @@ Name: beakerlib Summary: A shell-level integration testing library Version: 1.18 -Release: 8%{?dist} +Release: 9%{?dist} License: GPLv2 BuildArch: noarch URL: https://github.com/%{name} @@ -42,6 +42,8 @@ Patch5: services-state-store.patch Patch6: local-FileSubmit-argument.patch Patch7: cleanup-shell-options.patch Patch8: correct-exit-code-gathering.patch +Patch9: Count-CPUs-optimization.patch +Patch10: enahanced-library-search.patch %prep %autosetup -p1 @@ -88,6 +90,10 @@ Files for syntax highlighting BeakerLib tests in VIM editor %{_datadir}/vim/vimfiles/after/syntax/beakerlib.vim %changelog +* Tue Jun 9 2019 Dalibor Pospisil - 1.18-9 +- optiomized CPU info gathering +- enhanced library search + * Tue Jan 28 2020 Fedora Release Engineering - 1.18-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild diff --git a/enahanced-library-search.patch b/enahanced-library-search.patch new file mode 100644 index 0000000..b8ae6cb --- /dev/null +++ b/enahanced-library-search.patch @@ -0,0 +1,122 @@ +From 6caca72e63add35ef066cca1dbeae6857ec34b2b Mon Sep 17 00:00:00 2001 +From: Dalibor Pospisil +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 +