Toru Maesaka: Tips on Drizzle Development and Valgrind
In brief, valgrind is a framework of awesome tools that does an amazing job at detecting memory errors. It will catch silly (often unexpected) mistakes and memory leaks that you’ve make in your code. IMHO, it’s a must have tool for open source hackers that work with Linux. If you develop a plugin or a storage engine for Drizzle/MySQL, you often end up wanting to test your program for memory errors. Actually, it’s not a “want”, it’s a MUST.
Conveniently by supplying a simple startup option, Drizzle and MySQL’s test runner allows a developer to run the daemon process on valgrind’s virtual machine. I’m not sure about MySQL since I’ve never developed anything for it but at least with Drizzle you can run a test case independently by supplying the desired test name to the test runner.
$ ./dtr your_test_file_name --valgrind
So, with BlitzDB this is what I do to isolate the test runner to only run my tests:
$ ./dtr blitzdb.test --valgrindVery simple.
The minor complication here is that the test runner will not output the valgrind report to the console and instead it writes the output to a file. So where is this file? the answer is, it’s written to the daemon’s error log which is located in the source tree:
$ less drizzle_src/tests/var/log/master.err CURRENT_TEST: main.blitzdb ==24563== Memcheck, a memory error detector ==24563== Copyright (C) 2002-2009, and GNU GPL'd, by Julian Seward et al. ...Here’s another tip. If you ever wondered where the files that were generated in the test (like table and index files) are stored, they are stored inside the source tree as well. Here’s an example on my machine:
$ ll drizzle_src/tests/var/master-data/ total 20528 -rw-rw---- 1 tmaesaka tmaesaka 10485760 2009-12-01 22:06 ibdata1 -rw-rw---- 1 tmaesaka tmaesaka 5242880 2009-12-01 22:06 ib_logfile0 -rw-rw---- 1 tmaesaka tmaesaka 5242880 2009-12-01 22:06 ib_logfile1 drwxr-xr-x 2 tmaesaka tmaesaka 4096 2009-12-01 22:06 mysql drwxr-xr-x 2 tmaesaka tmaesaka 4096 2009-12-01 22:06 testSo, with all that in mind, happy hacking
![]()
URL: http://torum.net/2009/12/tips-on-drizzle-and-valgrind/
_______________________________________________ Mailing list: https://launchpad.net/~drizzle-discuss Post to : [email protected] Unsubscribe : https://launchpad.net/~drizzle-discuss More help : https://help.launchpad.net/ListHelp

