mirror of
https://git.yoctoproject.org/matchbox-documentation
synced 2025-11-08 15:05:45 +08:00
gcov usage documented. internals updated with dia diagram
git-svn-id: https://svn.o-hand.com/repos/matchbox/trunk/matchbox-documentation@781 b067294f-1dea-0310-9683-c47a78595994
This commit is contained in:
BIN
developers/internals.dia
Normal file
BIN
developers/internals.dia
Normal file
Binary file not shown.
@@ -1,3 +1,5 @@
|
|||||||
|
Matchbox Internals Documentation - v0.1 - mallum@o-hand.com
|
||||||
|
===========================================================
|
||||||
|
|
||||||
Introduction
|
Introduction
|
||||||
====
|
====
|
||||||
@@ -127,6 +129,11 @@ Wm.c also has various functions for 'global' operations on clients
|
|||||||
such as resizing/repositioning all clients. Numerous points throughout
|
such as resizing/repositioning all clients. Numerous points throughout
|
||||||
the codebase will use this.
|
the codebase will use this.
|
||||||
|
|
||||||
|
Note a diagram reprenting visually what has been discussed in this
|
||||||
|
overview is available via;
|
||||||
|
|
||||||
|
http://matchbox.handhelds.org/documentation/developers/internals/internals.png
|
||||||
|
|
||||||
File Structure
|
File Structure
|
||||||
====
|
====
|
||||||
|
|
||||||
@@ -279,21 +286,25 @@ XX_client_move_resize (Client *c);
|
|||||||
Safely moves and resizes a client ( to positions set by
|
Safely moves and resizes a client ( to positions set by
|
||||||
client_configure ) or other.
|
client_configure ) or other.
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
XX_client_get_coverage (Client *c, int *x, int *y, int *w, int *h);
|
XX_client_get_coverage (Client *c, int *x, int *y, int *w, int *h);
|
||||||
|
|
||||||
returns the display area covered by the client and its decoration frame.
|
returns the display area covered by the client and its decoration frame.
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
XX_client_hide (Client *c);
|
XX_client_hide (Client *c);
|
||||||
|
|
||||||
Hides ( unmaps ) a client.
|
Hides ( unmaps ) a client.
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
XX_client_show (Client *c);
|
XX_client_show (Client *c);
|
||||||
|
|
||||||
Shows ( maps ) a client.
|
Shows ( maps ) a client.
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
XX_client_destroy (Client *c);
|
XX_client_destroy (Client *c);
|
||||||
|
|
||||||
@@ -405,3 +416,18 @@ Some optimizations matchbox uses;
|
|||||||
that due to its style of restrictive window management it avoids much
|
that due to its style of restrictive window management it avoids much
|
||||||
of the code needed by a desktop window manager.
|
of the code needed by a desktop window manager.
|
||||||
|
|
||||||
|
|
||||||
|
Further reading
|
||||||
|
====
|
||||||
|
|
||||||
|
Matchbox WM source
|
||||||
|
http://cvs.handhelds.org/cgi-bin/viewcvs.cgi/apps/matchbox/matchbox-window-manager/src/
|
||||||
|
|
||||||
|
Matchbox Developer documentation.
|
||||||
|
http://matchbox.handhelds.org/developer.shtml
|
||||||
|
|
||||||
|
Matchbox X Communication specifics ( ie freedesktop.org standards support )
|
||||||
|
http://matchbox.handhelds.org/documentation/developers/matchbox-key.txt
|
||||||
|
|
||||||
|
libMatchbox API documentation.
|
||||||
|
http://matchbox.handhelds.org/documentation/developers/api/
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<article>
|
<article>
|
||||||
<artheader>
|
<artheader>
|
||||||
<title>Matchbox Testing HOWTO. (V 0.2)</title>
|
<title>Matchbox Testing HOWTO. (V 0.3)</title>
|
||||||
<author><firstname>Matthew</firstname>
|
<author><firstname>Matthew</firstname>
|
||||||
<surname>Allum</surname>
|
<surname>Allum</surname>
|
||||||
<email>matthew@openedhand.com</email>
|
<email>matthew@openedhand.com</email>
|
||||||
@@ -229,6 +229,53 @@ url="http://bugs.openedhand.com/index.cgi/Matchbox/index">bugs.openedhand.com</u
|
|||||||
|
|
||||||
</para>
|
</para>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
<section><title>Code Coverage</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
|
||||||
|
Both the matchbox-window-manager and libmatchbox packages have support
|
||||||
|
for the GNU Code coverage tool <ulink
|
||||||
|
url="http://gcc.gnu.org/onlinedocs/gcc-3.0/gcc_8.html">Gcov</ulink>. To
|
||||||
|
enable, at build time configure the packages with the
|
||||||
|
<userinput>--enable-gcov</userinput> option. The built binaries will then produce gcov statistics, which can further be processed by running gcov on source files.
|
||||||
|
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
|
||||||
|
Within the test package exists 'gcov-wrapper.sh'. This script will run all or any of the tests and report the percentage of code per sourcefile the test run covered.
|
||||||
|
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
Usage is like;
|
||||||
|
|
||||||
|
<programlisting>
|
||||||
|
|
||||||
|
usage: ./gcov-wrapper.sh <matchbox wm src path> <libmatchbox src path> [test]
|
||||||
|
|
||||||
|
'test' defaults to testrun.sh
|
||||||
|
Set GCOV_FLAGS to any required gcov swicthes
|
||||||
|
|
||||||
|
</programlisting>
|
||||||
|
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
|
||||||
|
It is advised you make clean and then remake matchbox-window-manager
|
||||||
|
and libmatchbox before each gcov-wrapper.sh run to avoid statistics
|
||||||
|
accumerlating.
|
||||||
|
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
More information on using Gcov is available at url="http://gcc.gnu.org/onlinedocs/gcc-3.0/gcc_8.html">http://gcc.gnu.org/onlinedocs/gcc-3.0/gcc_8.html</ulink>
|
||||||
|
</para>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
<section><title>Appendix A - Tools</title>
|
<section><title>Appendix A - Tools</title>
|
||||||
<section><title>Valgrind</title>
|
<section><title>Valgrind</title>
|
||||||
<para>
|
<para>
|
||||||
|
|||||||
Reference in New Issue
Block a user