> On Apr 28, 2022, at 3:09 AM, Joshua C. Colp <jc...@sangoma.com> wrote:
> 
> On Thu, Apr 28, 2022 at 2:18 AM Philip Prindeville 
> <philipp_s...@redfish-solutions.com> wrote:
> Hi,
> 
> I'm working on some changes to various parts of Asterisk that currently don't 
> have good test coverage.
> 
> The easiest way (for what I'm doing) to add coverage is to interface with 
> external commands that are known to provide correct results and test against 
> them.
> 
> I've written a mockup of a function that runs a pipeline, collects stdout and 
> stderr into buffers, and returns the processes exit code.
> 
> This is useful if, for instance, you generate data and want to verify it 
> computationally internally, but then compare results with an external 
> reference command.
> 
> It's also useful for commands that generate temporal (or ephemeral) results 
> that can't use "canned" data in their generation.
> 
> Here's some details:
> 
> typedef struct {
>         char *outbuf;
>         size_t outlen;
>         char *errbuf;
>         size_t errlen;
>         int exitcode;
> } ast_test_capture_cmd_t;
> 
> int ast_test_capture_cmd_run(ast_test_capture_cmd_t *results, const char 
> *cmd);
> 
> ast_test_capture_cmd_free(ast_test_capture_cmd_t *results);
> 
> Note that commands are run with stdin set to /dev/null.
> 
> What do you all think about adding this functionality?
> 
> Is there a reason that this needs to be part of the core unit testing 
> capability? Is it so that you can just reuse the code within your use case? 
> 


Well, hopefully in multiple places as I get around to adding more test 
coverage... or for that matter, other people are welcome to leverage it too.

I was thinking at first that I'd want to use it in test/test_crypto.c but then 
I realized that if I redid the crypto API as "res/res_crypto2.c" then I'd need 
similar test coverage there (more in fact), for longer keys, ECC, DH, AES-GCM, 
etc.

Plus there are certain tests that might rely on external services, like STUN, 
that you'd want to confirm similar results with an external script or utility 
known to be good.

Or am I misunderstanding the question?

-Philip



-- 
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

asterisk-dev mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

Reply via email to