blob: f18c63d04fd4e5033597fa17914e39f217f88b4c [file] [log] [blame]
How to test DRD
~~~~~~~~~~~~~~~
1. Start with compiling DRD.
2. Check as follows that all global symbols in DRD have been wrapped by the
DRD_() macro (output must be empty):
nm -A drd*.o|grep ' T '|grep -v ' T vgDrd_'
3. Check as follows that all global symbols in the preloaded shared library
are redirected functions (output must be empty):
nm -A vgpreload*.o|grep ' T '|grep -v ' T _vg'
4. Run the regression tests as follows:
perl tests/vg_regtest drd
5. Run Konstantin's regression tests:
mkdir -p drt/unittest
svn checkout http://data-race-test.googlecode.com/svn/trunk/unittest drt/unittest
make -C drt/unittest -s all
./vg-in-place --tool=drd --check-stack-var=yes drt/unittest/racecheck_unittest 2>&1|less
6. Test the slowdown for matinv for various matrix sizes via the script
drd/scripts/run-matinv (must be about 24 for i == 1 and about
31 for i == 10 with n == 200).
7. Test whether DRD works with standard KDE applications and whether it does
not print any false positives. Test this both with KDE3 and KDE4.
./vg-in-place --tool=drd --var-info=yes kate
./vg-in-place --tool=drd --var-info=yes --check-stack-var=yes kate
./vg-in-place --tool=drd --var-info=yes --trace-children=yes knode
./vg-in-place --tool=drd --var-info=yes --check-stack-var=yes --trace-children=yes knode
./vg-in-place --tool=drd --var-info=yes --check-stack-var=yes /usr/bin/designer
8. Test whether DRD works with standard GNOME applications. Expect
race reports triggered by ORBit_RootObject_duplicate() and after
having closed the GNOME terminal window:
./vg-in-place --tool=drd --var-info=yes --trace-children=yes gnome-terminal
9. Test DRD with Firefox. First of all, make sure that Valgrind is patched
such that it supports libjemalloc.so:
drd/scripts/add-libjemalloc-support
Next, build and install Firefox 3:
drd/scripts/download-and-build-firefox
Now run the following command:
LD_LIBRARY_PATH=$HOME/software/mozilla-build/dist/lib: ./vg-in-place --tool=drd --check-stack-var=yes --trace-children=yes $HOME/software/mozilla-build/dist/bin/firefox-bin