blob: 136ffc056505529bd87b9d1c42e57a8b1fca1f16 (
plain)
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
|
#! /bin/bash
# Copyright (C) 2013, Red Hat, Inc.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
# Run Eclipse Test Bundles
# The definiton of an Eclipse Test Bundle for our purposes is any packaged
# OSGi bundle containing a pom.xml with a packaging type of
# 'eclipse-test-plugin'
# Takes a single argument (absolute path of folder containing test bundles)
if [ ! $# -eq 1 ]; then
echo "USAGE : $0 PATH/TO/BUNDLES/DIRECTORY"
exit 1
fi
testBundleFolder=$1
echo 'Eclipse-BundleShape: dir' > MANIFEST.MF
for jar in `find ${testBundleFolder} -name "*.jar"`; do
jarPomPath=`jar -tf ${jar} | grep 'pom.xml'`
unzip -p ${jar} ${jarPomPath} | grep -q '<packaging>eclipse-test-plugin</packaging>'
if [ $? -eq 0 ]; then
jarPomPath=`jar -tf ${jar} | grep 'pom.xml'`
bsname=`unzip -p ${jar} META-INF/MANIFEST.MF | grep 'Bundle-SymbolicName' | sed 's/Bundle-SymbolicName: \([a-zA-Z.]*\)\(;\)\?.*/\1/'`
# Detect SWTBot Tests
useSWTBot='false'
unzip -p ${jar} META-INF/MANIFEST.MF | grep -q 'swtbot'
if [ $? -eq 0 ]; then
useSWTBot='true'
fi
# Find Test class(es)
testclass=`unzip -p ${jar} ${jarPomPath} | grep '<testClass>' | sed 's/.*<testClass>\(.*\)<\/testClass>.*/\1/'`
if [ "${testclass}" = '' ]; then
testclass=`jar -tf ${jar} | grep '/AllTests.class' | tr '/' '.' | sed 's/\.class//'`
fi
if [ "${testclass}" = '' ]; then
testclasses=`jar -tf ${jar} | grep -E '/[^/]*Test.*\.class' | grep -vE '/[^/]*Abstract.*\.class' | grep -v '\\$' | tr '/' '.' | sed 's/\.class//'`
else
testclasses="${testclass}"
fi
for testclass in ${testclasses} ; do
sed -i "/<target name=\"linuxtoolsTests\">/ a \\
<exec executable=\"\${basedir}/updateTestBundleXML.sh\"> \\
<arg value=\"${bsname}\" /> \\
<arg value=\"${testclass}\" /> \\
<arg value=\"${useSWTBot}\" /> \\
</exec> \\
<runTests testPlugin=\"${bsname}\" testClass=\"${testclass}\" />" \
target/test.xml
done
fi
# Make 'Eclipse-BundleShape: dir'
jarName=`basename ${jar}`
symJarName=`ls target-sdk/plugins/ | grep ${jarName}`
rm target-sdk/plugins/${symJarName}
cp ${jar} target-sdk/plugins/
jar -umf ./MANIFEST.MF target-sdk/plugins/${jarName}
done
rm ./MANIFEST.MF
pushd target
../genRepo.sh $(pwd)
|