Hi,
Anyone has an idea of how to implement code coverage in q?
So far I’ve built a simple library that retrieves the list of global functions called in a test and converging until I get the tree of all functions called.
However let’s say there is an “if statement” in one of these functions, how can I know that it was called?
// I define two functions for info and error printing.log.info:{-1 x};.log.error:{-2 x};// And then another function for adding two numbersadd:{[a;b] if[not all type a b; .log.error "not numbers"; :"error"; ]; .log.info "adding ",string[a]," to ",string[b]; :a+b; };
Now if I pull out the globals used in that function I get the following:
q)get[add]3``.log.error
.log.info`
However if that function was called with two integers, then a hit on .log.error wouldn’t count, only .log.info will count as code covered.
Thanks,
Zak