"Fossies" - the Fresh Open Source Software Archive

Member "gstreamer-1.16.1/libs/gst/check/libcheck/check_impl.h" (19 Apr 2019, 4237 Bytes) of package /linux/misc/gstreamer-1.16.1.tar.xz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "check_impl.h" see the Fossies "Dox" file reference documentation and the last Fossies "Diffs" side-by-side code changes report: 1.14.4_vs_1.16.0.

    1 /*
    2  * Check: a unit test framework for C
    3  * Copyright (C) 2001, 2002 Arien Malec
    4  *
    5  * This library is free software; you can redistribute it and/or
    6  * modify it under the terms of the GNU Lesser General Public
    7  * License as published by the Free Software Foundation; either
    8  * version 2.1 of the License, or (at your option) any later version.
    9  *
   10  * This library is distributed in the hope that it will be useful,
   11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
   12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   13  * Lesser General Public License for more details.
   14  *
   15  * You should have received a copy of the GNU Lesser General Public
   16  * License along with this library; if not, write to the
   17  * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
   18  * MA 02110-1301, USA.
   19  */
   20 
   21 #ifndef CHECK_IMPL_H
   22 #define CHECK_IMPL_H
   23 
   24 /* This header should be included by any module that needs
   25    to know the implementation details of the check structures
   26    Include stdio.h, time.h, & list.h before this header
   27 */
   28 
   29 #define US_PER_SEC 1000000
   30 #define NANOS_PER_SECONDS 1000000000
   31 
   32 /** calculate the difference in useconds out of two "struct timespec"s */
   33 #define DIFF_IN_USEC(begin, end) \
   34   ( (((end).tv_sec - (begin).tv_sec) * US_PER_SEC) + \
   35     ((end).tv_nsec/1000) - ((begin).tv_nsec/1000) )
   36 
   37 typedef struct TF
   38 {
   39   TFun fn;
   40   int loop_start;
   41   int loop_end;
   42   const char *name;
   43   int signal;
   44   signed char allowed_exit_value;
   45 } TF;
   46 
   47 struct Suite
   48 {
   49   const char *name;
   50   List *tclst;                  /* List of test cases */
   51 };
   52 
   53 typedef struct Fixture
   54 {
   55   int ischecked;
   56   SFun fun;
   57 } Fixture;
   58 
   59 struct TCase
   60 {
   61   const char *name;
   62   struct timespec timeout;
   63   List *tflst;                  /* list of test functions */
   64   List *unch_sflst;
   65   List *unch_tflst;
   66   List *ch_sflst;
   67   List *ch_tflst;
   68   List *tags;
   69 };
   70 
   71 typedef struct TestStats
   72 {
   73   int n_checked;
   74   int n_failed;
   75   int n_errors;
   76 } TestStats;
   77 
   78 struct TestResult
   79 {
   80   enum test_result rtype;       /* Type of result */
   81   enum ck_result_ctx ctx;       /* When the result occurred */
   82   char *file;                   /* File where the test occurred */
   83   int line;                     /* Line number where the test occurred */
   84   int iter;                     /* The iteration value for looping tests */
   85   int duration;                 /* duration of this test in microseconds */
   86   const char *tcname;           /* Test case that generated the result */
   87   const char *tname;            /* Test that generated the result */
   88   char *msg;                    /* Failure message */
   89 };
   90 
   91 TestResult *tr_create (void);
   92 void tr_reset (TestResult * tr);
   93 void tr_free (TestResult * tr);
   94 
   95 enum cl_event
   96 {
   97   CLINITLOG_SR,                 /* Initialize log file */
   98   CLENDLOG_SR,                  /* Tests are complete */
   99   CLSTART_SR,                   /* Suite runner start */
  100   CLSTART_S,                    /* Suite start */
  101   CLEND_SR,                     /* Suite runner end */
  102   CLEND_S,                      /* Suite end */
  103   CLSTART_T,                    /* A test case is about to run */
  104   CLEND_T                       /* Test case end */
  105 };
  106 
  107 typedef void (*LFun) (SRunner *, FILE *, enum print_output,
  108     void *, enum cl_event);
  109 
  110 typedef struct Log
  111 {
  112   FILE *lfile;
  113   LFun lfun;
  114   int close;
  115   enum print_output mode;
  116 } Log;
  117 
  118 struct SRunner
  119 {
  120   List *slst;                   /* List of Suite objects */
  121   TestStats *stats;             /* Run statistics */
  122   List *resultlst;              /* List of unit test results */
  123   const char *log_fname;        /* name of log file */
  124   const char *xml_fname;        /* name of xml output file */
  125   const char *tap_fname;        /* name of tap output file */
  126   List *loglst;                 /* list of Log objects */
  127   enum fork_status fstat;       /* controls if suites are forked or not
  128                                    NOTE: Don't use this value directly,
  129                                    instead use srunner_fork_status */
  130 };
  131 
  132 
  133 void set_fork_status (enum fork_status fstat);
  134 enum fork_status cur_fork_status (void);
  135 
  136 clockid_t check_get_clockid (void);
  137 
  138 unsigned int tcase_matching_tag (TCase * tc, List * check_for);
  139 List *tag_string_to_list (const char *tags_string);
  140 
  141 #endif /* CHECK_IMPL_H */