-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathtestHeadlessComponents.sh
More file actions
executable file
·172 lines (133 loc) · 4.92 KB
/
testHeadlessComponents.sh
File metadata and controls
executable file
·172 lines (133 loc) · 4.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
#!/bin/bash
set -x
set -e
set -o pipefail
## assumes that both directories with old and new rpms are provided and filled with relevant rpms
## this script attempts parallel installation of old and new set of rpms
## resolve folder of this script, following all symlinks,
## http://stackoverflow.com/questions/59895/can-a-bash-script-tell-what-directory-its-stored-in
SCRIPT_SOURCE="${BASH_SOURCE[0]}"
while [ -h "$SCRIPT_SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
SCRIPT_DIR="$( cd -P "$( dirname "$SCRIPT_SOURCE" )" && pwd )"
SCRIPT_SOURCE="$(readlink "$SCRIPT_SOURCE")"
# if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
[[ $SCRIPT_SOURCE != /* ]] && SCRIPT_SOURCE="$SCRIPT_DIR/$SCRIPT_SOURCE"
done
readonly SCRIPT_DIR="$( cd -P "$( dirname "$SCRIPT_SOURCE" )" && pwd )"
function run_java_with_headless {
COMPONENTS_TO_TEST=$2
pwd
ls $cp
$JAVA -cp $cp -Djava.awt.headless=$1 MainRunner -test=$COMPONENTS_TO_TEST -jreSdkHeadless=$JREJDK -displayValue=$DISPLAY
}
function run_swing_component_test_unset {
TEST_ARGUMENT=$1
TEST_BOOL=$2
echo "---------------------------------------------------------------------"
echo "use -Djava.awt.headless=$TEST_BOOL and unset display"
echo "---------------------------------------------------------------------"
unset DISPLAY
run_java_with_headless $TEST_BOOL $TEST_ARGUMENT
}
function run_swing_component_test_set {
TEST_ARGUMENT=$1
TEST_BOOL=$2
echo "---------------------------------------------------------------------"
echo "use -Djava.awt.headless=$TEST_BOOL and set display to $XDISPLAY"
echo "---------------------------------------------------------------------"
export DISPLAY=$XDISPLAY
run_java_with_headless $TEST_BOOL $TEST_ARGUMENT
}
function run_swing_component_test_fake {
TEST_ARGUMENT=$1
TEST_BOOL=$2
echo "---------------------------------------------------------------------"
echo "use -Djava.awt.headless=$TEST_BOOL and set display to invalid :666"
echo "---------------------------------------------------------------------"
export DISPLAY=':666'
run_java_with_headless $TEST_BOOL $TEST_ARGUMENT
}
function processResults {
if [ $1 -eq 0 ]; then
let "PASSED+=1"
TEST=$(printXmlTest "thc" "$2" "0")
BODY+="$TEST"
echo "$2 PASSED\n"
else
let "FAILED+=1"
TEST=$(printXmlTest "thc" "$2" "0" "$LOGFILE" "$LOGFILE")
BODY+="$TEST"
echo "$2 FAILED\n"
fi
}
set -e
FAILED=0
PASSED=0
IGNORED=0
BODY=""
source $SCRIPT_DIR/RFaT/jtreg-shell-xml.sh
if [[ -z "${WORKSPACE}" ]]; then
WORKSPACE=~/workspace
fi
mkdir -p $WORKSPACE
if [ "x$TMPRESULTS" == "x" ]; then
TMPRESULTS=$WORKSPACE
fi
mkdir -p $TMPRESULTS
touch $TMPRESULTS/testHeadlessComponent.txt
LOGFILE=$TMPRESULTS/testHeadlessComponent.log
#TEST_JDK_HOME always contains link to the home directory of the available SDK
JAVAC_BINARY="${TEST_JDK_HOME}/bin/javac"
#JAVA_TO_TEST can contain either link to SDK or JRE java executable, however always the java that we want to test with
JAVA=$JAVA_TO_TEST
pushd $SCRIPT_DIR
$JAVAC_BINARY `find . -type f -name "*.java"`
popd
cp="$SCRIPT_DIR/testHeadlessComponents/jreTestingSwingComponents/src"
# in case of windows we need to cygpath the path before passing it to the jdk
case "$(uname -s)" in
MSYS_NT*|MINGW32_NT*|MINGW64_NT*|CYGWIN_NT*)
cp="$(cygpath -w "$cp")"
;;
esac
declare -A resArray
set +e
if [[ -z "${ARCH}" ]] ; then
RUN_ARCH=$(uname -m)
fi
for testOption in compatible incompatible; do
for headless in true false; do
if [[ "$JREJDK" == "jre" || "$JREJDK" == "jdk" && (("${testOption}${headless}" == "compatibletrue") || ("${testOption}${headless}" == "incompatiblefalse")) ]] ; then
run_swing_component_test_unset ${testOption} ${headless} >> $LOGFILE 2>&1
resArray["jre_headless_${testOption}_${headless}_display_unset"]=$?
fi
if [[ "x$XDISPLAY" == "x" ]] ; then
echo "skipping tests with display set, as the default display was not defined"
else
run_swing_component_test_set ${testOption} ${headless} >> $LOGFILE 2>&1
resArray["jre_headless_${testOption}_${headless}_display_set"]=$?
fi
if [[ "$JREJDK" == "jre" || "$JREJDK" == "jdk" && (("${testOption}${headless}" == "compatibletrue") || ("${testOption}${headless}" == "incompatiblefalse")) ]] ; then
run_swing_component_test_fake ${testOption} ${headless} >> $LOGFILE 2>&1
resArray["jre_headless_${testOption}_${headless}_display_fake"]=$?
fi
done
done
set -e
set -x
for key in ${!resArray[@]}; do
processResults ${resArray[$key]} $key
done
let "TESTS = $FAILED + $PASSED + $IGNORED"
XMLREPORT=$TMPRESULTS/testHeadlessComponent.jtr.xml
printXmlHeader $PASSED $FAILED $TESTS $IGNORED "testHeadlessComponent" > $XMLREPORT
echo "$BODY" >> $XMLREPORT
printXmlFooter >> $XMLREPORT
ls -la $XMLREPORT
ls
for val in ${resArray[@]}; do
if [[ "$val" -ne "0" ]]; then
exit 1
fi
done
exit 0