Compare commits
No commits in common. "c9s" and "c8" have entirely different histories.
@ -1 +1 @@
|
||||
ef52fe7593350d81edb2cd1c80741291660ce460 beakerlib-1.29.2.tar.gz
|
||||
1f0a6b45d9eb6173b9526ea6b5184a3f6a8612ed SOURCES/beakerlib-1.17.tar.gz
|
||||
|
6
.gitignore
vendored
6
.gitignore
vendored
@ -1,5 +1 @@
|
||||
*.tar.gz
|
||||
*.rpm
|
||||
.project
|
||||
*.orig
|
||||
*.rej
|
||||
SOURCES/beakerlib-1.17.tar.gz
|
||||
|
18
SOURCES/debug-to-console.patch
Normal file
18
SOURCES/debug-to-console.patch
Normal file
@ -0,0 +1,18 @@
|
||||
diff --git a/src/logging.sh b/src/logging.sh
|
||||
index 95604c1..083d6d0 100644
|
||||
--- a/src/logging.sh
|
||||
+++ b/src/logging.sh
|
||||
@@ -237,7 +238,12 @@ DEBUG=${DEBUG:-""}
|
||||
|
||||
rlLogDebug() {
|
||||
if [ "$DEBUG" == 'true' -o "$DEBUG" == '1' -o "$LOG_LEVEL" == "DEBUG" ]; then
|
||||
- rlLog "$1" "$2" "DEBUG" && rljAddMessage "$1" "DEBUG"
|
||||
+ if [[ -n "$DEBUG_TO_CONSOLE_ONLY" ]]; then
|
||||
+ local __INTERNAL_LogText_no_file=1
|
||||
+ __INTERNAL_LogText "$1" "DEBUG"
|
||||
+ else
|
||||
+ rlLog "$1" "$2" "DEBUG"
|
||||
+ fi
|
||||
fi
|
||||
}
|
||||
rlLogInfo() { rlLog "$1" "$2" "INFO"; }
|
35
SOURCES/enable-nested-phases.patch
Normal file
35
SOURCES/enable-nested-phases.patch
Normal file
@ -0,0 +1,35 @@
|
||||
From 7381fd558e64559029980def31faf6661909eeb8 Mon Sep 17 00:00:00 2001
|
||||
From: Dalibor Pospisil <dapospis@redhat.com>
|
||||
Date: Tue, 12 Dec 2017 16:04:01 +0100
|
||||
Subject: [PATCH 16/18] nested phases enabled by default
|
||||
|
||||
this prevents some yet undocumented and officily unsupported behavoiur regression
|
||||
---
|
||||
src/journal.sh | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/journal.sh b/src/journal.sh
|
||||
index 374ddfc..516f292 100644
|
||||
--- a/src/journal.sh
|
||||
+++ b/src/journal.sh
|
||||
@@ -539,7 +539,7 @@ rljAddPhase(){
|
||||
# Printing
|
||||
__INTERNAL_PrintHeadLog "$MSG"
|
||||
|
||||
- if [[ -z "$BEAKERLIB_NESTED_PHASES" ]]; then
|
||||
+ if [[ "$BEAKERLIB_NESTED_PHASES" == "0" ]]; then
|
||||
__INTERNAL_METAFILE_INDENT_LEVEL=2
|
||||
__INTERNAL_PHASE_TYPE=( "$1" )
|
||||
__INTERNAL_PHASE_NAME=( "$MSG" )
|
||||
@@ -612,7 +612,7 @@ rljClosePhase(){
|
||||
rm -f $logfile
|
||||
|
||||
# Reset of state variables
|
||||
- if [[ -z "$BEAKERLIB_NESTED_PHASES" ]]; then
|
||||
+ if [[ "$BEAKERLIB_NESTED_PHASES" == "0" ]]; then
|
||||
__INTERNAL_METAFILE_INDENT_LEVEL=1
|
||||
__INTERNAL_PHASE_TYPE=()
|
||||
__INTERNAL_PHASE_NAME=()
|
||||
--
|
||||
2.14.3
|
||||
|
106
SOURCES/extended-coloring-capabilities.patch
Normal file
106
SOURCES/extended-coloring-capabilities.patch
Normal file
@ -0,0 +1,106 @@
|
||||
From 44221b0c9970f11451016f4566602932861458e6 Mon Sep 17 00:00:00 2001
|
||||
From: Dalibor Pospisil <dapospis@redhat.com>
|
||||
Date: Fri, 2 Feb 2018 15:06:58 +0100
|
||||
Subject: [PATCH 4/5] extended coloring capabilities
|
||||
|
||||
this change allow to color result from other placed
|
||||
---
|
||||
src/logging.sh | 72 ++++++++++++++++++++++++++++++++++++++--------------------
|
||||
1 file changed, 48 insertions(+), 24 deletions(-)
|
||||
|
||||
diff --git a/src/logging.sh b/src/logging.sh
|
||||
index 38a0466..59709df 100644
|
||||
--- a/src/logging.sh
|
||||
+++ b/src/logging.sh
|
||||
@@ -57,41 +57,65 @@ __INTERNAL_PrintText() {
|
||||
__INTERNAL_LogText "$@"
|
||||
}
|
||||
|
||||
+# $1 - text to color
|
||||
+# $2 - variable to put the color sequence to
|
||||
+# $3 - variable to put the uncolor sequence to
|
||||
+__INTERNAL_get_prio_colors() {
|
||||
+ local prio="$1" var_color="$2" var_uncolor="$3"
|
||||
+ local ____COLOR='' ____UNCOLOR=''
|
||||
+ if [[ -t 2 ]]; then
|
||||
+ ____UNCOLOR="$__INTERNAL_color_reset"
|
||||
+ case ${prio^^} in
|
||||
+ DEBUG*)
|
||||
+ ____COLOR="$__INTERNAL_color_purple"
|
||||
+ ;;
|
||||
+ PASS)
|
||||
+ ____COLOR="$__INTERNAL_color_green"
|
||||
+ ;;
|
||||
+ FAIL|FATAL)
|
||||
+ ____COLOR="$__INTERNAL_color_light_red"
|
||||
+ ;;
|
||||
+ LOG)
|
||||
+ ____COLOR="$__INTERNAL_color_cyan"
|
||||
+ ;;
|
||||
+ LOG|INFO|BEGIN)
|
||||
+ ____COLOR="$__INTERNAL_color_blue"
|
||||
+ ;;
|
||||
+ WARN*|SKIP*)
|
||||
+ ____COLOR="$__INTERNAL_color_yellow"
|
||||
+ ;;
|
||||
+ esac
|
||||
+ fi
|
||||
+ eval "$var_color=\"${____COLOR}\""
|
||||
+ eval "$var_uncolor=\"${____UNCOLOR}\""
|
||||
+}
|
||||
+
|
||||
+# $1 - text to color
|
||||
+# $2 - variable to put the result to
|
||||
+__INTERNAL_colorize_prio() {
|
||||
+ local prio="$1" var="$2"
|
||||
+ local COLOR='' UNCOLOR=''
|
||||
+ __INTERNAL_get_prio_colors "$prio" COLOR UNCOLOR
|
||||
+ eval "$var=\"$COLOR$prio$UNCOLOR\""
|
||||
+}
|
||||
+
|
||||
+# $1 - MESSAGE
|
||||
+# $2 - prio
|
||||
+# $3 - LOGFILE
|
||||
+# $4 - MESSAGE_COLORED, if empty MESSAGE is used
|
||||
__INTERNAL_LogText() {
|
||||
local MESSAGE="$1"
|
||||
- local MESSAGE_COLORED="${MESSAGE}"
|
||||
+ local MESSAGE_COLORED="${4:-"$MESSAGE"}"
|
||||
local prio="$2"
|
||||
local LOGFILE=${3:-$OUTPUTFILE}
|
||||
local res=0
|
||||
local COLOR='' UNCOLOR=''
|
||||
- if [[ -t 2 ]]; then
|
||||
- UNCOLOR="$__INTERNAL_color_reset"
|
||||
- case ${prio^^} in
|
||||
- DEBUG*)
|
||||
- COLOR="$__INTERNAL_color_purple"
|
||||
- ;;
|
||||
- PASS)
|
||||
- COLOR="$__INTERNAL_color_green"
|
||||
- ;;
|
||||
- FAIL|FATAL)
|
||||
- COLOR="$__INTERNAL_color_light_red"
|
||||
- ;;
|
||||
- LOG)
|
||||
- COLOR="$__INTERNAL_color_cyan"
|
||||
- ;;
|
||||
- LOG|INFO|BEGIN)
|
||||
- COLOR="$__INTERNAL_color_blue"
|
||||
- ;;
|
||||
- WARN*|SKIP*)
|
||||
- COLOR="$__INTERNAL_color_yellow"
|
||||
- ;;
|
||||
- esac
|
||||
- fi
|
||||
[[ -n "$prio" ]] && {
|
||||
local left=$(( (10+${#prio})/2 ))
|
||||
local prefix prefix_colored timestamp
|
||||
__INTERNAL_SET_TIMESTAMP
|
||||
printf -v timestamp "%($__INTERNAL_TIMEFORMAT_SHORT)T" "$__INTERNAL_TIMESTAMP"
|
||||
+ __INTERNAL_get_prio_colors "$prio" COLOR UNCOLOR
|
||||
printf -v prefix_colored ":: [ %s ] :: [%s%*s%*s%s] ::" "$timestamp" "$COLOR" "$left" "${prio}" "$(( 10-$left ))" '' "$UNCOLOR"
|
||||
printf -v prefix ":: [ %s ] :: [%*s%*s] ::" "$timestamp" "$left" "${prio}" "$(( 10-$left ))"
|
||||
MESSAGE="$prefix $MESSAGE"
|
||||
--
|
||||
2.14.3
|
49
SOURCES/final-summary-in-rlJournalEnd.patch
Normal file
49
SOURCES/final-summary-in-rlJournalEnd.patch
Normal file
@ -0,0 +1,49 @@
|
||||
From 94c83310182228dcb959f390c6a513cbdebe4976 Mon Sep 17 00:00:00 2001
|
||||
From: Dalibor Pospisil <dapospis@redhat.com>
|
||||
Date: Fri, 2 Feb 2018 15:13:46 +0100
|
||||
Subject: [PATCH 3/5] move final summary printing to rlJournalEnd
|
||||
|
||||
also put the text to journal.txt
|
||||
this will ensure the summary is always printed at the end and is also present in the text file
|
||||
---
|
||||
src/journal.sh | 11 ++++++-----
|
||||
1 file changed, 6 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/src/journal.sh b/src/journal.sh
|
||||
index 04e4a10..867d08f 100644
|
||||
--- a/src/journal.sh
|
||||
+++ b/src/journal.sh
|
||||
@@ -242,6 +242,8 @@ rlJournalEnd(){
|
||||
__INTERNAL_ENDTIME=$__INTERNAL_TIMESTAMP
|
||||
__INTERNAL_update_journal_txt
|
||||
|
||||
+ __INTERNAL_PrintHeadLog "${__INTERNAL_TEST_NAME}" 2>&1
|
||||
+
|
||||
if [ -n "$TESTID" ] ; then
|
||||
__INTERNAL_JournalXMLCreate
|
||||
$BEAKERLIB_COMMAND_SUBMIT_LOG -T $TESTID -l $__INTERNAL_BEAKERLIB_JOURNAL \
|
||||
@@ -252,6 +254,10 @@ rlJournalEnd(){
|
||||
fi
|
||||
|
||||
echo "#End of metafile" >> $__INTERNAL_BEAKERLIB_METAFILE
|
||||
+
|
||||
+ __INTERNAL_LogText "Phases: $__INTERNAL_PHASES_PASSED good, $__INTERNAL_PHASES_FAILED bad" LOG 2>&1
|
||||
+ __INTERNAL_LogText "RESULT: $__INTERNAL_TEST_NAME" $__INTERNAL_PHASES_WORST_RESULT 2>&1
|
||||
+
|
||||
__INTERNAL_JournalXMLCreate
|
||||
__INTERNAL_TestResultsSave
|
||||
}
|
||||
@@ -434,11 +440,6 @@ rlJournalPrintText(){
|
||||
[[ -t 1 ]] && textfile="$__INTERNAL_BEAKERLIB_JOURNAL_COLORED" || textfile="$__INTERNAL_BEAKERLIB_JOURNAL_TXT"
|
||||
cat "$textfile"
|
||||
|
||||
- local __INTERNAL_LogText_no_file=1
|
||||
- __INTERNAL_PrintHeadLog "${__INTERNAL_TEST_NAME}" 2>&1
|
||||
- __INTERNAL_LogText "Phases: $__INTERNAL_PHASES_PASSED good, $__INTERNAL_PHASES_FAILED bad" LOG 2>&1
|
||||
- __INTERNAL_LogText "RESULT: $__INTERNAL_TEST_NAME" $__INTERNAL_PHASES_WORST_RESULT 2>&1
|
||||
-
|
||||
return 0
|
||||
}
|
||||
|
||||
--
|
||||
2.14.3
|
21
SOURCES/get-text-journal-size.patch
Normal file
21
SOURCES/get-text-journal-size.patch
Normal file
@ -0,0 +1,21 @@
|
||||
diff -u b/src/journal.sh b/src/journal.sh
|
||||
--- b/src/journal.sh
|
||||
+++ b/src/journal.sh
|
||||
@@ -531,7 +531,7 @@
|
||||
rljAddPhase(){
|
||||
__INTERNAL_PersistentDataLoad
|
||||
local MSG=${2:-"Phase of $1 type"}
|
||||
- local TXTLOG_START=$(wc -l $__INTERNAL_BEAKERLIB_JOURNAL_TXT)
|
||||
+ local TXTLOG_START=$(cat $__INTERNAL_BEAKERLIB_JOURNAL_TXT | wc -l)
|
||||
rlLogDebug "rljAddPhase: Phase $MSG started"
|
||||
__INTERNAL_WriteToMetafile phase --name "$MSG" --type "$1" >&2
|
||||
# Printing
|
||||
@@ -546,7 +546,7 @@
|
||||
__INTERNAL_PHASE_FAILED=( 0 )
|
||||
__INTERNAL_PHASE_PASSED=( 0 )
|
||||
__INTERNAL_PHASE_STARTTIME=( $__INTERNAL_TIMESTAMP )
|
||||
- __INTERNAL_PHASE_TXTLOG_START=( $(wc -l $__INTERNAL_BEAKERLIB_JOURNAL_TXT) )
|
||||
+ __INTERNAL_PHASE_TXTLOG_START=( $TXTLOG_START )
|
||||
__INTERNAL_PHASE_OPEN=${#__INTERNAL_PHASE_NAME[@]}
|
||||
__INTERNAL_PHASE_METRICS=( "" )
|
||||
else
|
52
SOURCES/handle-missing-python.patch
Normal file
52
SOURCES/handle-missing-python.patch
Normal file
@ -0,0 +1,52 @@
|
||||
diff -u b/src/journal.sh b/src/journal.sh
|
||||
--- b/src/journal.sh
|
||||
+++ b/src/journal.sh
|
||||
@@ -283,8 +297,25 @@
|
||||
#=cut
|
||||
|
||||
__INTERNAL_JournalXMLCreate() {
|
||||
- [[ "$BEAKERLIB_JOURNAL" == "0" ]] || $__INTERNAL_JOURNALIST $__INTERNAL_XSLT --metafile \
|
||||
- "$__INTERNAL_BEAKERLIB_METAFILE" --journal "$__INTERNAL_BEAKERLIB_JOURNAL"
|
||||
+ local res=0
|
||||
+ [[ "$BEAKERLIB_JOURNAL" == "0" ]] || {
|
||||
+ if which python &> /dev/null; then
|
||||
+ $__INTERNAL_JOURNALIST $__INTERNAL_XSLT --metafile \
|
||||
+ "$__INTERNAL_BEAKERLIB_METAFILE" --journal "$__INTERNAL_BEAKERLIB_JOURNAL"
|
||||
+ res=$?
|
||||
+ if [[ $res -eq 2 ]]; then
|
||||
+ rlLogError "cannot create journal.xml due to missing some python module"
|
||||
+ elif [[ $res -eq 3 ]]; then
|
||||
+ rlLogError "cannot create journal.xml due to missing python lxml module"
|
||||
+ elif [[ $res -ne 0 ]]; then
|
||||
+ rlLogError "journal.xml creation failed!"
|
||||
+ fi
|
||||
+ else
|
||||
+ rlLogError "cannot create journal.xml due to missing python interpreter"
|
||||
+ let res++
|
||||
+ fi
|
||||
+ }
|
||||
+ return $res
|
||||
}
|
||||
|
||||
|
||||
diff -u b/src/python/journalling.py b/src/python/journalling.py
|
||||
--- b/src/python/journalling.py
|
||||
+++ b/src/python/journalling.py
|
||||
@@ -30,11 +30,15 @@
|
||||
import six
|
||||
import time
|
||||
import base64
|
||||
- from lxml import etree
|
||||
from optparse import OptionParser
|
||||
except ImportError as e:
|
||||
sys.stderr.write("Python ImportError: " + str(e) + "\nExiting unsuccessfully.\n")
|
||||
- exit(1)
|
||||
+ exit(2)
|
||||
+try:
|
||||
+ from lxml import etree
|
||||
+except ImportError as e:
|
||||
+ sys.stderr.write("Python ImportError: " + str(e) + "\nExiting unsuccessfully.\n")
|
||||
+ exit(3)
|
||||
|
||||
|
||||
xmlForbidden = [0, 1, 2, 3, 4, 5, 6, 7, 8, 11, 12, 14, 15, 16, 17, 18, 19, 20,
|
128
SOURCES/ifs-issue.patch
Normal file
128
SOURCES/ifs-issue.patch
Normal file
@ -0,0 +1,128 @@
|
||||
diff -u b/src/journal.sh b/src/journal.sh
|
||||
--- b/src/journal.sh
|
||||
+++ b/src/journal.sh
|
||||
@@ -431,12 +431,10 @@
|
||||
[[ -t 1 ]] && textfile="$__INTERNAL_BEAKERLIB_JOURNAL_COLORED" || textfile="$__INTERNAL_BEAKERLIB_JOURNAL_TXT"
|
||||
cat "$textfile"
|
||||
|
||||
- local tmp="$__INTERNAL_LogText_no_file"
|
||||
- __INTERNAL_LogText_no_file=1
|
||||
+ local __INTERNAL_LogText_no_file=1
|
||||
__INTERNAL_PrintHeadLog "${TEST}" 2>&1
|
||||
__INTERNAL_LogText "Phases: $__INTERNAL_PHASES_PASSED good, $__INTERNAL_PHASES_FAILED bad" LOG 2>&1
|
||||
__INTERNAL_LogText "RESULT: $TEST" $__INTERNAL_PHASES_WORST_RESULT 2>&1
|
||||
- __INTERNAL_LogText_no_file=$tmp
|
||||
|
||||
return 0
|
||||
}
|
||||
@@ -645,6 +643,7 @@
|
||||
# $2 result
|
||||
# $3 command
|
||||
rljAddTest(){
|
||||
+ local IFS
|
||||
__INTERNAL_PersistentDataLoad
|
||||
if [ $__INTERNAL_PHASE_OPEN -eq 0 ]; then
|
||||
rlPhaseStart "FAIL" "Asserts collected outside of a phase"
|
||||
@@ -723,6 +722,7 @@
|
||||
|
||||
# Creates header
|
||||
__INTERNAL_CreateHeader(){
|
||||
+ local IFS
|
||||
|
||||
__INTERNAL_PrintHeadLog "TEST PROTOCOL" 2> /dev/null
|
||||
|
||||
@@ -816,7 +816,7 @@
|
||||
local count=0
|
||||
local type="unknown"
|
||||
local cpu_regex="^model\sname.*: (.*)$"
|
||||
- while read line; do
|
||||
+ while read -r line; do
|
||||
if [[ "$line" =~ $cpu_regex ]]; then
|
||||
type="${BASH_REMATCH[1]}"
|
||||
let count++
|
||||
@@ -830,7 +830,7 @@
|
||||
if [[ -f "/proc/meminfo" ]]; then
|
||||
size=0
|
||||
local ram_regex="^MemTotal: *(.*) kB$"
|
||||
- while read line; do
|
||||
+ while read -r line; do
|
||||
if [[ "$line" =~ $ram_regex ]]; then
|
||||
size=`expr ${BASH_REMATCH[1]} / 1024`
|
||||
break
|
||||
diff -u b/src/logging.sh b/src/logging.sh
|
||||
--- b/src/logging.sh
|
||||
+++ b/src/logging.sh
|
||||
@@ -53,10 +53,8 @@
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
__INTERNAL_PrintText() {
|
||||
- local tmp="$__INTERNAL_LogText_no_file"
|
||||
- __INTERNAL_LogText_no_file=1
|
||||
+ local __INTERNAL_LogText_no_file=1
|
||||
__INTERNAL_LogText "$@"
|
||||
- __INTERNAL_LogText_no_file=$tmp
|
||||
}
|
||||
|
||||
__INTERNAL_LogText() {
|
||||
@@ -531,6 +529,7 @@
|
||||
rlShowPackageVersion()
|
||||
{
|
||||
local score=0
|
||||
+ local IFS
|
||||
if [ $# -eq 0 ]; then
|
||||
rlLogWarning "rlShowPackageVersion: Too few options"
|
||||
return 1
|
||||
only in patch2:
|
||||
unchanged:
|
||||
--- a/src/analyze.sh
|
||||
+++ b/src/analyze.sh
|
||||
@@ -76,6 +76,7 @@ Return 0 if... TODO
|
||||
=cut
|
||||
|
||||
rlDejaSum(){
|
||||
+ local IFS
|
||||
rlLog "Summarizing files: $1 $2"
|
||||
rlLogDebug "Calling beakerlib-deja-summarize routine"
|
||||
beakerlib-deja-summarize $1 $2 | while read line
|
||||
only in patch2:
|
||||
unchanged:
|
||||
--- a/src/libraries.sh
|
||||
+++ b/src/libraries.sh
|
||||
@@ -268,9 +268,10 @@ __INTERNAL_envdebugget() {
|
||||
__INTERNAL_envdebugdiff() {
|
||||
rlLogDebug "rlImport: library $1 changes following environment; changed functions are marked with asterisk (*)"
|
||||
diff -U0 <(echo "$__INTERNAL_envdebugvariables") <(__INTERNAL_envdebugget 1) | tail -n +3 | grep -E -v '^@@'
|
||||
- local line fn print='' print2 LF="
|
||||
-"
|
||||
- while IFS= read line; do
|
||||
+ local line fn print='' print2 LF=$'\n'
|
||||
+ local IFS
|
||||
+
|
||||
+ while read -r line; do
|
||||
[[ "$line" =~ ^(.)([^[:space:]]+)[[:space:]]\(\) ]] && {
|
||||
[[ -n "$print" ]] && {
|
||||
echo "$fn"
|
||||
only in patch2:
|
||||
unchanged:
|
||||
--- a/src/rpms.sh
|
||||
+++ b/src/rpms.sh
|
||||
@@ -56,6 +56,7 @@ __INTERNAL_RpmPresent() {
|
||||
local version=$3
|
||||
local release=$4
|
||||
local arch=$5
|
||||
+ local IFS
|
||||
|
||||
local package=$name-$version-$release.$arch
|
||||
[ "$arch" == "" ] && package=$name-$version-$release
|
||||
only in patch2:
|
||||
unchanged:
|
||||
--- a/src/testing.sh
|
||||
+++ b/src/testing.sh
|
||||
@@ -749,6 +749,7 @@ rlRun() {
|
||||
local __INTERNAL_rlRun_TAG_OUT=''
|
||||
local __INTERNAL_rlRun_TAG_ERR=''
|
||||
local __INTERNAL_rlRun_LOG_FILE=''
|
||||
+ local IFS
|
||||
|
||||
while true ; do
|
||||
case "$1" in
|
64
SOURCES/journaling-fixes.patch
Normal file
64
SOURCES/journaling-fixes.patch
Normal file
@ -0,0 +1,64 @@
|
||||
diff -u b/src/python/journalling.py b/src/python/journalling.py
|
||||
--- b/src/python/journalling.py
|
||||
+++ b/src/python/journalling.py
|
||||
@@ -27,7 +27,6 @@
|
||||
import re
|
||||
from optparse import OptionParser
|
||||
from lxml import etree
|
||||
-import shlex
|
||||
import base64
|
||||
|
||||
# TODO fix xml pretty print
|
||||
@@ -100,8 +99,8 @@
|
||||
# Count number of leading spaces
|
||||
indent = len(line) - len(line.lstrip())
|
||||
|
||||
- # using shlex to get rid of the quotes
|
||||
- splitted = shlex.split(line)
|
||||
+ # splitting the line into list
|
||||
+ splitted = line.split()
|
||||
|
||||
# if the line is not empty
|
||||
if splitted:
|
||||
@@ -118,7 +117,9 @@
|
||||
for part in splitted:
|
||||
# if flag is set, string is an elements content
|
||||
if CONTENT_FLAG == 1:
|
||||
- content = base64.b64decode(part)
|
||||
+ # First and last characters(quotes) stripped and
|
||||
+ # string is decoded from base64
|
||||
+ content = base64.b64decode(part[1:-1])
|
||||
# end parsing after content is stored
|
||||
break
|
||||
# test if string is an elements content indicator
|
||||
@@ -128,13 +129,15 @@
|
||||
# test if string is an elements time attribute
|
||||
if re.match(r'^--timestamp=', part):
|
||||
attribute_name = "timestamp"
|
||||
- attribute_value = part.split('=', 1)[1]
|
||||
+ # Value is string after '=' sign and without first abd last char(quotes)
|
||||
+ attribute_value = part.split('=', 1)[1][1:-1]
|
||||
attributes[attribute_name] = time.strftime(TIME_FORMAT, time.localtime(int(attribute_value)))
|
||||
continue
|
||||
# test if string is an elements regular attribute
|
||||
if re.match(r'^--[a-zA-Z0-9]+=', part):
|
||||
attribute_name = part.split('=', 1)[0][2:]
|
||||
- attribute_value = part.split('=', 1)[1]
|
||||
+ # Value is string after '=' sign and without first abd last char(quotes)
|
||||
+ attribute_value = part.split('=', 1)[1][1:-1]
|
||||
attributes[attribute_name] = base64.b64decode(attribute_value)
|
||||
continue
|
||||
|
||||
@@ -145,7 +148,11 @@
|
||||
# information given as parameters
|
||||
def createElement(element, attributes, content):
|
||||
element = unicode(element, 'utf-8', errors='replace').translate(xmlTrans)
|
||||
- new_el = etree.Element(element)
|
||||
+ try:
|
||||
+ new_el = etree.Element(element)
|
||||
+ except ValueError, e:
|
||||
+ sys.stderr.write('Failed to create element with name %s\nError: %s\nExiting unsuccessfully.\n' % (element, e))
|
||||
+ exit(1)
|
||||
|
||||
content = unicode(content, 'utf-8', errors='replace').translate(xmlTrans)
|
||||
new_el.text = content
|
44
SOURCES/journalling-import-check.patch
Normal file
44
SOURCES/journalling-import-check.patch
Normal file
@ -0,0 +1,44 @@
|
||||
From 59f7e0b123fc9789538f610a89d350d76c35106b Mon Sep 17 00:00:00 2001
|
||||
From: Jakub Heger <jheger@redhat.com>
|
||||
Date: Wed, 22 Aug 2018 12:37:49 +0200
|
||||
Subject: [PATCH 2/4] journalling: try import
|
||||
|
||||
imports are now in try block, exceptions cause unsuccessful exit with
|
||||
error message printed
|
||||
---
|
||||
src/python/journalling.py | 20 ++++++++++++--------
|
||||
1 file changed, 12 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/src/python/journalling.py b/src/python/journalling.py
|
||||
index 220d5d2..7a65d78 100755
|
||||
--- a/src/python/journalling.py
|
||||
+++ b/src/python/journalling.py
|
||||
@@ -23,14 +23,18 @@
|
||||
# TODO fix xml pretty print
|
||||
|
||||
|
||||
-import os
|
||||
-import re
|
||||
-import sys
|
||||
-import six
|
||||
-import time
|
||||
-import base64
|
||||
-from lxml import etree
|
||||
-from optparse import OptionParser
|
||||
+try:
|
||||
+ import os
|
||||
+ import re
|
||||
+ import sys
|
||||
+ import six
|
||||
+ import time
|
||||
+ import base64
|
||||
+ from lxml import etree
|
||||
+ from optparse import OptionParser
|
||||
+except ImportError as e:
|
||||
+ sys.stderr.write("Python ImportError: " + str(e) + "\nExiting unsuccessfully.\n")
|
||||
+ exit(1)
|
||||
|
||||
|
||||
xmlForbidden = [0, 1, 2, 3, 4, 5, 6, 7, 8, 11, 12, 14, 15, 16, 17, 18, 19, 20,
|
||||
--
|
||||
2.17.1
|
30
SOURCES/meta-format-fix.patch
Normal file
30
SOURCES/meta-format-fix.patch
Normal file
@ -0,0 +1,30 @@
|
||||
diff -u a/src/journal.sh b/src/journal.sh
|
||||
--- a/src/journal.sh
|
||||
+++ b/src/journal.sh
|
||||
@@ -918,13 +918,13 @@
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case $1 in
|
||||
--)
|
||||
- line+=" -- \"$(echo -n "$2" | base64 -w 0)\""
|
||||
+ line+=" -- $(echo -n "$2" | base64 -w 0)"
|
||||
printf -v lineraw "%s -- %q" "$lineraw" "$2"
|
||||
shift 2
|
||||
break
|
||||
;;
|
||||
--*)
|
||||
- line+=" $1=\"$(echo -n "$2" | base64 -w 0)\""
|
||||
+ line+=" $1=$(echo -n "$2" | base64 -w 0)"
|
||||
printf -v lineraw "%s %s=%q" "$lineraw" "$1" "$2"
|
||||
shift
|
||||
;;
|
||||
@@ -944,8 +944,8 @@
|
||||
|
||||
printf -v indent '%*s' $__INTERNAL_METAFILE_INDENT_LEVEL
|
||||
|
||||
- line="$indent${element:+$element }--timestamp=\"${__INTERNAL_TIMESTAMP}\"$line"
|
||||
- lineraw="$indent${element:+$element }--timestamp=\"${__INTERNAL_TIMESTAMP}\"$lineraw"
|
||||
+ line="$indent${element:+$element }--timestamp=${__INTERNAL_TIMESTAMP}$line"
|
||||
+ lineraw="$indent${element:+$element }--timestamp=${__INTERNAL_TIMESTAMP}$lineraw"
|
||||
[[ -n "$DEBUG" ]] && echo "#${lineraw:1}" >> $__INTERNAL_BEAKERLIB_METAFILE
|
||||
echo "$line" >> $__INTERNAL_BEAKERLIB_METAFILE
|
||||
}
|
76
SOURCES/persistent-data-load.patch
Normal file
76
SOURCES/persistent-data-load.patch
Normal file
@ -0,0 +1,76 @@
|
||||
From e866044b7d2050c5558de8e8e2cc7f7d7f34e715 Mon Sep 17 00:00:00 2001
|
||||
From: Dalibor Pospisil <dapospis@redhat.com>
|
||||
Date: Fri, 2 Feb 2018 11:41:00 +0100
|
||||
Subject: [PATCH 2/5] fixed persistent data load for bash <= 4.1.2
|
||||
|
||||
there's no '-g' option to declare in bash <= 4.1.2
|
||||
therefore declare cannot be used for this purpose
|
||||
---
|
||||
src/journal.sh | 51 +++++++++++++++++++++++++++------------------------
|
||||
1 file changed, 27 insertions(+), 24 deletions(-)
|
||||
|
||||
diff --git a/src/journal.sh b/src/journal.sh
|
||||
index f35d03b..04e4a10 100644
|
||||
--- a/src/journal.sh
|
||||
+++ b/src/journal.sh
|
||||
@@ -937,31 +937,34 @@ __INTERNAL_PrintHeadLog() {
|
||||
# functions __INTERNAL_PersistentDataLoad and __INTERNAL_PersistentDataSave
|
||||
# should be called before and after that respectively.
|
||||
|
||||
+__INTERNAL_PersistentDataSave_sed='s/^declare/\0 -g/'
|
||||
+# ugly workaround for bash-4.1.2 and older, where -g does not exist
|
||||
+# there might be an issue when there's a line break in the variables and there's
|
||||
+# "")'" or "()'" at the end of the line. This should not never happen, the worst
|
||||
+# case might happen in the phase name but is is not expected to contain line
|
||||
+# breaks
|
||||
+declare -g &> /dev/null || __INTERNAL_PersistentDataSave_sed="s/(^declare -a[^=]+=)'\(/\1(/;s/([\"(]\))'$/\1/;s/declare\s+\S+\s+([^=]+=)/\1/"
|
||||
+
|
||||
__INTERNAL_PersistentDataSave() {
|
||||
- local var
|
||||
- (
|
||||
- for var in \
|
||||
- __INTERNAL_STARTTIME \
|
||||
- __INTERNAL_TEST_STATE \
|
||||
- __INTERNAL_PHASES_PASSED \
|
||||
- __INTERNAL_PHASES_FAILED \
|
||||
- __INTERNAL_PHASES_SKIPPED \
|
||||
- __INTERNAL_JOURNAL_OPEN \
|
||||
- __INTERNAL_PHASE_OPEN \
|
||||
- __INTERNAL_PHASES_WORST_RESULT \
|
||||
- __INTERNAL_METAFILE_INDENT_LEVEL \
|
||||
- __INTERNAL_PHASE_TYPE \
|
||||
- __INTERNAL_PHASE_NAME \
|
||||
- __INTERNAL_PHASE_FAILED \
|
||||
- __INTERNAL_PHASE_PASSED \
|
||||
- __INTERNAL_PHASE_STARTTIME \
|
||||
- __INTERNAL_PHASE_TXTLOG_START \
|
||||
- __INTERNAL_PHASE_METRICS \
|
||||
- ;
|
||||
- do
|
||||
- declare -p $var
|
||||
- done
|
||||
- ) | sed -r 's/declare/\0 -g/' > "$__INTERNAL_PERSISTENT_DATA"
|
||||
+ declare -p \
|
||||
+ __INTERNAL_STARTTIME \
|
||||
+ __INTERNAL_TEST_STATE \
|
||||
+ __INTERNAL_PHASES_PASSED \
|
||||
+ __INTERNAL_PHASES_FAILED \
|
||||
+ __INTERNAL_PHASES_SKIPPED \
|
||||
+ __INTERNAL_JOURNAL_OPEN \
|
||||
+ __INTERNAL_PHASE_OPEN \
|
||||
+ __INTERNAL_PHASES_WORST_RESULT \
|
||||
+ __INTERNAL_METAFILE_INDENT_LEVEL \
|
||||
+ __INTERNAL_PHASE_TYPE \
|
||||
+ __INTERNAL_PHASE_NAME \
|
||||
+ __INTERNAL_PHASE_FAILED \
|
||||
+ __INTERNAL_PHASE_PASSED \
|
||||
+ __INTERNAL_PHASE_STARTTIME \
|
||||
+ __INTERNAL_PHASE_TXTLOG_START \
|
||||
+ __INTERNAL_PHASE_METRICS \
|
||||
+ __INTERNAL_TEST_NAME \
|
||||
+ | sed -r "$__INTERNAL_PersistentDataSave_sed" > "$__INTERNAL_PERSISTENT_DATA"
|
||||
}
|
||||
|
||||
__INTERNAL_PersistentDataLoad() {
|
||||
--
|
||||
2.14.3
|
13
SOURCES/phase-names-sanitization.patch
Normal file
13
SOURCES/phase-names-sanitization.patch
Normal file
@ -0,0 +1,13 @@
|
||||
diff --git a/src/journal.sh b/src/journal.sh
|
||||
index 516f292..0ad9913 100644
|
||||
--- a/src/journal.sh
|
||||
+++ b/src/journal.sh
|
||||
@@ -608,7 +625,7 @@ rljClosePhase(){
|
||||
__INTERNAL_LogText ''
|
||||
local logfile="$(mktemp)"
|
||||
tail -n +$((__INTERNAL_PHASE_TXTLOG_START+1)) $__INTERNAL_BEAKERLIB_JOURNAL_TXT > $logfile
|
||||
- rlReport "$(echo "$name" | sed 's/[^[:alnum:]]\+/-/g')" "$result" "$score" "$logfile"
|
||||
+ rlReport "$(echo "${name//[^[:alnum:]]/-}" | tr -s '-')" "$result" "$score" "$logfile"
|
||||
rm -f $logfile
|
||||
|
||||
# Reset of state variables
|
66
SOURCES/platform-python.patch
Normal file
66
SOURCES/platform-python.patch
Normal file
@ -0,0 +1,66 @@
|
||||
diff -u a/src/python/daemonize.py b/src/python/daemonize.py
|
||||
--- a/src/python/daemonize.py
|
||||
+++ b/src/python/daemonize.py
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/python3
|
||||
+#!/usr/libexec/platform-python
|
||||
|
||||
# Authors: Jiri Jaburek <jjaburek@redhat.com>
|
||||
#
|
||||
diff -u a/src/python/journal-compare.py b/src/python/journal-compare.py
|
||||
--- a/src/python/journal-compare.py
|
||||
+++ b/src/python/journal-compare.py
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/python3
|
||||
+#!/usr/libexec/platform-python
|
||||
|
||||
# Copyright (c) 2006 Red Hat, Inc. All rights reserved. This copyrighted material
|
||||
# is made available to anyone wishing to use, modify, copy, or
|
||||
diff -u a/src/python/journalling.py b/src/python/journalling.py
|
||||
--- a/src/python/journalling.py
|
||||
+++ b/src/python/journalling.py
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/python3
|
||||
+#!/usr/libexec/platform-python
|
||||
|
||||
# Authors: Jakub Heger <jheger@redhat.com>
|
||||
# Dalibor Pospisil <dapospis@redhat.com>
|
||||
diff -u a/src/python/rlMemAvg.py b/src/python/rlMemAvg.py
|
||||
--- a/src/python/rlMemAvg.py
|
||||
+++ b/src/python/rlMemAvg.py
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/python3
|
||||
+#!/usr/libexec/platform-python
|
||||
|
||||
# Authors: Petr Muller <pmuller@redhat.com>
|
||||
#
|
||||
diff -u a/src/python/rlMemPeak.py b/src/python/rlMemPeak.py
|
||||
--- a/src/python/rlMemPeak.py
|
||||
+++ b/src/python/rlMemPeak.py
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/python3
|
||||
+#!/usr/libexec/platform-python
|
||||
|
||||
# Authors: Petr Muller <pmuller@redhat.com>
|
||||
#
|
||||
diff -u a/src/python/testwatcher.py b/src/python/testwatcher.py
|
||||
--- a/src/python/testwatcher.py
|
||||
+++ b/src/python/testwatcher.py
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/python3
|
||||
+#!/usr/libexec/platform-python
|
||||
#
|
||||
# Authors: Jiri Jaburek <jjaburek@redhat.com>
|
||||
#
|
||||
diff -u a/src/journal.sh b/src/journal.sh
|
||||
--- a/src/journal.sh
|
||||
+++ b/src/journal.sh
|
||||
@@ -285,7 +285,7 @@
|
||||
__INTERNAL_JournalXMLCreate() {
|
||||
local res=0
|
||||
[[ "$BEAKERLIB_JOURNAL" == "0" ]] || {
|
||||
- if which python &> /dev/null; then
|
||||
+ if which /usr/libexec/platform-python &> /dev/null; then
|
||||
$__INTERNAL_JOURNALIST $__INTERNAL_XSLT --metafile \
|
||||
"$__INTERNAL_BEAKERLIB_METAFILE" --journal "$__INTERNAL_BEAKERLIB_JOURNAL"
|
||||
res=$?
|
45
SOURCES/python2.patch
Normal file
45
SOURCES/python2.patch
Normal file
@ -0,0 +1,45 @@
|
||||
diff -u a/src/python/journal-compare.py b/python/journal-compare.py
|
||||
--- a/src/python/journal-compare.py 2018-05-15 16:16:15.198835559 +0200
|
||||
+++ b/src/python/journal-compare.py 2017-10-17 23:11:48.000000000 +0200
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/python
|
||||
+#!/usr/bin/python2
|
||||
|
||||
# Copyright (c) 2006 Red Hat, Inc. All rights reserved. This copyrighted material
|
||||
# is made available to anyone wishing to use, modify, copy, or
|
||||
diff -u a/src/python/journalling.py b/src/python/journalling.py
|
||||
--- a/src/python/journalling.py 2018-05-15 16:16:21.517818632 +0200
|
||||
+++ b/src/python/journalling.py 2017-10-17 23:11:48.000000000 +0200
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/python
|
||||
+#!/usr/bin/python2
|
||||
|
||||
# Authors: Jakub Heger <jheger@redhat.com>
|
||||
# Dalibor Pospisil <dapospis@redhat.com>
|
||||
diff -u a/src/python/rlMemAvg.py b/src/python/rlMemAvg.py
|
||||
--- a/src/python/rlMemAvg.py 2018-05-15 16:16:24.976809367 +0200
|
||||
+++ b/src/python/rlMemAvg.py 2017-10-17 23:11:48.000000000 +0200
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/python
|
||||
+#!/usr/bin/python2
|
||||
|
||||
# Authors: Petr Muller <pmuller@redhat.com>
|
||||
#
|
||||
diff -u a/src/python/rlMemPeak.py b/src/python/rlMemPeak.py
|
||||
--- a/src/python/rlMemPeak.py 2018-05-15 16:16:29.153798179 +0200
|
||||
+++ b/src/python/rlMemPeak.py 2017-10-17 23:11:48.000000000 +0200
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/python
|
||||
+#!/usr/bin/python2
|
||||
|
||||
# Authors: Petr Muller <pmuller@redhat.com>
|
||||
#
|
||||
diff -u a/src/python/testwatcher.py b/beakerlib-1.17/src/python/testwatcher.py
|
||||
--- a/src/python/testwatcher.py 2018-05-15 16:16:35.369781528 +0200
|
||||
+++ b/src/python/testwatcher.py 2017-10-17 23:11:48.000000000 +0200
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/python -u
|
||||
+#!/usr/bin/python2 -u
|
||||
#
|
||||
# Authors: Jiri Jaburek <jjaburek@redhat.com>
|
||||
#
|
510
SOURCES/python3.patch
Normal file
510
SOURCES/python3.patch
Normal file
@ -0,0 +1,510 @@
|
||||
diff -u a/src/python/daemonize.py b/src/python/new/daemonize.py
|
||||
--- a/src/python/daemonize.py 2017-10-17 23:11:48.000000000 +0200
|
||||
+++ b/src/python/new/daemonize.py 2018-06-25 21:06:09.000000000 +0200
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/env python
|
||||
+#!/usr/bin/python3
|
||||
|
||||
# Authors: Jiri Jaburek <jjaburek@redhat.com>
|
||||
#
|
||||
@@ -18,6 +18,7 @@
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
+from __future__ import print_function
|
||||
import os, sys
|
||||
|
||||
from pwd import getpwnam
|
||||
@@ -96,8 +97,8 @@
|
||||
# with original stderr (in case of errors), but with new uid/gid
|
||||
if ioredir:
|
||||
os.open(ioredir[0], os.O_RDWR)
|
||||
- os.open(ioredir[1], os.O_RDWR | os.O_CREAT | os.O_TRUNC, 0666)
|
||||
- os.open(ioredir[2], os.O_RDWR | os.O_CREAT | os.O_TRUNC, 0666)
|
||||
+ os.open(ioredir[1], os.O_RDWR | os.O_CREAT | os.O_TRUNC, 0o666)
|
||||
+ os.open(ioredir[2], os.O_RDWR | os.O_CREAT | os.O_TRUNC, 0o666)
|
||||
|
||||
os.umask(0)
|
||||
|
||||
@@ -116,7 +117,7 @@
|
||||
|
||||
# argument parsing
|
||||
def error(msg):
|
||||
- print >> sys.stderr, "error: " + str(msg)
|
||||
+ print("error: " + str(msg), file=sys.stderr)
|
||||
sys.exit(1)
|
||||
|
||||
parser = OptionParser(usage='%prog [options] COMMAND')
|
||||
diff -u a/src/python/journal-compare.py b/src/python/new/journal-compare.py
|
||||
--- a/src/python/journal-compare.py 2018-06-25 21:01:54.490910141 +0200
|
||||
+++ b/src/python/new/journal-compare.py 2018-06-25 21:06:13.000000000 +0200
|
||||
@@ -1,6 +1,6 @@
|
||||
-#!/usr/bin/python2
|
||||
+#!/usr/bin/python3
|
||||
|
||||
-# Copyright (c) 2006 Red Hat, Inc. All rights reserved. This copyrighted material
|
||||
+# Copyright (c) 2006 Red Hat, Inc. All rights reserved. This copyrighted material
|
||||
# is made available to anyone wishing to use, modify, copy, or
|
||||
# redistribute it subject to the terms and conditions of the GNU General
|
||||
# Public License v.2.
|
||||
@@ -15,6 +15,7 @@
|
||||
#
|
||||
# Author: Petr Muller <pmuller@redhat.com>
|
||||
|
||||
+from __future__ import print_function
|
||||
import xml.dom.minidom
|
||||
import sys
|
||||
|
||||
@@ -125,9 +126,9 @@
|
||||
self.results = {}
|
||||
|
||||
def addTestResult(self, name, result):
|
||||
- if not self.results.has_key(name):
|
||||
- self.results[name] = Test(name)
|
||||
- self.results[name].addResult(result)
|
||||
+ if name not in self.results:
|
||||
+ self.results[name] = Test(name)
|
||||
+ self.results[name].addResult(result)
|
||||
|
||||
def compare(self, other):
|
||||
result_list = []
|
||||
@@ -135,7 +136,7 @@
|
||||
try:
|
||||
result_list.append(self.results[key].compare(other.results[key]))
|
||||
except KeyError:
|
||||
- print "[WARN] Could not find corresponding test for: %s" % key
|
||||
+ print("[WARN] Could not find corresponding test for: %s" % key)
|
||||
return result_list
|
||||
|
||||
try:
|
||||
@@ -161,7 +162,7 @@
|
||||
new_type, new_name = new_phases[i].getAttribute("type"), new_phases[i].getAttribute("name")
|
||||
|
||||
if old_type == new_type and old_name == new_name:
|
||||
- print "Types match, so we are comparing phase %s of type %s" % (old_type, new_type)
|
||||
+ print( "Types match, so we are comparing phase %s of type %s" % (old_type, new_type))
|
||||
old_tests = TestSet()
|
||||
new_tests = TestSet()
|
||||
old_metrics = {}
|
||||
@@ -179,20 +180,20 @@
|
||||
tolerance = float(metric.getAttribute("tolerance"))
|
||||
metrics[key] = Metric(key, value, metric.getAttribute("type"), tolerance)
|
||||
|
||||
- print "==== Actual compare ===="
|
||||
- print " * Metrics * "
|
||||
+ print("==== Actual compare ====")
|
||||
+ print(" * Metrics * ")
|
||||
metric_results = []
|
||||
for key in old_metrics.keys():
|
||||
metric_results.append(old_metrics[key].compare(new_metrics[key]))
|
||||
for metric in metric_results:
|
||||
for message in metric.messages:
|
||||
- print "[%s] %s (%s)" % (metric.result, metric.name, message)
|
||||
- print " * Tests * "
|
||||
+ print("[%s] %s (%s)" % (metric.result, metric.name, message))
|
||||
+ print(" * Tests * ")
|
||||
test_results = old_tests.compare(new_tests)
|
||||
for test in test_results:
|
||||
- print "[%s] %s" % (test.result, test.name)
|
||||
+ print("[%s] %s" % (test.result, test.name))
|
||||
for message in test.messages:
|
||||
- print "\t - %s" % message
|
||||
+ print("\t - %s" % message)
|
||||
|
||||
else:
|
||||
- print "We are not doing any compare, types dont match"
|
||||
+ print("We are not doing any compare, types dont match")
|
||||
diff -u a/src/python/journalling.py b/src/python/new/journalling.py
|
||||
--- a/src/python/journalling.py 2018-06-25 21:01:54.490910141 +0200
|
||||
+++ b/src/python/new/journalling.py 2018-06-25 21:06:19.000000000 +0200
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/python2
|
||||
+#!/usr/bin/python3
|
||||
|
||||
# Authors: Jakub Heger <jheger@redhat.com>
|
||||
# Dalibor Pospisil <dapospis@redhat.com>
|
||||
@@ -20,16 +20,17 @@
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
+# TODO fix xml pretty print
|
||||
+
|
||||
|
||||
-import sys
|
||||
import os
|
||||
-import time
|
||||
import re
|
||||
-from optparse import OptionParser
|
||||
-from lxml import etree
|
||||
+import sys
|
||||
+import six
|
||||
+import time
|
||||
import base64
|
||||
-
|
||||
-# TODO fix xml pretty print
|
||||
+from lxml import etree
|
||||
+from optparse import OptionParser
|
||||
|
||||
|
||||
xmlForbidden = [0, 1, 2, 3, 4, 5, 6, 7, 8, 11, 12, 14, 15, 16, 17, 18, 19, 20,
|
||||
@@ -51,18 +52,19 @@
|
||||
return self.items[-1]
|
||||
|
||||
|
||||
+# Saves the XML journal to a file.
|
||||
def saveJournal(journal, journal_path):
|
||||
try:
|
||||
output = open(journal_path, 'wb')
|
||||
output.write(etree.tostring(journal, xml_declaration=True, encoding='utf-8', pretty_print=True))
|
||||
output.close()
|
||||
return 0
|
||||
- except IOError, e:
|
||||
+ except IOError as e:
|
||||
sys.stderr.write('Failed to save journal to %s: %s' % (journal_path, str(e)))
|
||||
return 1
|
||||
|
||||
|
||||
-# Adds attributes starttime and endtime to a element
|
||||
+# Adds attributes starttime and endtime to a element.
|
||||
def addStartEndTime(element, starttime, endtime):
|
||||
element.set("starttime", starttime)
|
||||
element.set("endtime", endtime)
|
||||
@@ -72,7 +74,7 @@
|
||||
return 0
|
||||
|
||||
|
||||
-# Find first and last timestamp to fill in starttime and endtime elements of given element
|
||||
+# Find first and last timestamp to fill in starttime and endtime attributes of given element.
|
||||
def getStartEndTime(element):
|
||||
starttime = ""
|
||||
endtime = ""
|
||||
@@ -87,7 +89,7 @@
|
||||
|
||||
# Parses and decodes lines given to it
|
||||
# Returns number of spaces before element, name of the element,
|
||||
-# its attributes in a dictionary, and content of the element
|
||||
+# its attributes in a dictionary, and content of the element.
|
||||
def parseLine(line):
|
||||
TIME_FORMAT = "%Y-%m-%d %H:%M:%S %Z"
|
||||
CONTENT_FLAG = 0
|
||||
@@ -99,12 +101,12 @@
|
||||
# Count number of leading spaces
|
||||
indent = len(line) - len(line.lstrip())
|
||||
|
||||
- # splitting the line into list
|
||||
+ # Splitting the line into a list
|
||||
splitted = line.split()
|
||||
|
||||
- # if the line is not empty
|
||||
+ # If the line is not empty
|
||||
if splitted:
|
||||
- # if first 2 characters are '-', it is not new element, but ending of pair element
|
||||
+ # If first 2 characters are '-', it is not new element, but ending of pair element
|
||||
if splitted[0][0] == '-' and splitted[0][1] == '-':
|
||||
element = ""
|
||||
else:
|
||||
@@ -113,53 +115,82 @@
|
||||
else:
|
||||
return 0, "", {}, ""
|
||||
|
||||
- # parsing the rest of the line
|
||||
+ # Parsing the rest of the line
|
||||
for part in splitted:
|
||||
- # if flag is set, string is an elements content
|
||||
+ # If flag is set, string is an elements content
|
||||
if CONTENT_FLAG == 1:
|
||||
- # First and last characters(quotes) stripped and
|
||||
- # string is decoded from base64
|
||||
- content = base64.b64decode(part[1:-1])
|
||||
- # end parsing after content is stored
|
||||
+ # String is decoded from base64
|
||||
+ try:
|
||||
+ content = base64.b64decode(part)
|
||||
+ except TypeError as e:
|
||||
+ sys.stderr.write('Failed to decode string \'%s\' from base64.\
|
||||
+ \nError: %s\nExiting unsuccessfully.\n' % (part[1:-1], e))
|
||||
+ exit(1)
|
||||
+ # End parsing after content is stored
|
||||
break
|
||||
- # test if string is an elements content indicator
|
||||
+ # Test if string is an elements content indicator
|
||||
if part == '--':
|
||||
CONTENT_FLAG = 1
|
||||
continue
|
||||
- # test if string is an elements time attribute
|
||||
+
|
||||
+ # Test if string is the elements time attribute
|
||||
if re.match(r'^--timestamp=', part):
|
||||
attribute_name = "timestamp"
|
||||
- # Value is string after '=' sign and without first abd last char(quotes)
|
||||
- attribute_value = part.split('=', 1)[1][1:-1]
|
||||
- attributes[attribute_name] = time.strftime(TIME_FORMAT, time.localtime(int(attribute_value)))
|
||||
+ # Value is string after '=' sign
|
||||
+ attribute_value = part.split('=', 1)[1]
|
||||
+ try:
|
||||
+ attributes[attribute_name] = time.strftime(TIME_FORMAT, time.localtime(int(attribute_value)))
|
||||
+ except ValueError as e:
|
||||
+ sys.stderr.write('Failed to convert timestamp attribute to int.\
|
||||
+ \nError: %s\nExiting unsuccessfully.\n' % (e))
|
||||
+ exit(1)
|
||||
continue
|
||||
- # test if string is an elements regular attribute
|
||||
+
|
||||
+ # Test if string is the elements regular attribute
|
||||
if re.match(r'^--[a-zA-Z0-9]+=', part):
|
||||
attribute_name = part.split('=', 1)[0][2:]
|
||||
- # Value is string after '=' sign and without first abd last char(quotes)
|
||||
- attribute_value = part.split('=', 1)[1][1:-1]
|
||||
- attributes[attribute_name] = base64.b64decode(attribute_value)
|
||||
+ # Value is string after '=' sign
|
||||
+ attribute_value = part.split('=', 1)[1]
|
||||
+ try:
|
||||
+ attributes[attribute_name] = base64.b64decode(attribute_value)
|
||||
+ except TypeError as e:
|
||||
+ sys.stderr.write('Failed to decode string \'%s\' from base64.\
|
||||
+ \nError: %s\nExiting unsuccessfully.\n' % (attribute_value, e))
|
||||
+ exit(1)
|
||||
continue
|
||||
|
||||
return indent, element, attributes, content
|
||||
|
||||
|
||||
-# Returns xml element created with
|
||||
+# Returns XML element created with
|
||||
# information given as parameters
|
||||
def createElement(element, attributes, content):
|
||||
- element = unicode(element, 'utf-8', errors='replace').translate(xmlTrans)
|
||||
+ # In python 3 decoding from base64 causes retyping into bytes.
|
||||
+ if isinstance(element, bytes):
|
||||
+ # First bytes are decoded from utf8.
|
||||
+ element = element.decode('utf8', 'replace')
|
||||
+ # And then retyped to string, using 'six' module which adds python 2/3 compatible methods.
|
||||
+ # XML not compatible characters are then also stripped from the string.
|
||||
+ element = six.text_type(element).translate(xmlTrans)
|
||||
+
|
||||
try:
|
||||
new_el = etree.Element(element)
|
||||
- except ValueError, e:
|
||||
+ except ValueError as e:
|
||||
sys.stderr.write('Failed to create element with name %s\nError: %s\nExiting unsuccessfully.\n' % (element, e))
|
||||
exit(1)
|
||||
|
||||
- content = unicode(content, 'utf-8', errors='replace').translate(xmlTrans)
|
||||
- new_el.text = content
|
||||
-
|
||||
- for key, value in attributes.iteritems():
|
||||
- key = unicode(key, 'utf-8', errors='replace').translate(xmlTrans)
|
||||
- value = unicode(value, 'utf-8', errors='replace').translate(xmlTrans)
|
||||
+ if isinstance(content, bytes):
|
||||
+ content = content.decode('utf8', 'replace')
|
||||
+ new_el.text = six.text_type(content).translate(xmlTrans)
|
||||
+
|
||||
+ for key, value in attributes.items():
|
||||
+ if isinstance(key, bytes):
|
||||
+ key = key.decode('utf8', 'replace')
|
||||
+ key = six.text_type(key).translate(xmlTrans)
|
||||
+
|
||||
+ if isinstance(value, bytes):
|
||||
+ value = value.decode('utf8', 'replace')
|
||||
+ value = six.text_type(value).translate(xmlTrans)
|
||||
new_el.set(key, value)
|
||||
return new_el
|
||||
|
||||
@@ -172,7 +203,7 @@
|
||||
if options.metafile:
|
||||
try:
|
||||
fh = open(options.metafile, 'r+')
|
||||
- except IOError, e:
|
||||
+ except IOError as e:
|
||||
sys.stderr.write('Failed to open queue file with' + str(e), 'FAIL')
|
||||
return 1
|
||||
|
||||
@@ -205,8 +236,8 @@
|
||||
previous_el = new_el
|
||||
|
||||
elif indent == old_indent:
|
||||
- # Closing element with updates to it with no elements inside it
|
||||
# TODO refactor
|
||||
+ # Closing element with updates to it with no elements inside it
|
||||
if element == "":
|
||||
# Updating start and end time
|
||||
starttime, endtime = getStartEndTime(previous_el)
|
||||
@@ -214,9 +245,9 @@
|
||||
if "timestamp" in attributes:
|
||||
endtime = attributes["timestamp"]
|
||||
# Updating attributes found on closing line
|
||||
- for key, value in attributes.iteritems():
|
||||
+ for key, value in attributes.items():
|
||||
previous_el.set(key, value)
|
||||
- # add start/end time and remove timestamp attribute
|
||||
+ # Add start/end time and remove timestamp attribute
|
||||
addStartEndTime(previous_el, starttime, endtime)
|
||||
# New element is on the same level as previous one
|
||||
else:
|
||||
@@ -231,7 +262,7 @@
|
||||
elif indent < old_indent:
|
||||
# Difference between indent levels = how many paired elements will be closed
|
||||
indent_diff = old_indent - indent
|
||||
- for _ in xrange(indent_diff):
|
||||
+ for _ in range(indent_diff):
|
||||
el_stack.peek().append(previous_el)
|
||||
previous_el = el_stack.pop()
|
||||
|
||||
@@ -243,9 +274,9 @@
|
||||
if "timestamp" in attributes:
|
||||
endtime = attributes["timestamp"]
|
||||
# Updating attributes found on closing line
|
||||
- for key, value in attributes.iteritems():
|
||||
+ for key, value in attributes.items():
|
||||
previous_el.set(key, value)
|
||||
- # add start/end time and remove timestamp attribute
|
||||
+ # Add start/end time and remove timestamp attribute
|
||||
addStartEndTime(previous_el, starttime, endtime)
|
||||
|
||||
# Ending paired element and creating new one on the same level as the paired one that just ended
|
||||
@@ -285,9 +316,9 @@
|
||||
xslt = etree.parse(options.xslt)
|
||||
transform = etree.XSLT(xslt)
|
||||
journal = transform(journal)
|
||||
- except etree.LxmlError:
|
||||
- sys.stderr.write("\nTransformation template file " + options.xslt +
|
||||
- " could not be parsed.\nAborting journal creation.")
|
||||
+ except etree.LxmlError as e:
|
||||
+ sys.stderr.write("\nTransformation template file \'" + options.xslt +
|
||||
+ "\' could not be parsed.\nError: %s\nAborting journal creation.") % (e)
|
||||
return 1
|
||||
|
||||
if options.journal:
|
||||
diff -u a/src/python/rlMemAvg.py b/src/python/new/rlMemAvg.py
|
||||
--- a/src/python/rlMemAvg.py 2018-06-25 21:01:54.490910141 +0200
|
||||
+++ b/src/python/new/rlMemAvg.py 2018-06-25 21:06:24.000000000 +0200
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/python2
|
||||
+#!/usr/bin/python3
|
||||
|
||||
# Authors: Petr Muller <pmuller@redhat.com>
|
||||
#
|
||||
@@ -18,6 +18,7 @@
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
+from __future__ import print_function
|
||||
import sys, time, re
|
||||
|
||||
use_sub = False
|
||||
@@ -31,7 +32,7 @@
|
||||
use_popen = True
|
||||
|
||||
if len(sys.argv) < 2:
|
||||
- print 'syntax: rlMemAvg <command>'
|
||||
+ print('syntax: rlMemAvg <command>')
|
||||
sys.exit(1)
|
||||
|
||||
proglist = sys.argv[1:]
|
||||
@@ -59,4 +60,4 @@
|
||||
if (use_sub and finish != None) or (use_popen and finish != -1):
|
||||
break
|
||||
|
||||
-print "%d" % (memsum/tick)
|
||||
+print("%d" % (memsum/tick))
|
||||
diff -u a/src/python/rlMemPeak.py b/src/python/new/rlMemPeak.py
|
||||
--- a/src/python/rlMemPeak.py 2018-06-25 21:01:54.491910137 +0200
|
||||
+++ b/src/python/new/rlMemPeak.py 2018-06-25 21:06:28.000000000 +0200
|
||||
@@ -1,6 +1,6 @@
|
||||
-#!/usr/bin/python2
|
||||
+#!/usr/bin/python3
|
||||
|
||||
-# Authors: Petr Muller <pmuller@redhat.com>
|
||||
+# Authors: Petr Muller <pmuller@redhat.com>
|
||||
#
|
||||
# Description: Prints a memory consumption peak of an executed program
|
||||
#
|
||||
@@ -18,6 +18,7 @@
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
|
||||
+from __future__ import print_function
|
||||
import sys, time, re
|
||||
|
||||
use_sub = False
|
||||
@@ -31,7 +32,7 @@
|
||||
use_popen = True
|
||||
|
||||
if len(sys.argv) < 2:
|
||||
- print 'syntax: rlMemPeak <command>'
|
||||
+ print('syntax: rlMemPeak <command>')
|
||||
sys.exit(1)
|
||||
|
||||
proglist = sys.argv[1:]
|
||||
@@ -57,4 +58,4 @@
|
||||
if (use_sub and finish != None) or (use_popen and finish != -1):
|
||||
break
|
||||
|
||||
-print "%d" % (maxmem)
|
||||
+print("%d" % (maxmem))
|
||||
diff -u a/src/python/testwatcher.py b/src/python/new/testwatcher.py
|
||||
--- a/src/python/testwatcher.py 2018-06-25 21:01:54.491910137 +0200
|
||||
+++ b/src/python/new/testwatcher.py 2018-06-25 21:06:32.000000000 +0200
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/python2 -u
|
||||
+#!/usr/bin/python3
|
||||
#
|
||||
# Authors: Jiri Jaburek <jjaburek@redhat.com>
|
||||
#
|
||||
@@ -54,6 +54,7 @@
|
||||
# and the test sends the cleanup path to the watcher again
|
||||
|
||||
|
||||
+from __future__ import print_function
|
||||
import os
|
||||
import sys
|
||||
import signal
|
||||
@@ -105,12 +106,12 @@
|
||||
### HELPERS
|
||||
#
|
||||
def debug(msg):
|
||||
- print 'TESTWATCHER: '+msg
|
||||
+ print('TESTWATCHER: '+msg)
|
||||
sys.stdout.flush()
|
||||
|
||||
|
||||
def fatal(msg):
|
||||
- print >> sys.stderr, 'TESTWATCHER fatal: '+msg
|
||||
+ print('TESTWATCHER fatal: '+msg, file=sys.stderr)
|
||||
sys.stderr.flush()
|
||||
sys.exit(1)
|
||||
|
||||
@@ -153,13 +154,13 @@
|
||||
debug('hooking beah LWD')
|
||||
try:
|
||||
os.makedirs(os.path.dirname(lwd_guard_file))
|
||||
- except OSError, e:
|
||||
+ except OSError as e:
|
||||
if e.errno == errno.EEXIST:
|
||||
pass
|
||||
f = open(lwd_guard_file, 'w')
|
||||
f.write(watchdog_guard_cont)
|
||||
f.close()
|
||||
- os.chmod(lwd_guard_file, 0755)
|
||||
+ os.chmod(lwd_guard_file, 0o755)
|
||||
|
||||
|
||||
# called when EWD (external watchdog) is about to expire
|
||||
@@ -234,7 +235,7 @@
|
||||
try:
|
||||
os.waitpid(cleanuppid, 0)
|
||||
cleanuppid = 0
|
||||
- except OSError, e:
|
||||
+ except OSError as e:
|
||||
if e.errno == errno.EINTR:
|
||||
pass
|
||||
if e.errno == errno.ECHILD:
|
||||
@@ -291,7 +292,7 @@
|
||||
# wait for entire process group
|
||||
os.waitpid(testpid, 0)
|
||||
testpid = 0
|
||||
- except OSError, e:
|
||||
+ except OSError as e:
|
||||
# no traceback if interrupted by a signal
|
||||
if e.errno == errno.EINTR:
|
||||
pass
|
82
SOURCES/reboot-in-phase.patch
Normal file
82
SOURCES/reboot-in-phase.patch
Normal file
@ -0,0 +1,82 @@
|
||||
diff --git a/src/journal.sh b/src/journal.sh
|
||||
index 516f292..0ad9913 100644
|
||||
--- a/src/journal.sh
|
||||
+++ b/src/journal.sh
|
||||
@@ -118,7 +131,6 @@ rlJournalStart(){
|
||||
export __INTERNAL_PERSISTENT_DATA="$BEAKERLIB_DIR/PersistentData"
|
||||
export __INTERNAL_TEST_RESULTS="$BEAKERLIB_DIR/TestResults"
|
||||
export __INTERNAL_JOURNAL_OPEN=''
|
||||
- __INTERNAL_PersistentDataLoad
|
||||
export __INTERNAL_PHASES_FAILED=0
|
||||
export __INTERNAL_PHASES_PASSED=0
|
||||
export __INTERNAL_PHASES_SKIPPED=0
|
||||
@@ -130,16 +142,20 @@ rlJournalStart(){
|
||||
__INTERNAL_PHASE_STARTTIME=()
|
||||
__INTERNAL_PHASE_METRICS=()
|
||||
export __INTERNAL_PHASE_OPEN=0
|
||||
+ __INTERNAL_PersistentDataLoad
|
||||
|
||||
if [[ -z "$__INTERNAL_JOURNAL_OPEN" ]]; then
|
||||
# Create Header for XML journal
|
||||
__INTERNAL_CreateHeader
|
||||
# Create log element for XML journal
|
||||
- __INTERNAL_WriteToMetafile log
|
||||
+ __INTERNAL_WriteToMetafile log || {
|
||||
+ __INTERNAL_LogText "could not write to metafile" FATAL
|
||||
+ exit 1
|
||||
+ }
|
||||
+ __INTERNAL_JOURNAL_OPEN=1
|
||||
+ # Increase level of indent
|
||||
+ __INTERNAL_METAFILE_INDENT_LEVEL=1
|
||||
fi
|
||||
- __INTERNAL_JOURNAL_OPEN=1
|
||||
- # Increase level of indent
|
||||
- __INTERNAL_METAFILE_INDENT_LEVEL=1
|
||||
|
||||
# display a warning message if run in POSIX mode
|
||||
if [ $POSIXFIXED == "YES" ] ; then
|
||||
@@ -938,20 +957,30 @@ __INTERNAL_PrintHeadLog() {
|
||||
# should be called before and after that respectively.
|
||||
|
||||
__INTERNAL_PersistentDataSave() {
|
||||
- cat > "$__INTERNAL_PERSISTENT_DATA" <<EOF
|
||||
-__INTERNAL_STARTTIME=$__INTERNAL_STARTTIME
|
||||
-__INTERNAL_TEST_STATE=$__INTERNAL_TEST_STATE
|
||||
-__INTERNAL_PHASES_PASSED=$__INTERNAL_PHASES_PASSED
|
||||
-__INTERNAL_PHASES_FAILED=$__INTERNAL_PHASES_FAILED
|
||||
-__INTERNAL_PHASES_SKIPPED=$__INTERNAL_PHASES_SKIPPED
|
||||
-__INTERNAL_JOURNAL_OPEN=$__INTERNAL_JOURNAL_OPEN
|
||||
-__INTERNAL_PHASES_WORST_RESULT=$__INTERNAL_PHASES_WORST_RESULT
|
||||
-EOF
|
||||
-declare -p __INTERNAL_PHASE_FAILED >> $__INTERNAL_PERSISTENT_DATA
|
||||
-declare -p __INTERNAL_PHASE_PASSED >> $__INTERNAL_PERSISTENT_DATA
|
||||
-declare -p __INTERNAL_PHASE_STARTTIME >> $__INTERNAL_PERSISTENT_DATA
|
||||
-declare -p __INTERNAL_PHASE_TXTLOG_START >> $__INTERNAL_PERSISTENT_DATA
|
||||
-declare -p __INTERNAL_PHASE_METRICS >> $__INTERNAL_PERSISTENT_DATA
|
||||
+ local var
|
||||
+ (
|
||||
+ for var in \
|
||||
+ __INTERNAL_STARTTIME \
|
||||
+ __INTERNAL_TEST_STATE \
|
||||
+ __INTERNAL_PHASES_PASSED \
|
||||
+ __INTERNAL_PHASES_FAILED \
|
||||
+ __INTERNAL_PHASES_SKIPPED \
|
||||
+ __INTERNAL_JOURNAL_OPEN \
|
||||
+ __INTERNAL_PHASE_OPEN \
|
||||
+ __INTERNAL_PHASES_WORST_RESULT \
|
||||
+ __INTERNAL_METAFILE_INDENT_LEVEL \
|
||||
+ __INTERNAL_PHASE_TYPE \
|
||||
+ __INTERNAL_PHASE_NAME \
|
||||
+ __INTERNAL_PHASE_FAILED \
|
||||
+ __INTERNAL_PHASE_PASSED \
|
||||
+ __INTERNAL_PHASE_STARTTIME \
|
||||
+ __INTERNAL_PHASE_TXTLOG_START \
|
||||
+ __INTERNAL_PHASE_METRICS \
|
||||
+ ;
|
||||
+ do
|
||||
+ declare -p $var
|
||||
+ done
|
||||
+ ) | sed -r 's/declare/\0 -g/' > "$__INTERNAL_PERSISTENT_DATA"
|
||||
}
|
||||
|
||||
__INTERNAL_PersistentDataLoad() {
|
25
SOURCES/reduce-meta.patch
Normal file
25
SOURCES/reduce-meta.patch
Normal file
@ -0,0 +1,25 @@
|
||||
unchanged:
|
||||
--- a/src/journal.sh
|
||||
+++ b/src/journal.sh
|
||||
@@ -922,7 +922,7 @@ __INTERNAL_WriteToMetafile(){
|
||||
|
||||
line="$indent${element:+$element }--timestamp=\"${__INTERNAL_TIMESTAMP}\"$line"
|
||||
lineraw="$indent${element:+$element }--timestamp=\"${__INTERNAL_TIMESTAMP}\"$lineraw"
|
||||
- echo "#${lineraw:1}" >> $__INTERNAL_BEAKERLIB_METAFILE
|
||||
+ [[ -n "$DEBUG" ]] && echo "#${lineraw:1}" >> $__INTERNAL_BEAKERLIB_METAFILE
|
||||
echo "$line" >> $__INTERNAL_BEAKERLIB_METAFILE
|
||||
}
|
||||
|
||||
only in patch2:
|
||||
unchanged:
|
||||
--- a/src/test/journalTest.sh
|
||||
+++ b/src/test/journalTest.sh
|
||||
@@ -26,7 +26,7 @@ test_rlJournalStart(){
|
||||
assertTrue "journal is well-formed XML" "xmllint $__INTERNAL_BEAKERLIB_JOURNAL >/dev/null"
|
||||
|
||||
# existing journal is not overwritten
|
||||
- silentIfNotDebug 'rlLog "I am"'
|
||||
+ silentIfNotDebug 'DEBUG=1 rlLog "I am"'
|
||||
rlJournalStart
|
||||
assertTrue "existing meta not overwritten" \
|
||||
"grep 'I\\\ am' $__INTERNAL_BEAKERLIB_METAFILE"
|
177
SOURCES/result-file.patch
Normal file
177
SOURCES/result-file.patch
Normal file
@ -0,0 +1,177 @@
|
||||
diff -u b/src/journal.sh b/src/journal.sh
|
||||
--- b/src/journal.sh
|
||||
+++ b/src/journal.sh
|
||||
@@ -115,12 +115,13 @@
|
||||
export __INTERNAL_METAFILE_INDENT_LEVEL=0
|
||||
__INTERNAL_PHASE_TYPE=()
|
||||
__INTERNAL_PHASE_NAME=()
|
||||
- export __INTERNAL_PRESISTENT_DATA="$BEAKERLIB_DIR/PersistentData"
|
||||
+ export __INTERNAL_PERSISTENT_DATA="$BEAKERLIB_DIR/PersistentData"
|
||||
+ export __INTERNAL_TEST_RESULTS="$BEAKERLIB_DIR/TestResults"
|
||||
export __INTERNAL_JOURNAL_OPEN=''
|
||||
__INTERNAL_PersistentDataLoad
|
||||
export __INTERNAL_PHASES_FAILED=0
|
||||
export __INTERNAL_PHASES_PASSED=0
|
||||
- export __INTERNAL_PHASES_SKIPED=0
|
||||
+ export __INTERNAL_PHASES_SKIPPED=0
|
||||
export __INTERNAL_PHASES_WORST_RESULT='PASS'
|
||||
export __INTERNAL_TEST_STATE=0
|
||||
__INTERNAL_PHASE_TXTLOG_START=()
|
||||
@@ -249,6 +250,7 @@
|
||||
|
||||
echo "#End of metafile" >> $__INTERNAL_BEAKERLIB_METAFILE
|
||||
__INTERNAL_JournalXMLCreate
|
||||
+ __INTERNAL_TestResultsSave
|
||||
}
|
||||
|
||||
|
||||
@@ -346,11 +348,11 @@
|
||||
|
||||
__INTERNAL_update_journal_txt() {
|
||||
local textfile
|
||||
- local duration=$(($__INTERNAL_TIMESTAMP - $__INTERNAL_STARTTIME))
|
||||
local endtime
|
||||
+ __INTERNAL_DURATION=$(($__INTERNAL_TIMESTAMP - $__INTERNAL_STARTTIME))
|
||||
printf -v endtime "%($__INTERNAL_TIMEFORMAT_LONG)T %s" $__INTERNAL_TIMESTAMP "(still running)"
|
||||
[[ -n "$__INTERNAL_ENDTIME" ]] && printf -v endtime "%($__INTERNAL_TIMEFORMAT_LONG)T" $__INTERNAL_ENDTIME
|
||||
- local sed_patterns="0,/ Test finished : /s/^( Test finished : ).*\$/\1$endtime/;0,/ Test duration : /s/^( Test duration : ).*\$/\1$duration seconds/"
|
||||
+ local sed_patterns="0,/ Test finished : /s/^( Test finished : ).*\$/\1$endtime/;0,/ Test duration : /s/^( Test duration : ).*\$/\1$__INTERNAL_DURATION seconds/"
|
||||
for textfile in "$__INTERNAL_BEAKERLIB_JOURNAL_COLORED" "$__INTERNAL_BEAKERLIB_JOURNAL_TXT"; do
|
||||
sed -r -i "$sed_patterns" "$textfile"
|
||||
done
|
||||
@@ -439,6 +441,43 @@
|
||||
return 0
|
||||
}
|
||||
|
||||
+
|
||||
+# Creation of TestResults file
|
||||
+# Each line of the file contains TESTRESULT_VAR=$RESULT_VALUE
|
||||
+# so the file can be sourced afterwards
|
||||
+__INTERNAL_TestResultsSave(){
|
||||
+ # Set exit code of the test according to worst phase result
|
||||
+ case "$__INTERNAL_PHASES_WORST_RESULT" in
|
||||
+ PASS)
|
||||
+ __TESTRESULT_RESULT_ECODE="0"
|
||||
+ ;;
|
||||
+ WARN)
|
||||
+ __TESTRESULT_RESULT_ECODE="10"
|
||||
+ ;;
|
||||
+ FAIL)
|
||||
+ __TESTRESULT_RESULT_ECODE="20"
|
||||
+ ;;
|
||||
+ *)
|
||||
+ __TESTRESULT_RESULT_ECODE="30"
|
||||
+ ;;
|
||||
+ esac
|
||||
+
|
||||
+ cat > "$__INTERNAL_TEST_RESULTS" <<EOF
|
||||
+# This is a result file of the test in a 'sourceable' form.
|
||||
+# Description of individual variables can be found in beakerlib man page.
|
||||
+TESTRESULT_RESULT_STRING=$__INTERNAL_PHASES_WORST_RESULT
|
||||
+TESTRESULT_RESULT_ECODE=$__TESTRESULT_RESULT_ECODE
|
||||
+TESTRESULT_PHASES_PASSED=$__INTERNAL_PHASES_PASSED
|
||||
+TESTRESULT_PHASES_FAILED=$__INTERNAL_PHASES_FAILED
|
||||
+TESTRESULT_PHASES_SKIPPED=$__INTERNAL_PHASES_SKIPPED
|
||||
+TESTRESULT_ASSERTS_FAILED=$__INTERNAL_TEST_STATE
|
||||
+TESTRESULT_STARTTIME=$__INTERNAL_STARTTIME
|
||||
+TESTRESULT_ENDTIME=$__INTERNAL_ENDTIME
|
||||
+TESTRESULT_DURATION=$__INTERNAL_DURATION
|
||||
+TESTRESULT_BEAKERLIB_DIR=$BEAKERLIB_DIR
|
||||
+EOF
|
||||
+}
|
||||
+
|
||||
# backward compatibility
|
||||
rlCreateLogFromJournal(){
|
||||
rlLogWarning "rlCreateLogFromJournal is obsoleted by rlJournalPrintText"
|
||||
@@ -891,29 +930,29 @@
|
||||
}
|
||||
|
||||
|
||||
-# whenever any of the persistend variable is touched,
|
||||
+# whenever any of the persistent variable is touched,
|
||||
# functions __INTERNAL_PersistentDataLoad and __INTERNAL_PersistentDataSave
|
||||
# should be called before and after that respectively.
|
||||
|
||||
__INTERNAL_PersistentDataSave() {
|
||||
- cat > "$__INTERNAL_PRESISTENT_DATA" <<EOF
|
||||
+ cat > "$__INTERNAL_PERSISTENT_DATA" <<EOF
|
||||
__INTERNAL_STARTTIME=$__INTERNAL_STARTTIME
|
||||
__INTERNAL_TEST_STATE=$__INTERNAL_TEST_STATE
|
||||
__INTERNAL_PHASES_PASSED=$__INTERNAL_PHASES_PASSED
|
||||
__INTERNAL_PHASES_FAILED=$__INTERNAL_PHASES_FAILED
|
||||
-__INTERNAL_PHASES_SKIPED=$__INTERNAL_PHASES_SKIPED
|
||||
+__INTERNAL_PHASES_SKIPPED=$__INTERNAL_PHASES_SKIPPED
|
||||
__INTERNAL_JOURNAL_OPEN=$__INTERNAL_JOURNAL_OPEN
|
||||
__INTERNAL_PHASES_WORST_RESULT=$__INTERNAL_PHASES_WORST_RESULT
|
||||
EOF
|
||||
-declare -p __INTERNAL_PHASE_FAILED >> $__INTERNAL_PRESISTENT_DATA
|
||||
-declare -p __INTERNAL_PHASE_PASSED >> $__INTERNAL_PRESISTENT_DATA
|
||||
-declare -p __INTERNAL_PHASE_STARTTIME >> $__INTERNAL_PRESISTENT_DATA
|
||||
-declare -p __INTERNAL_PHASE_TXTLOG_START >> $__INTERNAL_PRESISTENT_DATA
|
||||
-declare -p __INTERNAL_PHASE_METRICS >> $__INTERNAL_PRESISTENT_DATA
|
||||
+declare -p __INTERNAL_PHASE_FAILED >> $__INTERNAL_PERSISTENT_DATA
|
||||
+declare -p __INTERNAL_PHASE_PASSED >> $__INTERNAL_PERSISTENT_DATA
|
||||
+declare -p __INTERNAL_PHASE_STARTTIME >> $__INTERNAL_PERSISTENT_DATA
|
||||
+declare -p __INTERNAL_PHASE_TXTLOG_START >> $__INTERNAL_PERSISTENT_DATA
|
||||
+declare -p __INTERNAL_PHASE_METRICS >> $__INTERNAL_PERSISTENT_DATA
|
||||
}
|
||||
|
||||
__INTERNAL_PersistentDataLoad() {
|
||||
- [[ -r "$__INTERNAL_PRESISTENT_DATA" ]] && . "$__INTERNAL_PRESISTENT_DATA"
|
||||
+ [[ -r "$__INTERNAL_PERSISTENT_DATA" ]] && . "$__INTERNAL_PERSISTENT_DATA"
|
||||
}
|
||||
|
||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
only in patch2:
|
||||
unchanged:
|
||||
--- a/src/beakerlib.sh
|
||||
+++ b/src/beakerlib.sh
|
||||
@@ -96,6 +96,48 @@ See the BKRDOC section for more information about Automated documentation genera
|
||||
|
||||
=for comment beakerlib-manual-footer
|
||||
|
||||
+=head1 OUTPUT FILES
|
||||
+
|
||||
+Location of test results related output files can be configured by setting BEAKERLIB_DIR variable before running the test. If it is not set, temporary directory is created.
|
||||
+
|
||||
+=head2 journal.txt
|
||||
+
|
||||
+Journal in human readable form.
|
||||
+
|
||||
+=head2 journal.xml
|
||||
+
|
||||
+Journal in XML format, requires python. This dependency can be avoided if the test is run with variable BEAKERLIB_JOURNAL set to 0 in which case journal.xml is not created.
|
||||
+
|
||||
+=head3 XSLT
|
||||
+
|
||||
+XML journal can be transformed through XSLT template. Which template is used is configurable by setting BEAKERLIB_JOURNAL variable. Value can be either filename in which case beakerlib will try to use $INSTALL_DIR/xslt-template/$filename (e.g.: /usr/share/beakerlib/xstl-templates/xunit.xsl) or it can be path to a template anywhere on the system.
|
||||
+
|
||||
+=head2 TestResults
|
||||
+
|
||||
+Overall results of the test in a 'sourceable' form. Each line contains a pair VAR=VALUE. All variable names have 'TESTRESULT_' prefix.
|
||||
+
|
||||
+=head3 List of variables:
|
||||
+
|
||||
+TESTRESULT_RESULT_STRING - Result of the test in a string, e.g.: PASS, FAIL, WARN.
|
||||
+
|
||||
+TESTRESULT_RESULT_ECODE - Result of the test as an integer, 0 equals to PASS.
|
||||
+
|
||||
+TESTRESULT_PHASES_PASSED - Number of phases that ended with PASS.
|
||||
+
|
||||
+TESTRESULT_PHASES_FAILED - Number of phases that ended with non-PASS result.
|
||||
+
|
||||
+TESTRESULT_PHASES_SKIPPED - Number of skipped phases.
|
||||
+
|
||||
+TESTRESULT_ASSERTS_FAILED - Number of asserts that ended with non-PASS result in the whole test.
|
||||
+
|
||||
+TESTRESULT_STARTTIME - Time when test started in seconds since epoch.
|
||||
+
|
||||
+TESTRESULT_ENDTIME - Time when test ended in seconds since epoch.
|
||||
+
|
||||
+TESTRESULT_DURATION - Duration of the test run in seconds.
|
||||
+
|
||||
+TESTRESULT_BEAKERLIB_DIR - Directory with test results files.
|
||||
+
|
||||
=head1 EXAMPLES
|
||||
|
||||
=head2 Simple
|
46
SOURCES/rlRun-output.patch
Normal file
46
SOURCES/rlRun-output.patch
Normal file
@ -0,0 +1,46 @@
|
||||
--- a/src/testing.sh 2018-02-24 14:44:24.213182846 +0100
|
||||
+++ b/src/testing.sh 2018-02-24 14:44:58.046031444 +0100
|
||||
@@ -731,6 +731,12 @@
|
||||
Be aware that there are some variables which can collide with your code executed
|
||||
within rlRun. You should avoid using __INTERNAL_rlRun_* variables.
|
||||
|
||||
+=item
|
||||
+
|
||||
+When any of C<-t> C<-l>, C<-c>, or C<-s> option is used, special file
|
||||
+descriptors 111 and 112 are used to avoid the issue with incomplete log file,
|
||||
+bz1361246.
|
||||
+
|
||||
=back
|
||||
|
||||
B<Warning:> using C<unbuffer> tool is now disabled because of bug 547686.
|
||||
@@ -848,9 +854,28 @@
|
||||
__INTERNAL_PrintText "$__INTERNAL_rlRun_comment_begin" "BEGIN"
|
||||
|
||||
if $__INTERNAL_rlRun_DO_LOG || $__INTERNAL_rlRun_DO_TAG || $__INTERNAL_rlRun_DO_KEEP; then
|
||||
- eval "$__INTERNAL_rlRun_command" 2> >(sed -u -e "s/^/$__INTERNAL_rlRun_TAG_ERR/g" |
|
||||
- tee -a $__INTERNAL_rlRun_LOG_FILE) 1> >(sed -u -e "s/^/$__INTERNAL_rlRun_TAG_OUT/g" | tee -a $__INTERNAL_rlRun_LOG_FILE)
|
||||
+ # handle issue with incomplete logs (bz1361246), this could be improved using coproc
|
||||
+ # in RHEL-6 and higher
|
||||
+ # open file descriptors to parsing processes
|
||||
+ exec 111> >(sed -u -e "s/^/$__INTERNAL_rlRun_TAG_OUT/g" | tee -a $__INTERNAL_rlRun_LOG_FILE)
|
||||
+ local __INTERNAL_rlRun_OUTpid=$!
|
||||
+ exec 112> >(sed -u -e "s/^/$__INTERNAL_rlRun_TAG_ERR/g" | tee -a $__INTERNAL_rlRun_LOG_FILE)
|
||||
+ local __INTERNAL_rlRun_ERRpid=$!
|
||||
+ eval "$__INTERNAL_rlRun_command" 2>&112 1>&111
|
||||
local __INTERNAL_rlRun_exitcode=$?
|
||||
+ # close parsing processes
|
||||
+ exec 111>&-
|
||||
+ exec 112>&-
|
||||
+ # wait for parsing processes to finish their job
|
||||
+ local __INTERNAL_rlRun_counter=0
|
||||
+ while kill -0 $__INTERNAL_rlRun_OUTpid 2>/dev/null || kill -0 $__INTERNAL_rlRun_ERRpid 2>/dev/null; do
|
||||
+ [[ $((__INTERNAL_rlRun_counter++)) -gt 12000 ]] && {
|
||||
+ rlLogError "waiting for flushing the output timed out, there might be some data missing in the output file"
|
||||
+ break
|
||||
+ }
|
||||
+ sleep 0.01;
|
||||
+ done
|
||||
+ rlLogDebug "waiting for parsing processes took $__INTERNAL_rlRun_counter cycles"
|
||||
else
|
||||
eval "$__INTERNAL_rlRun_command"
|
||||
local __INTERNAL_rlRun_exitcode=$?
|
26
SOURCES/rxvt-terminals-coloring.patch
Normal file
26
SOURCES/rxvt-terminals-coloring.patch
Normal file
@ -0,0 +1,26 @@
|
||||
From e6a98ff289c0c085767c2e910e0a3fb983d8b273 Mon Sep 17 00:00:00 2001
|
||||
From: Alois Mahdal <amahdal@redhat.com>
|
||||
Date: Thu, 1 Feb 2018 15:12:12 +0100
|
||||
Subject: [PATCH 1/5] Enable colors on rxvt terminals
|
||||
|
||||
rxvt-unicode sets TERM to 'rxvt-unicode'. plain old rxvt sets it to
|
||||
`rxvt`.
|
||||
---
|
||||
src/logging.sh | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/logging.sh b/src/logging.sh
|
||||
index 2d3972a..38a0466 100644
|
||||
--- a/src/logging.sh
|
||||
+++ b/src/logging.sh
|
||||
@@ -175,7 +175,7 @@ __INTERNAL_color_set() {
|
||||
[[ -t 1 ]] || T=""
|
||||
[[ -t 2 ]] || T=""
|
||||
case $T in
|
||||
- xterm*|screen|linux)
|
||||
+ xterm*|screen|linux|rxvt*)
|
||||
__INTERNAL_color_black="\e[0;30m"
|
||||
__INTERNAL_color_dark_gray="\e[1;30m"
|
||||
__INTERNAL_color_red="\e[0;31m"
|
||||
--
|
||||
2.14.3
|
29
SOURCES/srpm-fetch.patch
Normal file
29
SOURCES/srpm-fetch.patch
Normal file
@ -0,0 +1,29 @@
|
||||
From 24d774fb27375f0848d56603be873937d23209cc Mon Sep 17 00:00:00 2001
|
||||
From: Zdenek Zambersky <zzambers@redhat.com>
|
||||
Date: Thu, 2 Aug 2018 16:50:35 +0200
|
||||
Subject: [PATCH 1/4] rpms.sh: fixed search url for src rpms
|
||||
|
||||
---
|
||||
src/rpms.sh | 7 ++++++-
|
||||
1 file changed, 6 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/rpms.sh b/src/rpms.sh
|
||||
index 66d9aa8..878abba 100644
|
||||
--- a/src/rpms.sh
|
||||
+++ b/src/rpms.sh
|
||||
@@ -671,7 +671,12 @@ __INTERNAL_rpmGetNextUrl() {
|
||||
;;
|
||||
koji,nvra.rpm)
|
||||
rlLogDebug "$FUNCNAME(): get rpm info"
|
||||
- local rpm_info=$($__INTERNAL_WGET -O - "$base_url/search?match=exact&type=rpm&terms=$N-$V-$R.$A.rpm")
|
||||
+ local rpm_info
|
||||
+ if [[ -n "$source" ]]; then
|
||||
+ rpm_info=$($__INTERNAL_WGET -O - "$base_url/search?match=exact&type=rpm&terms=$N-$V-$R.src.rpm")
|
||||
+ else
|
||||
+ rpm_info=$($__INTERNAL_WGET -O - "$base_url/search?match=exact&type=rpm&terms=$N-$V-$R.$A.rpm")
|
||||
+ fi
|
||||
[[ $? -ne 0 || -z "$rpm_info" ]] && {
|
||||
rlLogError "could not download rpm information"
|
||||
let res++
|
||||
--
|
||||
2.17.1
|
25
SOURCES/test-built-time.patch
Normal file
25
SOURCES/test-built-time.patch
Normal file
@ -0,0 +1,25 @@
|
||||
From 41cd84632aa1e5d4a5876a780f10864e87580e41 Mon Sep 17 00:00:00 2001
|
||||
From: Dalibor Pospisil <dapospis@redhat.com>
|
||||
Date: Wed, 18 Oct 2017 10:52:23 +0200
|
||||
Subject: [PATCH] fixed typo
|
||||
|
||||
---
|
||||
src/journal.sh | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/journal.sh b/src/journal.sh
|
||||
index 03d4fad..e7d65f2 100644
|
||||
--- a/src/journal.sh
|
||||
+++ b/src/journal.sh
|
||||
@@ -722,7 +722,7 @@ __INTERNAL_CreateHeader(){
|
||||
package="${packagename:-$test_version}"
|
||||
local test_built
|
||||
[[ -n "$package" ]] && test_built=$(rpm -q --qf '%{BUILDTIME}\n' $package) && {
|
||||
- test_built="$(ehco "$test_built" | head -n 1 )"
|
||||
+ test_built="$(echo "$test_built" | head -n 1 )"
|
||||
printf -v test_built "%($__INTERNAL_TIMEFORMAT_LONG)T" "$test_built"
|
||||
__INTERNAL_WriteToMetafile testversion -- "$test_built"
|
||||
__INTERNAL_LogText " Test built : $test_built" 2> /dev/null
|
||||
--
|
||||
2.13.6
|
||||
|
85
SOURCES/unified-footer.patch
Normal file
85
SOURCES/unified-footer.patch
Normal file
@ -0,0 +1,85 @@
|
||||
From c8b0fdde74b7cb1717454992772ab63e6cffd234 Mon Sep 17 00:00:00 2001
|
||||
From: Dalibor Pospisil <dapospis@redhat.com>
|
||||
Date: Fri, 2 Feb 2018 15:16:58 +0100
|
||||
Subject: [PATCH 5/5] unify footer printing
|
||||
|
||||
make footer of the phase and also the footer of whole test formated the same
|
||||
it also removes controversary strong splitter of footer
|
||||
---
|
||||
src/journal.sh | 47 ++++++++++++++++++++++++++++++++++++++++-------
|
||||
1 file changed, 40 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/src/journal.sh b/src/journal.sh
|
||||
index 867d08f..f3f2b78 100644
|
||||
--- a/src/journal.sh
|
||||
+++ b/src/journal.sh
|
||||
@@ -255,8 +255,13 @@ rlJournalEnd(){
|
||||
|
||||
echo "#End of metafile" >> $__INTERNAL_BEAKERLIB_METAFILE
|
||||
|
||||
- __INTERNAL_LogText "Phases: $__INTERNAL_PHASES_PASSED good, $__INTERNAL_PHASES_FAILED bad" LOG 2>&1
|
||||
- __INTERNAL_LogText "RESULT: $__INTERNAL_TEST_NAME" $__INTERNAL_PHASES_WORST_RESULT 2>&1
|
||||
+ __INTERNAL_PrintFootLog $__INTERNAL_STARTTIME \
|
||||
+ $__INTERNAL_ENDTIME \
|
||||
+ Phases \
|
||||
+ $__INTERNAL_PHASES_PASSED \
|
||||
+ $__INTERNAL_PHASES_FAILED \
|
||||
+ $__INTERNAL_PHASES_WORST_RESULT \
|
||||
+ "OVERALL"
|
||||
|
||||
__INTERNAL_JournalXMLCreate
|
||||
__INTERNAL_TestResultsSave
|
||||
@@ -603,11 +608,12 @@ rljClosePhase(){
|
||||
rlLogDebug "rljClosePhase: Phase $name closed"
|
||||
__INTERNAL_SET_TIMESTAMP
|
||||
local endtime="$__INTERNAL_TIMESTAMP"
|
||||
- __INTERNAL_LogText "________________________________________________________________________________"
|
||||
- __INTERNAL_LogText "Duration: $((endtime - __INTERNAL_PHASE_STARTTIME))s" LOG
|
||||
- __INTERNAL_LogText "Assertions: $__INTERNAL_PHASE_PASSED good, $__INTERNAL_PHASE_FAILED bad" LOG
|
||||
- __INTERNAL_LogText "RESULT: $name" $result
|
||||
- __INTERNAL_LogText ''
|
||||
+ __INTERNAL_PrintFootLog $__INTERNAL_PHASE_STARTTIME \
|
||||
+ $endtime \
|
||||
+ Assertions \
|
||||
+ $__INTERNAL_PHASE_PASSED \
|
||||
+ $__INTERNAL_PHASE_FAILED \
|
||||
+ $result
|
||||
local logfile="$(mktemp)"
|
||||
tail -n +$((__INTERNAL_PHASE_TXTLOG_START+1)) $__INTERNAL_BEAKERLIB_JOURNAL_TXT > $logfile
|
||||
rlReport "$(echo "${name//[^[:alnum:]]/-}" | tr -s '-')" "$result" "$score" "$logfile"
|
||||
@@ -934,6 +940,33 @@ __INTERNAL_PrintHeadLog() {
|
||||
}
|
||||
|
||||
|
||||
+# $1 - start time
|
||||
+# $2 - end time
|
||||
+# $3 - stat name
|
||||
+# $4 - stat good
|
||||
+# $5 - stat bad
|
||||
+# $6 - result
|
||||
+# $7 - result prefix '<PREFIX> RESULT: <RESULT>'
|
||||
+__INTERNAL_PrintFootLog(){
|
||||
+ local result_colored
|
||||
+ local starttime="$1"
|
||||
+ local endtime="$2"
|
||||
+ local stat_name="$3"
|
||||
+ local stat_good="$4"
|
||||
+ local stat_bad="$5"
|
||||
+ local result="$6"
|
||||
+ local result_pref="$7"
|
||||
+ [[ -n "$result_pref" ]] && result_pref+=" "
|
||||
+ __INTERNAL_colorize_prio "$result" result_colored
|
||||
+ __INTERNAL_LogText "::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"
|
||||
+ __INTERNAL_LogText ":: Duration: $((endtime - starttime))s"
|
||||
+ __INTERNAL_LogText ":: $stat_name: $stat_good good, $stat_bad bad"
|
||||
+ __INTERNAL_LogText ":: ${result_pref}RESULT: $result" '' '' \
|
||||
+ ":: ${result_pref}RESULT: $result_colored"
|
||||
+ __INTERNAL_LogText ''
|
||||
+}
|
||||
+
|
||||
+
|
||||
# whenever any of the persistent variable is touched,
|
||||
# functions __INTERNAL_PersistentDataLoad and __INTERNAL_PersistentDataSave
|
||||
# should be called before and after that respectively.
|
||||
--
|
||||
2.14.3
|
41
SOURCES/var-TEST.patch
Normal file
41
SOURCES/var-TEST.patch
Normal file
@ -0,0 +1,41 @@
|
||||
From 30c5a9b8982e6342cfff28871083f36efc80f52b Mon Sep 17 00:00:00 2001
|
||||
From: Dalibor Pospisil <dapospis@redhat.com>
|
||||
Date: Tue, 12 Dec 2017 14:34:35 +0100
|
||||
Subject: [PATCH 14/18] leave variable TEST intact
|
||||
|
||||
---
|
||||
src/journal.sh | 10 +++++-----
|
||||
1 file changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/src/journal.sh b/src/journal.sh
|
||||
index 092de14..8e68fb3 100644
|
||||
--- a/src/journal.sh
|
||||
+++ b/src/journal.sh
|
||||
@@ -432,9 +432,9 @@ rlJournalPrintText(){
|
||||
cat "$textfile"
|
||||
|
||||
local __INTERNAL_LogText_no_file=1
|
||||
- __INTERNAL_PrintHeadLog "${TEST}" 2>&1
|
||||
+ __INTERNAL_PrintHeadLog "${__INTERNAL_TEST_NAME}" 2>&1
|
||||
__INTERNAL_LogText "Phases: $__INTERNAL_PHASES_PASSED good, $__INTERNAL_PHASES_FAILED bad" LOG 2>&1
|
||||
- __INTERNAL_LogText "RESULT: $TEST" $__INTERNAL_PHASES_WORST_RESULT 2>&1
|
||||
+ __INTERNAL_LogText "RESULT: $__INTERNAL_TEST_NAME" $__INTERNAL_PHASES_WORST_RESULT 2>&1
|
||||
|
||||
return 0
|
||||
}
|
||||
@@ -779,9 +779,9 @@ __INTERNAL_CreateHeader(){
|
||||
__INTERNAL_LogText " Test duration : " 2> /dev/null
|
||||
|
||||
# Test name
|
||||
- TEST="${TEST:-unknown}"
|
||||
- __INTERNAL_WriteToMetafile testname -- "${TEST}"
|
||||
- __INTERNAL_LogText " Test name : ${TEST}" 2> /dev/null
|
||||
+ __INTERNAL_TEST_NAME="${TEST:-unknown}"
|
||||
+ __INTERNAL_WriteToMetafile testname -- "${__INTERNAL_TEST_NAME}"
|
||||
+ __INTERNAL_LogText " Test name : ${__INTERNAL_TEST_NAME}" 2> /dev/null
|
||||
|
||||
# OS release
|
||||
local release=$(cat /etc/redhat-release)
|
||||
--
|
||||
2.14.3
|
||||
|
77
SOURCES/wget2curl-fallback.patch
Normal file
77
SOURCES/wget2curl-fallback.patch
Normal file
@ -0,0 +1,77 @@
|
||||
From 10520de65d10d2ab34329e24144aa922a430b229 Mon Sep 17 00:00:00 2001
|
||||
From: Dalibor Pospisil <dapospis@redhat.com>
|
||||
Date: Wed, 22 Aug 2018 13:09:47 +0200
|
||||
Subject: [PATCH 4/4] use wget or curl for web download
|
||||
|
||||
Now there's a fallback to curl if wget is not available.
|
||||
Wget has still a preference as it has got better progress printing while
|
||||
the output is redirected to a file.
|
||||
---
|
||||
src/rpms.sh | 32 +++++++++++++++++++++++++++-----
|
||||
1 file changed, 27 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/src/rpms.sh b/src/rpms.sh
|
||||
index 878abba..e51dd4f 100644
|
||||
--- a/src/rpms.sh
|
||||
+++ b/src/rpms.sh
|
||||
@@ -630,7 +630,27 @@ __INTERNAL_rpmInitUrl() {
|
||||
}
|
||||
|
||||
|
||||
-__INTERNAL_WGET="wget -t 3 -T 180 -w 20 --waitretry=30 --no-check-certificate --progress=dot:giga"
|
||||
+__INTERNAL_WGET() {
|
||||
+ local QUIET
|
||||
+ [[ "$1" == "--quiet" ]] && { QUIET=1; shift; }
|
||||
+ local URL="$2"
|
||||
+ local FILE="$1"
|
||||
+ local res=0
|
||||
+ if which wget &> /dev/null; then
|
||||
+ rlLogDebug "$FUNCNAME(): using wget for download"
|
||||
+ QUIET="${QUIET:+--quiet}"
|
||||
+ wget $QUIET -t 3 -T 180 -w 20 --waitretry=30 --no-check-certificate --progress=dot:giga -O $FILE $URL || let res++
|
||||
+ elif which curl &> /dev/null; then
|
||||
+ rlLogDebug "$FUNCNAME(): using curl for download"
|
||||
+ QUIET="${QUIET:+--silent}"
|
||||
+ [[ -t 2 ]] || QUIET="${QUIET:---silent --show-error}"
|
||||
+ curl $QUIET --location --retry-connrefused --retry-delay 3 --retry-max-time 3600 --retry 3 --connect-timeout 180 --max-time 1800 --insecure -o $FILE "$URL" || let res++
|
||||
+ else
|
||||
+ rlLogError "$FUNCNAME(): no tool for downloading web content is available"
|
||||
+ let res++
|
||||
+ fi
|
||||
+ return $res
|
||||
+}
|
||||
|
||||
# __INTERNAL_rpmGetNextUrl N V R A | --source N V R
|
||||
__INTERNAL_rpmGetNextUrl() {
|
||||
@@ -673,9 +695,9 @@ __INTERNAL_rpmGetNextUrl() {
|
||||
rlLogDebug "$FUNCNAME(): get rpm info"
|
||||
local rpm_info
|
||||
if [[ -n "$source" ]]; then
|
||||
- rpm_info=$($__INTERNAL_WGET -O - "$base_url/search?match=exact&type=rpm&terms=$N-$V-$R.src.rpm")
|
||||
+ rpm_info=$(__INTERNAL_WGET - "$base_url/search?match=exact&type=rpm&terms=$N-$V-$R.src.rpm")
|
||||
else
|
||||
- rpm_info=$($__INTERNAL_WGET -O - "$base_url/search?match=exact&type=rpm&terms=$N-$V-$R.$A.rpm")
|
||||
+ rpm_info=$(__INTERNAL_WGET - "$base_url/search?match=exact&type=rpm&terms=$N-$V-$R.$A.rpm")
|
||||
fi
|
||||
[[ $? -ne 0 || -z "$rpm_info" ]] && {
|
||||
rlLogError "could not download rpm information"
|
||||
@@ -692,7 +714,7 @@ __INTERNAL_rpmGetNextUrl() {
|
||||
rlLogDebug "$FUNCNAME(): extracted buildurl='$buildurl'"
|
||||
[[ "$buildurl" =~ http ]] || buildurl="$base_url/$buildurl"
|
||||
rlLogDebug "$FUNCNAME(): using buildurl='$buildurl'"
|
||||
- local buildinfo=$($__INTERNAL_WGET -O - "$buildurl")
|
||||
+ local buildinfo=$(__INTERNAL_WGET - "$buildurl")
|
||||
[[ $? -ne 0 || -z "$buildinfo" ]] && {
|
||||
rlLogError "could not download build information"
|
||||
let res++
|
||||
@@ -752,7 +774,7 @@ __INTERNAL_rpmDirectDownload() {
|
||||
url="$__INTERNAL_RETURN_VALUE"; unset __INTERNAL_RETURN_VALUE
|
||||
local pkg=$(basename "$url")
|
||||
rlLog "trying download from '$url'"
|
||||
- if $__INTERNAL_WGET $quiet -O $pkg "$url"; then
|
||||
+ if __INTERNAL_WGET $quiet $pkg "$url"; then
|
||||
rlLogDebug "$FUNCNAME(): package '$pkg' was successfully downloaded"
|
||||
echo "$pkg"
|
||||
return 0
|
||||
--
|
||||
2.17.1
|
@ -1,90 +1,69 @@
|
||||
Name: beakerlib
|
||||
Summary: A shell-level integration testing library
|
||||
Version: 1.29.2
|
||||
Release: 2%{?dist}
|
||||
Version: 1.17
|
||||
Release: 19%{?dist}
|
||||
License: GPLv2
|
||||
Group: Development/Libraries
|
||||
BuildArch: noarch
|
||||
URL: https://github.com/%{name}
|
||||
Autoreq: 0
|
||||
Requires: nfs-utils
|
||||
Requires: /bin/bash
|
||||
Requires: /bin/sh
|
||||
%if 0%{?fedora}
|
||||
Recommends: /usr/bin/python3
|
||||
%endif
|
||||
%if 0%{?rhel} > 7
|
||||
Recommends: /usr/libexec/platform-python
|
||||
%else
|
||||
# rhel <= 7
|
||||
Requires: /usr/bin/python
|
||||
%endif
|
||||
%if 0%{?rhel} < 8
|
||||
Requires: /usr/bin/perl
|
||||
Requires: wget
|
||||
Requires: python-lxml
|
||||
Requires: /usr/bin/xmllint
|
||||
%else
|
||||
# rhel > 7 and fedora
|
||||
Recommends: /usr/bin/perl
|
||||
Requires: (wget or curl)
|
||||
Suggests: wget
|
||||
Recommends: python3-lxml
|
||||
Recommends: /usr/bin/xmllint
|
||||
%endif
|
||||
Requires: grep
|
||||
Requires: sed
|
||||
Requires: iproute
|
||||
Requires: net-tools
|
||||
Requires: coreutils
|
||||
Requires: tar
|
||||
Requires: gzip
|
||||
Requires: util-linux
|
||||
Requires: which
|
||||
%if 0%{?fedora}
|
||||
Requires: dnf-utils
|
||||
%else
|
||||
Requires: yum-utils
|
||||
%endif
|
||||
Requires: /usr/bin/bc
|
||||
Requires: /usr/bin/time
|
||||
%if 0%{?rhel} < 8
|
||||
%else
|
||||
Recommends: beakerlib-redhat
|
||||
%endif
|
||||
Requires: (wget or curl)
|
||||
Suggests: wget
|
||||
Recommends: python3-lxml
|
||||
Recommends: xmllint
|
||||
Obsoletes: rhtslib beaker-lib
|
||||
Provides: rhtslib beaker-lib
|
||||
Conflicts: beakerlib-redhat < 1-30
|
||||
|
||||
BuildRequires: /usr/bin/pod2man
|
||||
BuildRequires: perl-generators
|
||||
BuildRequires: util-linux
|
||||
BuildRequires: make
|
||||
|
||||
Source0: https://github.com/beakerlib/beakerlib/archive/%{name}-%{version}.tar.gz
|
||||
Source1: %{name}-tmpfiles.conf
|
||||
|
||||
Patch0: bugzilla-links.patch
|
||||
Patch1: bugzilla-links-epel.patch
|
||||
Patch2: python3.patch
|
||||
Patch3: python-platform.patch
|
||||
Patch1: test-built-time.patch
|
||||
Patch2: result-file.patch
|
||||
Patch3: ifs-issue.patch
|
||||
Patch4: journaling-fixes.patch
|
||||
Patch5: get-text-journal-size.patch
|
||||
Patch6: var-TEST.patch
|
||||
Patch7: reduce-meta.patch
|
||||
Patch8: enable-nested-phases.patch
|
||||
Patch9: debug-to-console.patch
|
||||
Patch10: phase-names-sanitization.patch
|
||||
Patch11: reboot-in-phase.patch
|
||||
Patch12: rxvt-terminals-coloring.patch
|
||||
Patch13: persistent-data-load.patch
|
||||
Patch14: final-summary-in-rlJournalEnd.patch
|
||||
Patch15: extended-coloring-capabilities.patch
|
||||
Patch16: unified-footer.patch
|
||||
Patch17: rlRun-output.patch
|
||||
Patch18: python2.patch
|
||||
Patch19: python3.patch
|
||||
Patch20: srpm-fetch.patch
|
||||
Patch21: journalling-import-check.patch
|
||||
Patch22: handle-missing-python.patch
|
||||
Patch23: wget2curl-fallback.patch
|
||||
Patch24: platform-python.patch
|
||||
Patch25: meta-format-fix.patch
|
||||
|
||||
%prep
|
||||
%autosetup -N
|
||||
%if 0%{?fedora}
|
||||
# Patch0: bugzilla-links.patch
|
||||
%patch0 -p1
|
||||
%else
|
||||
# rhel
|
||||
# Patch1: bugzilla-links-epel.patch
|
||||
%patch1 -p1
|
||||
%endif
|
||||
|
||||
%if 0%{?fedora}
|
||||
# Patch2: python3.patch
|
||||
%patch2 -p1
|
||||
%endif
|
||||
%if 0%{?rhel} > 7
|
||||
# Patch3: python-platform.patch
|
||||
%patch3 -p1
|
||||
%endif
|
||||
|
||||
%autosetup -p1
|
||||
|
||||
%build
|
||||
make build
|
||||
@ -102,6 +81,7 @@ The BeakerLib project means to provide a library of various helpers, which
|
||||
could be used when writing operating system level integration tests.
|
||||
|
||||
%files
|
||||
%defattr(-,root,root,-)
|
||||
%dir %{_datadir}/%{name}
|
||||
%dir %{_datadir}/%{name}/xslt-templates
|
||||
%dir %{_pkgdocdir}
|
||||
@ -117,9 +97,9 @@ could be used when writing operating system level integration tests.
|
||||
|
||||
%package vim-syntax
|
||||
Summary: Files for syntax highlighting BeakerLib tests in VIM editor
|
||||
Group: Development/Libraries
|
||||
Requires: vim-common
|
||||
BuildRequires: vim-common
|
||||
BuildRequires: make
|
||||
|
||||
%description vim-syntax
|
||||
Files for syntax highlighting BeakerLib tests in VIM editor
|
||||
@ -129,111 +109,7 @@ Files for syntax highlighting BeakerLib tests in VIM editor
|
||||
%{_datadir}/vim/vimfiles/after/syntax/beakerlib.vim
|
||||
|
||||
%changelog
|
||||
* Thu Aug 25 2022 Dalibor Pospisil <dapospis@redhat.com> - 1.29.2-2
|
||||
- improved performance and memory consumption of the fingerprint feature
|
||||
|
||||
* Mon Aug 8 2022 Dalibor Pospisil <dapospis@redhat.com> - 1.29.1-2
|
||||
- rlImport: upwards traversal start in the current directory
|
||||
- rlImport: support '.' to import lib.sh from the current directory
|
||||
- rlImport: can handle libraries required by the fmf_id in different forms than (url, name)
|
||||
also name-only. Also the path attribute is considered
|
||||
- fingerprint: an asserts fingerprint and phases fingerprint is computed
|
||||
it is printed as a message and it is also available in the TestResults file
|
||||
- fixed a check for os-release file existence
|
||||
- fixed LOG_LEVEL usage
|
||||
- removed dependency on selinuxenabled
|
||||
- fixed a few typos, thanks to jwakely@fedoraproject.org
|
||||
|
||||
* Tue Nov 9 2021 Dalibor Pospisil <dapospis@redhat.com> - 1.28-1
|
||||
- cleanup rlRun_LOG files at rlJournalEnd
|
||||
- close journal in rlDie - generate journal.xml at that moment
|
||||
- implemented functions rlIsOS, rlIsOSLike, rlIsOSVersion, and rlIsRHELLike
|
||||
- rlAssertRequired can now handle versioned dependencies
|
||||
- new functions rlCheckRerquired, rlCheckRecommended, and rlCheckDependencies
|
||||
|
||||
* Thu Mar 25 2021 Dalibor Pospisil <dapospis@redhat.com> - 1.27-1
|
||||
- rlCheckRequirements is now able to check also versions requirements
|
||||
|
||||
* Tue Mar 9 2021 Dalibor Pospisil <dapospis@redhat.com> - 1.26-1
|
||||
- fixed rlServiceDisable if called without rlServiceEnable beforehand
|
||||
- few internal fixes
|
||||
|
||||
* Tue Feb 9 2021 Dalibor Pospisil <dapospis@redhat.com> - 1.25-1
|
||||
- rebased yash to version 1.2, fixes the backtick iterpretation
|
||||
- docs fixes, by Štěpán Němec <snemec@redhat.com>
|
||||
|
||||
* Sat Jan 30 2021 Dalibor Pospisil <dapospis@redhat.com> - 1.24-1
|
||||
- rlImport --all imports only required libraries, not recommend
|
||||
- implemented chkconfig fallback to systemctl
|
||||
- fixed `make test` test suite execution
|
||||
|
||||
* Tue Jan 26 2021 Dalibor Pospisil <dapospis@redhat.com> - 1.23-1
|
||||
- TestResults state indicator
|
||||
- profiling code
|
||||
- rebased yash to 1.1
|
||||
- fixed rlAssertLesser
|
||||
- fixed failed library load name logging
|
||||
|
||||
* Fri Jan 15 2021 Dalibor Pospisil <dapospis@redhat.com> - 1.22-1
|
||||
- ability to parse fmf id references
|
||||
- ability the use simpler library name - library(foo), {url: '../foo.git', name: '/'}, meaming the library is n the root folder
|
||||
- ability put library even deeper in the tree - library(foo/path/to/the/library), {url: '../foo.git', name: '/path/to/the/library'}
|
||||
- rebased yash to 1.0
|
||||
- and few more minor fixes
|
||||
|
||||
* Tue Dec 8 2020 Dalibor Pospisil <dapospis@redhat.com> - 1.21-1
|
||||
- Rebase to the laster upstream
|
||||
- better and more consistent search for libraries
|
||||
- ability to parse yaml files including main.fmf and metadata.yaml
|
||||
|
||||
* Thu Sep 10 2020 Dalibor Pospisil <dapospis@redhat.com> - 1.20-1
|
||||
- Rebase to the latest upstream
|
||||
- improvements to libraries search
|
||||
- docs update
|
||||
- some optimizations
|
||||
- fixed pattern for mathing port or socket in rlWaitFor*
|
||||
- log colorizing on all screen* terminals
|
||||
- IFS fixes
|
||||
- Use /etc/os-release in rlGetDistro*() (#35)
|
||||
- support for curl 7.29.0
|
||||
- prefer curl over wget
|
||||
- silence status of service in rlService{Start,Stop,Restore} functions (#…
|
||||
- TESTPACKAGE variable to force package name (#54)
|
||||
|
||||
* Tue Jun 9 2020 Dalibor Pospisil <dapospis@redhat.com> - 1.18-12
|
||||
- optiomized CPU info gathering
|
||||
- enhanced library search
|
||||
|
||||
* Mon Apr 6 2020 Dalibor Pospisil <dapospis@redhat.com> - 1.18-7
|
||||
- added missing dependencies on /usr/bin/bc and /usr/bin/time
|
||||
|
||||
* Mon Jun 3 2019 Dalibor Pospisil <dapospis@redhat.com> - 1.18-6
|
||||
- fixed correct python checking, bz1715479
|
||||
- fix unbound variables, issues #43
|
||||
- fixed path to services state store
|
||||
- fixed file submit to local patch is called outside test harness
|
||||
- restore shell options in rlWatchdog, bz1713291
|
||||
- correctly skip test version if there's no rpm source of it, bz1712495
|
||||
|
||||
* Thu May 9 2019 Dalibor Pospisil <dapospis@redhat.com> - 1.18-4
|
||||
- show getopt parsing error (good for debugging)
|
||||
- do not use -T option to submit command
|
||||
|
||||
* Fri Apr 5 2019 Dalibor Pospisil <dapospis@redhat.com> - 1.18-3
|
||||
- rebase to beakerlib-1.18
|
||||
- support for dnf/dnf download
|
||||
- support direct systemctl call
|
||||
- netstat replaced by ss
|
||||
- ability to run without python (no journal.xml)
|
||||
- better handling of reboots
|
||||
- better handling of persistent data
|
||||
- final report polishing
|
||||
- better compatibility with old bash
|
||||
- <prefix>LibraryDir variable pointing to the library directory for all imported libraries
|
||||
- fallback to curl if wget is not available
|
||||
- updated documentation
|
||||
|
||||
* Fri Sep 7 2018 Dalibor Pospisil <dapospis@redhat.com> - 1.17-19
|
||||
* Thu Sep 7 2018 Dalibor Pospisil <dapospis@redhat.com> - 1.17-19
|
||||
- fixed meta file generation
|
||||
- follow url redirection when using curl
|
||||
- fixed checking for python interpreter
|
@ -1,19 +0,0 @@
|
||||
diff --git a/src/beakerlib.sh b/src/beakerlib.sh
|
||||
index 3355fa4..ceafc44 100644
|
||||
--- a/src/beakerlib.sh
|
||||
+++ b/src/beakerlib.sh
|
||||
@@ -274,10 +274,14 @@ https://github.com/beakerlib/beakerlib/wiki/man
|
||||
|
||||
=item Issues list
|
||||
|
||||
+https://bugzilla.redhat.com/buglist.cgi?component=beakerlib&&order=bug_status%2Cassigned_to%2Cpriority
|
||||
+
|
||||
https://github.com/beakerlib/beakerlib/issues
|
||||
|
||||
=item Reporting issues
|
||||
|
||||
+https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora%20EPEL&component=beakerlib
|
||||
+
|
||||
https://github.com/beakerlib/beakerlib/issues/new
|
||||
|
||||
=back
|
@ -1,6 +0,0 @@
|
||||
--- !Policy
|
||||
product_versions:
|
||||
- rhel-9
|
||||
decision_context: osci_compose_gate
|
||||
rules:
|
||||
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tedude.validation}
|
@ -1,57 +0,0 @@
|
||||
diff -ur beakerlib-1.18.old/src/python/journal-compare.py beakerlib-1.18.new/src/python/journal-compare.py
|
||||
--- beakerlib-1.18.old/src/python/journal-compare.py 2019-04-04 11:20:55.000000000 +0200
|
||||
+++ beakerlib-1.18.new/src/python/journal-compare.py 2019-04-04 11:20:23.000000000 +0200
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/env python
|
||||
+#!/usr/libexec/platform-python
|
||||
|
||||
# Copyright (c) 2006 Red Hat, Inc. All rights reserved. This copyrighted material
|
||||
# is made available to anyone wishing to use, modify, copy, or
|
||||
diff -ur beakerlib-1.18.old/src/python/journalling.py beakerlib-1.18.new/src/python/journalling.py
|
||||
--- beakerlib-1.18.old/src/python/journalling.py 2019-04-04 11:20:55.000000000 +0200
|
||||
+++ beakerlib-1.18.new/src/python/journalling.py 2019-04-04 11:20:27.000000000 +0200
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/env python
|
||||
+#!/usr/libexec/platform-python
|
||||
|
||||
# Authors: Jakub Heger <jheger@redhat.com>
|
||||
# Dalibor Pospisil <dapospis@redhat.com>
|
||||
diff -ur beakerlib-1.18.old/src/python/rlMemAvg.py beakerlib-1.18.new/src/python/rlMemAvg.py
|
||||
--- beakerlib-1.18.old/src/python/rlMemAvg.py 2019-04-04 11:20:55.000000000 +0200
|
||||
+++ beakerlib-1.18.new/src/python/rlMemAvg.py 2019-04-04 11:20:30.000000000 +0200
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/env python
|
||||
+#!/usr/libexec/platform-python
|
||||
|
||||
# Authors: Petr Muller <pmuller@redhat.com>
|
||||
#
|
||||
diff -ur beakerlib-1.18.old/src/python/rlMemPeak.py beakerlib-1.18.new/src/python/rlMemPeak.py
|
||||
--- beakerlib-1.18.old/src/python/rlMemPeak.py 2019-04-04 11:20:55.000000000 +0200
|
||||
+++ beakerlib-1.18.new/src/python/rlMemPeak.py 2019-04-04 11:20:33.000000000 +0200
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/env python
|
||||
+#!/usr/libexec/platform-python
|
||||
|
||||
# Authors: Petr Muller <pmuller@redhat.com>
|
||||
#
|
||||
diff -ur beakerlib-1.18.old/src/python/testwatcher.py beakerlib-1.18.new/src/python/testwatcher.py
|
||||
--- beakerlib-1.18.old/src/python/testwatcher.py 2019-04-04 11:20:55.000000000 +0200
|
||||
+++ beakerlib-1.18.new/src/python/testwatcher.py 2019-04-04 11:20:36.000000000 +0200
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/env python
|
||||
+#!/usr/libexec/platform-python
|
||||
#
|
||||
# Authors: Jiri Jaburek <jjaburek@redhat.com>
|
||||
#
|
||||
diff -ur beakerlib-1.18.old/src/journal.sh beakerlib-1.18.new/src/journal.sh
|
||||
--- beakerlib-1.18.old/src/journal.sh
|
||||
+++ beakerlib-1.18.new/src/journal.sh
|
||||
@@ -299,7 +299,7 @@ rlJournalEnd(){
|
||||
__INTERNAL_JournalXMLCreate() {
|
||||
local res=0
|
||||
[[ "$BEAKERLIB_JOURNAL" == "0" ]] || {
|
||||
- if which python &> /dev/null; then
|
||||
+ if which /usr/libexec/platform-python &> /dev/null; then
|
||||
$__INTERNAL_JOURNALIST $__INTERNAL_XSLT --metafile \
|
||||
"$__INTERNAL_BEAKERLIB_METAFILE" --journal "$__INTERNAL_BEAKERLIB_JOURNAL"
|
||||
res=$?
|
@ -1,57 +0,0 @@
|
||||
diff -ur beakerlib-1.18.old/src/python/journal-compare.py beakerlib-1.18.new/src/python/journal-compare.py
|
||||
--- beakerlib-1.18.old/src/python/journal-compare.py 2019-04-04 11:20:55.000000000 +0200
|
||||
+++ beakerlib-1.18.new/src/python/journal-compare.py 2019-04-04 11:20:23.000000000 +0200
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/env python
|
||||
+#!/usr/bin/env python3
|
||||
|
||||
# Copyright (c) 2006 Red Hat, Inc. All rights reserved. This copyrighted material
|
||||
# is made available to anyone wishing to use, modify, copy, or
|
||||
diff -ur beakerlib-1.18.old/src/python/journalling.py beakerlib-1.18.new/src/python/journalling.py
|
||||
--- beakerlib-1.18.old/src/python/journalling.py 2019-04-04 11:20:55.000000000 +0200
|
||||
+++ beakerlib-1.18.new/src/python/journalling.py 2019-04-04 11:20:27.000000000 +0200
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/env python
|
||||
+#!/usr/bin/env python3
|
||||
|
||||
# Authors: Jakub Heger <jheger@redhat.com>
|
||||
# Dalibor Pospisil <dapospis@redhat.com>
|
||||
diff -ur beakerlib-1.18.old/src/python/rlMemAvg.py beakerlib-1.18.new/src/python/rlMemAvg.py
|
||||
--- beakerlib-1.18.old/src/python/rlMemAvg.py 2019-04-04 11:20:55.000000000 +0200
|
||||
+++ beakerlib-1.18.new/src/python/rlMemAvg.py 2019-04-04 11:20:30.000000000 +0200
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/env python
|
||||
+#!/usr/bin/env python3
|
||||
|
||||
# Authors: Petr Muller <pmuller@redhat.com>
|
||||
#
|
||||
diff -ur beakerlib-1.18.old/src/python/rlMemPeak.py beakerlib-1.18.new/src/python/rlMemPeak.py
|
||||
--- beakerlib-1.18.old/src/python/rlMemPeak.py 2019-04-04 11:20:55.000000000 +0200
|
||||
+++ beakerlib-1.18.new/src/python/rlMemPeak.py 2019-04-04 11:20:33.000000000 +0200
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/env python
|
||||
+#!/usr/bin/env python3
|
||||
|
||||
# Authors: Petr Muller <pmuller@redhat.com>
|
||||
#
|
||||
diff -ur beakerlib-1.18.old/src/python/testwatcher.py beakerlib-1.18.new/src/python/testwatcher.py
|
||||
--- beakerlib-1.18.old/src/python/testwatcher.py 2019-04-04 11:20:55.000000000 +0200
|
||||
+++ beakerlib-1.18.new/src/python/testwatcher.py 2019-04-04 11:20:36.000000000 +0200
|
||||
@@ -1,4 +1,4 @@
|
||||
-#!/usr/bin/env python
|
||||
+#!/usr/bin/env python3
|
||||
#
|
||||
# Authors: Jiri Jaburek <jjaburek@redhat.com>
|
||||
#
|
||||
diff -ur beakerlib-1.18.old/src/journal.sh beakerlib-1.18.new/src/journal.sh
|
||||
--- beakerlib-1.18.old/src/journal.sh
|
||||
+++ beakerlib-1.18.new/src/journal.sh
|
||||
@@ -299,7 +299,7 @@ rlJournalEnd(){
|
||||
__INTERNAL_JournalXMLCreate() {
|
||||
local res=0
|
||||
[[ "$BEAKERLIB_JOURNAL" == "0" ]] || {
|
||||
- if which python &> /dev/null; then
|
||||
+ if which python3 &> /dev/null; then
|
||||
$__INTERNAL_JOURNALIST $__INTERNAL_XSLT --metafile \
|
||||
"$__INTERNAL_BEAKERLIB_METAFILE" --journal "$__INTERNAL_BEAKERLIB_JOURNAL"
|
||||
res=$?
|
1
sources
1
sources
@ -1 +0,0 @@
|
||||
SHA512 (beakerlib-1.29.2.tar.gz) = 415935d439f02d0afc80c29a1e9771e7e04c51435d46c3caabca5593b020ee6c19f10c10f9e5b573418e1a787025ad9612c7997beb24f574c8b71d9c5874e265
|
@ -1,16 +0,0 @@
|
||||
---
|
||||
# Test to run in classic context
|
||||
- hosts: localhost
|
||||
roles:
|
||||
- role: standard-test-beakerlib
|
||||
tags:
|
||||
- classic
|
||||
repositories:
|
||||
- repo: "https://src.fedoraproject.org/rpms/udica.git"
|
||||
dest: "udica"
|
||||
tests:
|
||||
- udica/tests/sanity
|
||||
required_packages:
|
||||
- udica
|
||||
- podman
|
||||
|
Loading…
Reference in New Issue
Block a user