| svntest scripts -*- Text -*- |
| =============== |
| |
| This set of scripts is designed to wrap execution of all of |
| Subversion's Makefile test targets (e.g. "check", "davcheck", |
| "svncheck", etc.). |
| |
| |
| Usage |
| ===== |
| |
| 1) Read the INSTALL (http://svn.collab.net/repos/svn/trunk/INSTALL) |
| file, especially the sections about bootstrapping from a tarball |
| and getting the latest APR-0.9, APR-UTIL-0.9 and httpd-2.0 sources. |
| Check out and compile the latest Subversion. You could easily run |
| svntest.sh against APR/APR-UTIL 1.0 and HTTPD 2.1 branches, just |
| checkout corresponding repositories, and edit svntest-config.sh. |
| |
| 2) Copy the svntest scripts from trunk/tools/test-scripts/svntest to |
| somewhere outside the repository. Then read and modify |
| svntest-config.sh to reflect your local installation. The rest of |
| these instructions assume you have done this, and that you are |
| familiar with the $TEST_ROOT and $INST_DIR locations from |
| svntest-config.sh. |
| |
| 3) In $TEST_ROOT, create one or more scripts that configure Subversion |
| in different ways (e.g., configure.shared, configure.static). |
| These scripts must be set executable (chmod +x). |
| |
| Although they live in $TEST_ROOT, these scripts will be invoked |
| from a $TEST_ROOT/obj-<projname>, e.g., $TEST_ROOT/obj-apr-0.9, |
| (for which the config script would be $TEST_ROOT/config.apr-0.9). |
| |
| See the examples/ directory next to this README for some examples |
| of these config scripts. |
| |
| At the moment, svntest-rebuild.sh will only recognize shared and |
| static build types, but you can easily change that. If you do, also |
| change svntest.sh so that it tests all the different configurations. |
| |
| 4) Tailor ${TEST_ROOT}/$HTTPD_NAME.conf (e.g., httpd-2.0.conf) as |
| necessary. The easiest way to get a template for http-2.0.conf is |
| to install Apache httpd once, take the installed conf/httpd.conf, |
| and edit it. Things you probably want to change are: |
| |
| a) Listen 127.0.0.1:52080 |
| |
| b) LoadModule dav_svn_module modules/mod_dav_svn.so |
| |
| c) User YOUR_USERNAME |
| Group YOUR_GROUPNAME |
| |
| d) ServerName localhost:52080 |
| |
| e) Add a mod_dav_svn block: |
| |
| <IfModule mod_dav_svn.c> |
| Include conf/mod_dav_svn.conf |
| </IfModule> |
| |
| f) Copy ./mod_dav_svn.conf (i.e., the one in the same directory |
| as this README) to ${TEST_ROOT}/mod_dav_svn.conf, and adjust |
| it as necessary. |
| |
| The actual name of the used mod_dav_svn conf file is |
| ${TEST_ROOT}/mod_dav_${SVN_NAME}.conf, which is |
| mod_dav_svn.conf with default settings. |
| |
| Likwise, copy ./dav_svn.passwd to ${TEST_ROOT}/dav_svn.passwd. |
| (You shouldn't need to adjust it.) |
| |
| If you want to run regression tests for 1.1.x or 1.2.x with |
| the same svntest setup, you have to change the SVN_NAME |
| variable, and generate two additional mod_dav_svn conf files: |
| |
| sed 's!/svn-test-work!!' mod_dav_svn.conf > mod_dav_svn_1.2.x.conf |
| sed 's!/svn-test-work!!' mod_dav_svn.conf > mod_dav_svn_1.1.x.conf |
| |
| and set SVN_NAME=svn_1.2.x for 1.2.x, and SVN_NAME=svn_1.1.x |
| for 1.1.x. |
| |
| Don't ever touch config files under $INST_DIR/$HTTPD_NAME/conf, |
| they will be overwritten by the script. |
| |
| 5) Make sure your environment (e.g., LD_LIBRARY_PATH) is set correctly |
| to find Berkeley DB, etc. |
| |
| 6) Test execution can be dramatically sped up by keeping Subversion |
| test data on a RAM disk. On a Linux system, add lines like the |
| following in your /etc/fstab file: |
| |
| tmpfs /home/YOUR_USERNAME/svn/obj-sh/subversion/tests tmpfs defaults,user,noauto,exec,size=64m |
| tmpfs /home/YOUR_USERNAME/svn/obj-st/subversion/tests tmpfs defaults,user,noauto,exec,size=64m |
| |
| The minimum required size for testing RAM disk is actually many |
| times greater than shown above. However, svntest will |
| automatically flag your test targets for cleanup when using a |
| ramdisk, which dramatically reduces the space requirement. |
| |
| To enable RAM disk usage by svntest, set RAMDISK=yes, and check |
| mount_ramdisk and umount_ramdisk in the svntest-config.sh file if |
| your system is not GNU/Linux. See |
| http://subversion.tigris.org/faq.html#ramdisk-tests for further |
| information. |
| |
| 7) Run svntest.sh to get the latest versions of APR, APR-UTIL, HTTPPD and |
| Subversion, build and test all the configurations. |
| |
| 8) If you like force rebuilding of some component, you could do: |
| echo "0" > $<PROJ>_SOURCE.rb, dependencies are: |
| apr-util depends on apr, and httpd depends on apr and apr-util. |
| Any dependent project will be also rebuild. |
| When you run this script first time, everything will be rebuilt |
| automatically. |