summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAbhishek Koneru <akoneru@redhat.com>2013-11-20 02:24:38 -0500
committerAbhishek Koneru <akoneru@redhat.com>2013-11-20 16:15:56 -0500
commit9c2f7724c2a50246ad73796edfda0917a2aaefe3 (patch)
tree7d5637b2e8fccd9863c9323a6753f828f586bf90
parent24727d1b096cd30f7474ca9c03fa9c1be04be0cd (diff)
downloadpki-9c2f7724c2a50246ad73796edfda0917a2aaefe3.tar.gz
pki-9c2f7724c2a50246ad73796edfda0917a2aaefe3.tar.xz
pki-9c2f7724c2a50246ad73796edfda0917a2aaefe3.zip
Maintain seperate scripts for task and jobxml creation.
The compose script for creating the test rpm and submitting the job is broken into two scripts, one for creating the test rpm and one for creating the job xml. CI Test Framework
-rwxr-xr-xscripts/compose_pki_test_package25
-rwxr-xr-xscripts/create_beaker_job42
-rwxr-xr-xscripts/run_tests28
-rw-r--r--tests/dogtag/README58
-rw-r--r--tests/dogtag/beakerjob.dogtag.xml.template4
-rwxr-xr-xtests/dogtag/make-package.sh9
6 files changed, 88 insertions, 78 deletions
diff --git a/scripts/compose_pki_test_package b/scripts/compose_pki_test_package
index 879c48a92..517a54040 100755
--- a/scripts/compose_pki_test_package
+++ b/scripts/compose_pki_test_package
@@ -23,17 +23,17 @@ check_for_dependencies()
check_for_dependencies
-if [ $# -lt 2 ];
+if [ $# -lt 1 ];
then
- echo "Usage: $0 User-ID_for_personalization Job_xml_config_file [--runtests]"
+ echo "Usage: $0 unique_identifier [--submit-tests]"
exit -1
fi
RUN_TESTS='N'
-if [ $# -gt 2 ];
+if [ $# -gt 1 ];
then
- if [ $3 = "--runtests" ]
+ if [ $2 = "--submit-tests" ]
then
RUN_TESTS='Y'
fi
@@ -53,12 +53,14 @@ WORK_DIR=`cd $COMPOSE_DIR/../..;pwd`
BUILD_DIR="$WORK_DIR/package.tests"
-rm -rf $BUILD_DIR
-
-mkdir $BUILD_DIR
+if [ ! -d $BUILD_DIR ] ; then
+ mkdir $BUILD_DIR
+fi
cd $BUILD_DIR
+rm -rf *.rpm
+
cp -r "$PKI_SOURCE_DIR/tests" .
### Compile the java test source ###
@@ -79,16 +81,13 @@ cd ..
### Passing the keyword for personalizing and an option
### to maintain a seperate folder for each beaker job (Optional)
-./make-package.sh $1 $2
+./make-package.sh $1
mv *.rpm ../../
-mv *.xml ../../
-
+cd ../..
### Running the tasks
-cd $COMPOSE_DIR
-
if [ $RUN_TESTS = "Y" ] ; then
- ./run_tests
+ bkr task-add *.rpm
fi
diff --git a/scripts/create_beaker_job b/scripts/create_beaker_job
new file mode 100755
index 000000000..5184d4883
--- /dev/null
+++ b/scripts/create_beaker_job
@@ -0,0 +1,42 @@
+#! /bin/bash
+
+### Exit if there not enough parameters specified.
+if [ $# -lt 2 ];
+then
+ echo "Usage: ./create-beaker-job-xml unique_identifier Job_xml_config_file [--submit-job]"
+ exit -1
+fi
+
+user_id=$1
+### Directory with all the compose scripts
+COMPOSE_DIR=`dirname $0 | cd ; pwd`
+
+PKI_SOURCE_DIR=`cd $COMPOSE_DIR/..; pwd`
+
+WORK_DIR=`cd $COMPOSE_DIR/../..;pwd`
+
+BUILD_DIR="$WORK_DIR/package.tests"
+
+if [ ! -d $BUILD_DIR ] ; then
+ mkdir $BUILD_DIR
+fi
+
+cd $BUILDDIR
+
+cp -r $PKI_SOURCE_DIR/tests .
+
+cd tests/dogtag
+
+sed -e "s|PKI_TEST_USER_ID|${user_id}|g" beakerjob.dogtag.xml.template >> beakerjob.dogtag.xml
+
+python update_beaker_job.py beakerjob.dogtag.xml $2
+
+if [ $# -gt 2 ];
+then
+ if [ $3 = "--submit-job" ]
+ then
+ bkr job-submit beakerjob.dogtag.xml
+ fi
+fi
+
+mv beakerjob.dogtag.xml ../../
diff --git a/scripts/run_tests b/scripts/run_tests
deleted file mode 100755
index 8e4d65e9f..000000000
--- a/scripts/run_tests
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/bash
-
-WAIT_FOR_RESULT='N'
-if [ $# -ge 1 ] ; then
- if [ "$1" = "--wait-on-beaker-job" ] ; then
- WAIT_FOR_RESULT="Y"
- else
- echo "Unrecognized option. Usage: ./runtests --wait-on-beaker-job(Optional)"
- fi
-fi
-COMPOSE_PWD=`dirname $0 | cd; pwd`
-
-TEST_PACKAGE=`cd $COMPOSE_PWD/../../package.tests; pwd`
-
-if [ ! -d $TEST_PACKAGE ] ; then
- echo "Cannot run tests on beaker. Please compose the test rpms."
- exit -1
-fi
-
-cd $TEST_PACKAGE
-
-bkr task-add *.rpm
-
-if [ "$WAIT_FOR_RESULT" = "Y" ] ; then
- bkr job-submit --wait *.xml
-else
- bkr job-submit *.xml
-fi
diff --git a/tests/dogtag/README b/tests/dogtag/README
index c9679bea0..1b31abf82 100644
--- a/tests/dogtag/README
+++ b/tests/dogtag/README
@@ -95,8 +95,6 @@
This sets up the machine as a beaker client, on which new task rpms can
be built and new jobs submitted to the beaker server.
- A beaker job is an XML file. The template used to create a job is in
- tests/dogtag/beakerjob.dogtag.xml.template.
1.2.2 Building the beaker task rpm and submitting a beaker job.
@@ -120,46 +118,48 @@
1.2.2.2 Building the task rpm and submitting the job to a beaker server is done
by executing the compose script in pki/scripts:
- ./compose_pki_test_package unique_identifier beaker_job_config [--runtests]
+ ./compose_pki_test_package unique_identifier [--submit-tests]
The builds are done in <pki_source_root>/../package.tests/ folder.
- -- The unique_identifier is for personalizing the rpm.
-
- This path at which the test source is extracted from the rpm on the
- beaker server is specified by the TEST variable in the
- Makefile (pki/tests/dogtag/Makefile).
+ -- The unique_identifier is for personalizing the rpm.
- So another rpm with the same to-be-extracted path overwrites
- the existing test code.
- In order to prevent it, a unique id is asked to personalize the rpm
- to provide a unique to-be-extracted path for every test rpm of
- dogtag tests (especially at a user level).
+ This path at which the test source is extracted from the rpm on the
+ beaker server is specified by the TEST variable in the
+ Makefile (pki/tests/dogtag/Makefile).
- -- beaker_job_config (the absolute path of the file from /)
- - to configure the recipe of a job.
+ So another rpm with the same to-be-extracted path overwrites
+ the existing test code.
+ In order to prevent it, a unique id is asked to personalize the rpm
+ to provide a unique to-be-extracted path for every test rpm of
+ dogtag tests (especially at a user level).
- A sample configuration file is at tests/conf/beaker-job.cfg.
+ -- The optional --submit-tests option.
+ This option submits the test rpm to the beaker server.
- The repos parameter should point to the URL's to access the dogtag
- rpms. The hostname means the hostname of a specific beaker test
- machine. The distro_* are the details of the distribution on the
- beaker server, that has to be installed on the test machine.
+ ./create_beaker_job unique_identifier beaker_job_config [--submit-job]
- -- The optional --runtests option.
- Without the --runtests options the task rpm and the job xml are
- not submitted to the beaker server.
+ The unique_identifier has the same functionality as the one used in the
+ compose_pki_test_rpm command.
- ** An already built rpm/job (built without the --runtests option above)
- can be submitted to a beaker server by:
+ The "beaker_job_config" (the absolute path of the file from /)
+ is for configuring the recipe of a job.
- ./run_tests [--wait-on-beaker-job]
+ A sample configuration file is at tests/conf/beaker-job.cfg.
- -- The run_tests just submits the task rpm and job xml to beaker.
- But specifying --wait-on-beaker-job option, the process is
- blocked until the job is completed.
+ The repos parameter should point to the URL's to access the dogtag
+ rpms. The hostname means the hostname of a specific beaker test
+ machine. The distro_* are the details of the distribution on the
+ beaker server, that has to be installed on the test machine.
+ The optional --submit-job command submits the job to the beaker server.
+**Note- A beaker job is an XML file. The template used to create a job is in
+ tests/dogtag/beakerjob.dogtag.xml.template.
+ The task /distribution/reservesys is commented. On uncommenting this
+ task in the template, the beaker test machine is reserved for a certain
+ period of time after the tests are run. This option can be used to
+ debug any tests that are failing.
**Note- In the case of creating a repository on a remote machine, the remote
machine must be a known_host to the local machine.
diff --git a/tests/dogtag/beakerjob.dogtag.xml.template b/tests/dogtag/beakerjob.dogtag.xml.template
index 5358da4d4..2b86bd3f8 100644
--- a/tests/dogtag/beakerjob.dogtag.xml.template
+++ b/tests/dogtag/beakerjob.dogtag.xml.template
@@ -35,9 +35,9 @@
<param name="DEV_JAVA_TESTS" value="FALSE"/>
</params>
</task>
- <task name="/distribution/reservesys" role="STANDALONE">
+ <!-- <task name="/distribution/reservesys" role="STANDALONE">
<params/>
- </task>
+ </task> -->
</recipe>
</recipeSet>
</job>
diff --git a/tests/dogtag/make-package.sh b/tests/dogtag/make-package.sh
index fd3265730..207bdd50b 100755
--- a/tests/dogtag/make-package.sh
+++ b/tests/dogtag/make-package.sh
@@ -1,9 +1,9 @@
#!/bin/sh
### Exit if there not enough parameters specified.
-if [ $# -lt 2 ];
+if [ $# -lt 1 ];
then
- echo "Usage: ./make-package.sh User-ID Job_xml_config_file [Different_subfolder_for_each_beaker_job_?(Y/N)]"
+ echo "Usage: ./make-package.sh unique_identifier [--use-different-folders]"
exit -1
fi
@@ -15,7 +15,7 @@ date_time="`date -u +%Y%m%d%H%M%S`"
rpm_identifier=".$date_time"
if [ $# -gt 1 ];
then
- if [ $2 = 'Y' -o $2 = 'y' ];
+ if [ $2 = '--use-different-folders' ];
then
user_id="$1/$date_time"
rpm_identifier=""
@@ -36,6 +36,3 @@ rm -rf Makefile
mv .Makefile.save Makefile
-sed -e "s|PKI_TEST_USER_ID|${user_id}|g" beakerjob.dogtag.xml.template >> beakerjob.dogtag.xml
-
-python update_beaker_job.py beakerjob.dogtag.xml $2