aboutsummaryrefslogtreecommitdiffstats
path: root/a_simple_example.c
blob: fb7d774d7702ca00dbc49549f50afe9b3cf02809 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include "simple-test.h"
#include "header_with_stuff_to_be_tested.h"

BEGIN_TEST

/* a simple test using only stack mem */
TEST("description of the first test")
{
  int var1=2;
  int var2=4;
  
  /* add is a function included from our hypothetical
   * header_with_stuff_to_be_tested */
  EXPECT_INT("error message shown on failing",
		  var1+var2, add(var1, var2));
}

/* this test uses heap memory, so things get a bit
 * more complicated */
TEST("this is the second test")
{
  /* first, ensure all your pointers which will
   * point to heap mem are declared */
  char *heap_string=NULL;
  
  /* next, declare a list of statements to be
   * called to clean up memory once the test
   * is completed */
  CLEANUP(
      if(heap_string != NULL)
        free(heap_string);
        );
        
  /* then, define the body of the test */
  
  /* STATE can be used to report (with pretty
   * formatting) the current state within the
   * test, which may be useful in the case of
   * a segfault */
  STATE("grabbing heap string");
  
  heap_string=get_heap_string_value();
  
  EXPECT_STR("i suck at grabbing pointers!",
		  "expected value", heap_string);
  
  /* finally, call RETURN(); to run the
   * cleanup code and continue */
  RETURN();
}

END_TEST