From: Kern S. <ke...@us...> - 2006-09-30 08:42:44
|
Update of /cvsroot/bacula/docs/developers In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv3430/developers Modified Files: generaldevel.tex imagename_translations regression.tex version.tex Log Message: Update Index: regression.tex =================================================================== RCS file: /cvsroot/bacula/docs/developers/regression.tex,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- regression.tex 28 Oct 2005 09:54:21 -0000 1.2 +++ regression.tex 30 Sep 2006 08:42:42 -0000 1.3 @@ -15,7 +15,26 @@ changes to Bacula don't introduce bugs in the base code. You can find the existing regression script in the Bacula CVS on the -SourceForge CVS in the project tree named {\bf regress}. +SourceForge CVS in the project tree named {\bf regress}. I strongly +recommend that you check it out of the CVS because afterwards, you can +easily get updates made to them. To check them out using anonymous CVS +access do the following at the same level that you have the bacula source +code: + +\begin{verbatim} +cvs -d:pserver:ano...@ba...:/cvsroot/bacula login +cvs -z3 -d:pserver:ano...@ba...:/cvsroot/bacula co -P regress +\end{verbatim} + +Thereafter, you can simply: + +\begin{verbatim} +cd regress +cvs update +\end{verbatim} + +to get the latest updates to the scripts. + There are two different aspects of regression testing that this document will discuss: 1. Running the Regression Script, 2. Writing a Regression test. @@ -28,7 +47,10 @@ There are a number of different tests that may be run, such as: the standard set that uses disk Volumes and runs under any userid; a small set of tests that write to tape; another set of tests where you must be root to run them. -To date, each subset of tests runs no more than about 15 minutes. +Normally, I run all my tests as non-root and very rarely run the root +tests. The tests vary in length, and running the full tests including disk +based testing, tape based testing, autochanger based testing, and multiple +drive autochanger based testing can take 3 or 4 hours. \subsubsection*{Setting the Configuration Parameters} \index{Setting the Configuration Parameters} @@ -45,11 +67,11 @@ \begin{verbatim} # Where to get the source to be tested -# BACULA_SOURCE="${HOME}/bacula/branch-1.36.2" +# BACULA_SOURCE="${HOME}/bacula/branch-1.39.22" BACULA_SOURCE="${HOME}/bacula/k" # Where to send email !!!!! Change me !!!!!!! -EMAIL=ke...@si... +EMAIL=you...@yo... SMTP_HOST="localhost" # Full "default" path where to find sqlite (no quotes!) @@ -67,19 +89,25 @@ # Set your database here #SQLITE_DIR=${HOME}/bacula/depkgs/sqlite3 -WHICHDB?="--with-sqlite=${SQLITE_DIR}" -#WHICHDB="--with-mysql=${HOME}/mysql" +#WHICHDB="--with-sqlite=${SQLITE_DIR}" +WHICHDB="--with-mysql" # Set this to "--with-tcp-wrappers" or "--without-tcp-wrappers" TCPWRAPPERS="--with-tcp-wrappers" +# Set this to "" to disable OpenSSL support, "--with-openssl=yes" +# to enable it, or provide the path to the OpenSSL installation, +# eg "--with-openssl=/usr/local" +OPENSSL="" \end{verbatim} \normalsize \begin{itemize} \item {\bf BACULA\_SOURCE} should be the full path to the Bacula source code - that you wish to test. + that you wish to test. It will be loaded configured, compiled, and + installed with the "make setup" command, which needs to be done only + once each time you change the source code. \item {\bf EMAIL} should be your email addres. Please remember to change this or I will get a flood of unwanted messages. You may or may not want to see these emails. In my case, I don't need them so I direct it to the bit bucket. @@ -88,20 +116,28 @@ \item {\bf SQLITE\_DIR} should be the full path to the sqlite package, must be build before running a Bacula regression, if you are using SQLite. This variable is ignored if you are using MySQL or PostgreSQL. To use PostgreSQL, -edit the Makefile and change (or add) WHICHDB?=``\verb{--{with-postgresql''. For -MySQL use ``WHICHDB?=''\verb{--{with-mysql``. + edit the Makefile and change (or add) WHICHDB?=``\verb{--{with-postgresql''. For + MySQL use ``WHICHDB=''\verb{--{with-mysql``. + + The advantage of using SQLite is that it is totally independent of any + installation you may have running on your system, and there is no + special configuration or authorization that must be done to run it. + With both MySQL and PostgreSQL, you must pre-install the packages, + initialize them and ensure that you have authorization to access the + database and create and delete tables. \item {\bf TAPE\_DRIVE} is the full path to your tape drive. The base set of - regression tests do not use a tape, so this is only important if you want to - run the full tests. + regression tests do not use a tape, so this is only important if you want to + run the full tests. Set this to /dev/null if you do not have a tape drive. \item {\bf TAPE\_DRIVE1} is the full path to your second tape drive, if have one. The base set of regression tests do not use a tape, so this is only important if you want to - run the full two drive tests. + run the full two drive tests. Set this to /dev/null if you do not have a + second tape drive. -\item {\bf AUTOCHANGER} is the name of your autochanger device. Set this to - /dev/null if you do not have one. +\item {\bf AUTOCHANGER} is the name of your autochanger control device. Set this to + /dev/null if you do not have an autochanger. \item {\bf AUTOCHANGER\_PATH} is the full path including the program name for your autochanger program (normally {\bf mtx}. Leave the default value if you @@ -110,6 +146,9 @@ \item {\bf TCPWRAPPERS} defines whether or not you want the ./configure to be performed with tcpwrappers enabled. +\item {\bf OPENSSL} used to enable/disable SSL support for Bacula +communications and data encryption. + \end{itemize} \subsubsection*{Building the Test Bacula} @@ -256,14 +295,40 @@ that corresponds to the name printed. For example, the script for the above error message is in: {\bf regress/tests/concurrent-jobs-test}. -In order to see the output produced by Bacula, you need only change the lines -that start with {\bf @output} to {\bf @tee}, then rerun the test by hand. it -is very important to start the test from the {\bf regress} directory. +At the very top of each script you will find lines that look like: + +\begin{verbatim} +TestName="backup-bacula-test" +JobName=backup +. scripts/functions +set_debug 0 + +scripts/cleanup +scripts/copy-confs + +change_jobname Client1 $JobName +start_test +\end{verbatim} + +I won't go into the details of each of the above, but the "commands" +such as "set_debug" are found in the scripts/functions file. For +debugging, the important line to change is the "set_debug". Simply +change it to: + +\begin{verbatim} +set_debug 1 +\end{verbatim} + +Then from the "regress" directory (all regression scripts assume that +you have "regress" as the current directory), enter: + +\begin{verbatim} +tests/test-name +\end{verbatim} + +where test-name should be the name of a test script -- for example: +{\bf tests/backup-bacula-test}. -To modify the test mentioned above so that you can see the output, change -every occurrence of {\bf @output} to {\bf @tee} in the file. In rare cases you -might need to remove the {\bf 2\gt{}\&1 \gt{}/dev/null} from the end of the -{\bf bacula}, {\bf bconsole}, or {\bf diff} lines, but this is rare. \subsection*{Writing a Regression Test} \index{Test!Writing a Regression} Index: version.tex =================================================================== RCS file: /cvsroot/bacula/docs/developers/version.tex,v retrieving revision 1.35 retrieving revision 1.36 diff -u -d -r1.35 -r1.36 --- version.tex 17 Aug 2006 20:32:18 -0000 1.35 +++ version.tex 30 Sep 2006 08:42:42 -0000 1.36 @@ -1 +1 @@ -1.39.20 (16 August 2006) +1.39.23 (28 September 2006) Index: generaldevel.tex =================================================================== RCS file: /cvsroot/bacula/docs/developers/generaldevel.tex,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- generaldevel.tex 2 Aug 2006 09:43:31 -0000 1.10 +++ generaldevel.tex 30 Sep 2006 08:42:42 -0000 1.11 @@ -717,6 +717,7 @@ |- scripts (scripts and .conf files) |- tests (test scripts) |- tmp (temporary directory for temp files) + |- working (temporary working directory for Bacula daemons) Project docs: |- docs (documentation directory) Index: imagename_translations =================================================================== RCS file: /cvsroot/bacula/docs/developers/imagename_translations,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- imagename_translations 4 May 2006 09:17:07 -0000 1.4 +++ imagename_translations 30 Sep 2006 08:42:42 -0000 1.5 @@ -1,2 +1,2 @@ -img1.png./bacula-logo.eps img2.png./smartall.eps +img1.png./bacula-logo.eps |