+#
+# Copyright (C) 2000-2015 Kern Sibbald
+# License: BSD 2-Clause; see file LICENSE-FOSS
+#
+
+
Bacula Regression
Kern Sibbald
To set it up, create your personal configuration file, by
-copying prototype.conf to xxx.conf or simply editing prototype.conf
-directly.
+copying prototype.conf to config or simply editing prototype.conf
+directly then copying it to the file config.
-Then edit your conf file and define appropriate values
-for the variables that are in that file. If you want to see
-a real example, look at kern.conf, but please don't use my
-email address!
+You must end up with a file named config in the main regress
+directory that has all the specifications that correspond to
+your system.
If you are using SQLite, make sure that depkgs is pre-built if it
isn't already: (cd your-depkgs; make sqlite).
Then do:
- ./config xxx.conf
make setup
You run the above one time. This will build a Makefile from
All the tests expect you to execute them from the main regress
directory!
+Running the disk based tests:
+
You can run all the disk based tests by doing:
./do_file
system, provided you have configured the database appropriately
as noted above.
+Running all the "standard" tests:
+
You can run all the disk and most of the tape tests by doing:
./do_all
this cleans up any files that may be created with root permissions.
+Tape test naming convention:
+
+The last part of the tape test name indicates (in general) what kind
+of test it is. They are broken (for the most part) into test names
+ending with:
+
+ -test => a disk based test
+ -tape => a tape based test (can be a standalone tape drive
+ or an autochanger). Only one tape will be used
+ and it is assumed to be mounted.
+ -changer => you have an autochanger
+
+Adding tests:
+
If you want to add more tests, do so by putting the shell script
in the tests subdirectory. Be careful when adding (or better not)
new clients, pools, and such to the test-bacula-dir.conf.in file
make sed
Debugging failed tests:
+
Prior versions required editing the tests/xxxx and changing a debug flag.
However, that has been replaced by two environment variables:
copy, but those messages can be ignored. This makes it reasonably easy
to run any component or components under the debugger if necessary.
+Explicit example:
+
+In shell window 1.
+
+cd regress
+export REGRESS_DEBUG=1
+export REGRESS_WAIT=1
+tests/name-of-script-test
+(wait until it tells you to start the debugger)
+
+In shell window 2
+
+cd regress/bin
+gdb bacula-xx (where xx is the component you want to debug).
+(possibly set a break point -- normally not)
+run -s -f
+(wait for the output to stop)
+
+In shell window 1
+(enter any character or simply a return)
+(ignore the error message it prints complaining that the daemon
+you are debugging is already running, which is in fact the case).
+
+
+That is all there is to it. The debugger window will get some
+output and will stop waiting for input if anything goes wrong
+like a seg fault. At that point, you can enter commands.
+
+The procedure avoids modifying the test scripts and trying to
+find pids and the such. If you want less debug output when
+debugging, don't set REGRESS_DEBUG=1.
+
+===
+
Also, if you run from time to time on a computer that is not connected
to the network, please be sure that "hostname" is set to "localhost",
otherwise, your tests may fail because the hostname used by Bacula's
add_address(dlist**, IPADDR::i_type, unsigned short, int, char const*, char
const*, char**) + 568 in section .text
+Testing a Binary Installation:
+
+If you have installed your Bacula from a binary release such as (rpms or
+debs), you can still run regression tests on it. First, make sure that your
+regression config file uses the same catalog backend as your installed
+binaries. Then define the variables bin and scripts variables in your config
+file.
+
+Example:
+bin=/opt/bacula/bin
+scripts=/opt/bacula/scripts
+conf=/opt/bacula/etc
+
+The ./scripts/prepare-other-loc will tweak the regress scripts to use
+your binary location. You will need to run it manually once before you run any
+regression tests.
+
+$ scripts/prepare-other-loc
+$ tests/backup-bacula-test
+...
+
+All regression scripts must be run by hand or by calling the test scripts.
+These are principally scripts that begin with all_... such as all_disk_tests},
+./all_tests
+
+None of the
+./do_disk, ./do_all, ./nightly... scripts will work.
+
+If you want to switch back to running the regression scripts from source, first
+remove the bin, scripts, and conf variables from your config file and
+rerun the make setup step.