Skip to contentSkip to conversation

1/2 alsa-python: API coverage documentation tool

PATCH Applied Aldrin Martoq 2 participants 2 messages Mar 8, 2008 – Mar 18, 2008

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 1/2 alsa-python: API coverage documentation tool

HG Log:
-------
Added python tool of alsa-lib C API coverage for alsa-python binding.

Description:
------------

The following patch is a python tool that shows how much of the asoundlib API is being covered by the alsa-python binding. It works by parsing the C source code and comparing with the official Doxygen documentation from alsa website.

It will help the following users:
- alsa-python developers: know how is mapped the original C API, so which python function/variable may be used.
- python binding developers: know how much of the C API is covered. It could help for mistakes (free() instead of using snd_ctl_card_info_free), know what is missing, and statistic interest ;)

Sample output:
--------------

Functions
---------
1 const char* snd_asoundlib_version ( void )
Returns the ALSA sound library version in ASCII format.
=> Used in : alsacard.c: asoundlib_version

Defines
-------
N/A #define SND_CONTROL_DLSYM_VERSION _dlsym_control_001
dlsym version for interface entry callback
**** NOT AVAILABLE/USED SND_CONTROL_DLSYM_VERSION ****
2 #define SND_CTL_ASYNC
Async notification (flag for open mode)
=> As constant: alsacontrol.c: open_mode["ASYNC"] => As constant: alsahcontrol.c: open_mode["ASYNC"]
1 #define snd_ctl_card_info_alloca ( ptr )
allocate an invalid snd_ctl_card_info_t using standard alloca
=> Used in : alsacontrol.c: pyalsacontrol_cardinfo

Stats:
------

After every section, the program shows some stats about usage. This is the current usage of each doxygen module:

Global defines and functions
16 missing ( 94%) 0 excluded ( 0%) of 17 total ( 6% covered).
Error handling
9 missing ( 90%) 0 excluded ( 0%) of 10 total ( 10% covered).
Control Interface
137 missing ( 53%) 0 excluded ( 0%) of 257 total ( 47% covered).
High level Control Interface
21 missing ( 46%) 0 excluded ( 0%) of 46 total ( 54% covered).
Setup Control Interface
4 missing (100%) 0 excluded ( 0%) of 4 total ( 0% covered).
MIDI Sequencer
25 missing ( 61%) 7 excluded ( 17%) of 41 total ( 39% covered).
Sequencer Client Interface
15 missing ( 35%) 14 excluded ( 33%) of 43 total ( 65% covered).
Sequencer Port Interface
48 missing ( 74%) 6 excluded ( 9%) of 65 total ( 26% covered).
Sequencer Port Subscription
3 missing ( 7%) 15 excluded ( 33%) of 46 total ( 93% covered).
Sequencer Queue Interface
58 missing ( 84%) 0 excluded ( 0%) of 69 total ( 16% covered).
Sequencer Event API
42 missing ( 93%) 0 excluded ( 0%) of 45 total ( 7% covered).
Sequencer Miscellaneous
0 missing ( N/A) 0 excluded ( N/A) of 0 total ( N/A covered).
Sequencer Event Type Checks
7 missing ( 23%) 0 excluded ( 0%) of 30 total ( 77% covered).
Sequencer Event Definitions
35 missing ( 40%) 0 excluded ( 0%) of 87 total ( 60% covered).
Sequencer Middle Level Interfa
38 missing ( 78%) 0 excluded ( 0%) of 49 total ( 22% covered).
Sequencer event <-> MIDI byte
11 missing (100%) 0 excluded ( 0%) of 11 total ( 0% covered).
Mixer Interface
44 missing ( 75%) 0 excluded ( 0%) of 59 total ( 25% covered).
Simple Mixer Interface
14 missing ( 18%) 0 excluded ( 0%) of 78 total ( 82% covered).

Cheers!

Signature · 1 line
Aldrin Martoq <[email protected]>
doc/.hgignore new file +3 -0
new file mode 100644
@@ -0,0 +1,3 @@
+syntax: glob
+
+cache/*
doc/APICoverage.py new file +385 -0

385 lines not on this page · raw message

doc/alsa-python-coverage.py new file +364 -0

364 lines not on this page · raw message

_______________________________________________
Alsa-devel mailing list
[email protected]
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

Applied
#1 lore raw

At Fri, 07 Mar 2008 22:47:25 -0300,

Quoted 4 lines · Aldrin Martoq

HG Log:
-------
Added python tool of alsa-lib C API coverage for alsa-python binding.

Thanks, applied to HG tree now.

Takashi