1 /*==============================================================================
2  run_tests.h -- test aggregator and results reporting
3 
4  Copyright (c) 2018-2020, Laurence Lundblade. All rights reserved.
5 
6  SPDX-License-Identifier: BSD-3-Clause
7 
8  See BSD-3-Clause license in README.md
9 
10  Created 9/30/18
11  =============================================================================*/
12 
13 /**
14  @file run_tests.h
15 */
16 
17 /**
18  @brief Type for function to output a text string
19 
20  @param[in] szString   The string to output
21  @param[in] pOutCtx    A context pointer; NULL if not needed
22  @param[in] bNewline   If non-zero, output a newline after the string
23 
24  This is a prototype of a function to be passed to RunTests() to
25  output text strings.
26 
27  This can be implemented with stdio (if available) using a straight
28  call to fputs() where the FILE * is passed as the pOutCtx as shown in
29  the example code below.  This code is for Linux where the newline is
30  a \\n. Windows usually prefers \\r\\n.
31 
32  @code
33     static void fputs_wrapper(const char *szString, void *pOutCtx, int bNewLine)
34     {
35         fputs(szString, (FILE *)pOutCtx);
36         if(bNewLine) {
37             fputs("\n", pOutCtx);
38         }
39      }
40  @endcode
41 */
42 typedef void (*OutputStringCB)(const char *szString, void *pOutCtx, int bNewline);
43 
44 
45 /**
46  @brief Runs the T_COSE tests.
47 
48  @param[in]  szTestNames    An argv-style list of test names to run. If
49                             empty, all are run.
50  @param[in]  pfOutput       Function that is called to output text strings.
51  @param[in]  pOutCtx        Context pointer passed to output function.
52  @param[out] pNumTestsRun   Returns the number of tests run. May be NULL.
53 
54  @return The number of tests that failed. Zero means overall success.
55  */
56 int RunTestsTCose(const char    *szTestNames[],
57                   OutputStringCB pfOutput,
58                   void          *pOutCtx,
59                   int           *pNumTestsRun);
60 
61 
62 /**
63  @brief Print sizes of encoder / decoder contexts.
64 
65  @param[in] pfOutput     Function that is called to output text strings.
66  @param[in] pOutCtx      Context pointer passed to output function.
67  */
68 void PrintSizesTCose(OutputStringCB pfOutput, void *pOutCtx);
69 
70