Dan Sugalski wrote:

One thing we don't have is a complete set of coverage tests for the parrot opcodes. (Nor stats as to which ops do actually get covered by our current test suite) This would be a good thing to have, especially if we could add it into the make test target to generate a coverage report as part of its run.

I have a (unportable, ugly, slightly tested, ...) script here doing some:


total ops 1099
ops types 257
op usage stat
    560 op-list-all
    165 op-list-types

Meaning, we have slighlty more then a half of opcodes used/tested.

$ cat op-stat
#!/bin/sh
[ -e .op-list1 ] && rm .op-list1
[ -e op-list-all ] && rm op-list-all
[ -e op-list-types ] && rm op-list-types
find . -name '*.pasm' -exec ./parrot -d1000 {} \; 2>&1  |
  perl -ne 'm/\d+ (\w+)/; print "$1\n" if ($1)' >> .op-list1
sort < .op-list1 | uniq -c | sort -rg > op-list-all
sort < .op-list1 | sed -e's/_.*//' | uniq -c | sort -rg > op-list-types
echo
T=`grep NAME lib/Parrot/OpLib/core.pm | wc -l`
S=`grep NAME lib/Parrot/OpLib/core.pm | sort | uniq | wc -l`
echo total ops $T
echo ops types $S
echo op usage stat
wc -l op-list* | head -2




Reply via email to