mirror of
https://github.com/systemd/systemd-stable.git
synced 2024-10-29 21:55:25 +03:00
remove outdated docs/README-gcov_for_udev
This commit is contained in:
parent
ec06a8dd4f
commit
5b3ff6ba3a
@ -1,68 +0,0 @@
|
||||
################################################
|
||||
|
||||
Using GCC's code coverage tool, gcov, with udev
|
||||
|
||||
Leann Ogasawara <ogasawara@osdl.org>, April 2004
|
||||
|
||||
################################################
|
||||
|
||||
For more information on using gcov please see:
|
||||
|
||||
http://gcc.gnu.org/onlinedocs/gcc/Gcov.html
|
||||
|
||||
With that said, here is how to get code coverage analysis for udev files.
|
||||
Note that this was developed with udev version 024.
|
||||
|
||||
- Make sure you've installed udev and that it is working properly.
|
||||
|
||||
- Build udev with:
|
||||
make gcov-all
|
||||
This will compile udev with gcov support. If you look into your udev directory
|
||||
and see that it has been polluted with a bunch of *.gcno, *.gcda and *.gcov files.
|
||||
gcov creates and uses these files to extract the code coverage info.
|
||||
|
||||
- Then execute some udev tasks. You can run some udev tests, reboot, or
|
||||
do anything your little udev heart desires. Once you are satisfied, you
|
||||
can now see how much udev code was covered. I personally recommend just
|
||||
running test/udev-test.pl for starters.
|
||||
|
||||
- To get the udev code coverage analysis:
|
||||
make udev_gcov.txt
|
||||
|
||||
- This creates udev_gcov.txt in the udev top level directory which holds all
|
||||
the code coverage information. To see an example of the code coverage info
|
||||
after executing the udev-test.pl test, please see:
|
||||
|
||||
http://developer.osdl.org/ogasawara/gcov_for_udev/udev_gcov.txt
|
||||
|
||||
- Also, after having executed gcov on udev (ie executing run_gcov.sh) a
|
||||
*.gcov file is created for every file which contained code that was
|
||||
used. Looking at the *.gcov files, one will see what lines of code
|
||||
were hit, and what lines were missed. For, example if code in udev-add.c
|
||||
were executed, gcov then created a file called udev-add.c.gcov. And a
|
||||
portion of udev-add.c.gov might look like:
|
||||
|
||||
static int get_major_minor(struct sysfs_class_device *class_dev, struct udevice *udev)
|
||||
95 {
|
||||
95 struct sysfs_attribute *attr = NULL;
|
||||
|
||||
95 attr = sysfs_get_classdev_attr(class_dev, "dev");
|
||||
95 if (attr == NULL)
|
||||
###### goto error;
|
||||
dbg("dev='%s'", attr->value);
|
||||
|
||||
95 if (sscanf(attr->value, "%u:%u", &udev->major, &udev->minor) != 2)
|
||||
###### goto error;
|
||||
dbg("found major=%d, minor=%d", udev->major, udev->minor);
|
||||
|
||||
95 return 0;
|
||||
error:
|
||||
###### return -1;
|
||||
}
|
||||
|
||||
Any line of code that is preceded by a "######" implies that the code
|
||||
was never hit during execution.
|
||||
|
||||
- Once you are done with using gcov for udev and want to return to your
|
||||
normal use of udev, run a regular 'make clean' on your udev directory.
|
||||
Then just run a regular make and make install and you are back to normal.
|
Loading…
Reference in New Issue
Block a user