~ubuntu-branches/ubuntu/wily/sflphone/wily

« back to all changes in this revision

Viewing changes to daemon/libs/pjproject-2.1.0/pjlib/src/pjlib-test/atomic.c

  • Committer: Package Import Robot
  • Author(s): Jonathan Riddell
  • Date: 2015-01-07 14:51:16 UTC
  • mfrom: (4.3.5 sid)
  • Revision ID: package-import@ubuntu.com-20150107145116-yxnafinf4lrdvrmx
Tags: 1.4.1-0.1ubuntu1
* Merge with Debian, remaining changes:
 - Drop soprano, nepomuk build-dep
* Drop ubuntu patches, now upstream

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* $Id: atomic.c 3553 2011-05-05 06:14:19Z nanang $ */
2
 
/* 
3
 
 * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
4
 
 * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
5
 
 *
6
 
 * This program is free software; you can redistribute it and/or modify
7
 
 * it under the terms of the GNU General Public License as published by
8
 
 * the Free Software Foundation; either version 2 of the License, or
9
 
 * (at your option) any later version.
10
 
 *
11
 
 * This program is distributed in the hope that it will be useful,
12
 
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 
 * GNU General Public License for more details.
15
 
 *
16
 
 * You should have received a copy of the GNU General Public License
17
 
 * along with this program; if not, write to the Free Software
18
 
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
19
 
 */
20
 
#include "test.h"
21
 
#include <pjlib.h>
22
 
 
23
 
/**
24
 
 * \page page_pjlib_atomic_test Test: Atomic Variable
25
 
 *
26
 
 * This file provides implementation of \b atomic_test(). It tests the
27
 
 * functionality of the atomic variable API.
28
 
 *
29
 
 * \section atomic_test_sec Scope of the Test
30
 
 *
31
 
 * API tested:
32
 
 *  - pj_atomic_create()
33
 
 *  - pj_atomic_get()
34
 
 *  - pj_atomic_inc()
35
 
 *  - pj_atomic_dec()
36
 
 *  - pj_atomic_set()
37
 
 *  - pj_atomic_destroy()
38
 
 *
39
 
 *
40
 
 * This file is <b>pjlib-test/atomic.c</b>
41
 
 *
42
 
 * \include pjlib-test/atomic.c
43
 
 */
44
 
 
45
 
 
46
 
#if INCLUDE_ATOMIC_TEST
47
 
 
48
 
int atomic_test(void)
49
 
{
50
 
    pj_pool_t *pool;
51
 
    pj_atomic_t *atomic_var;
52
 
    pj_status_t rc;
53
 
 
54
 
    pool = pj_pool_create(mem, NULL, 4096, 0, NULL);
55
 
    if (!pool)
56
 
        return -10;
57
 
 
58
 
    /* create() */
59
 
    rc = pj_atomic_create(pool, 111, &atomic_var);
60
 
    if (rc != 0) {
61
 
        return -20;
62
 
    }
63
 
 
64
 
    /* get: check the value. */
65
 
    if (pj_atomic_get(atomic_var) != 111)
66
 
        return -30;
67
 
 
68
 
    /* increment. */
69
 
    pj_atomic_inc(atomic_var);
70
 
    if (pj_atomic_get(atomic_var) != 112)
71
 
        return -40;
72
 
 
73
 
    /* decrement. */
74
 
    pj_atomic_dec(atomic_var);
75
 
    if (pj_atomic_get(atomic_var) != 111)
76
 
        return -50;
77
 
 
78
 
    /* set */
79
 
    pj_atomic_set(atomic_var, 211);
80
 
    if (pj_atomic_get(atomic_var) != 211)
81
 
        return -60;
82
 
 
83
 
    /* add */
84
 
    pj_atomic_add(atomic_var, 10);
85
 
    if (pj_atomic_get(atomic_var) != 221)
86
 
        return -60;
87
 
 
88
 
    /* check the value again. */
89
 
    if (pj_atomic_get(atomic_var) != 221)
90
 
        return -70;
91
 
 
92
 
    /* destroy */
93
 
    rc = pj_atomic_destroy(atomic_var);
94
 
    if (rc != 0)
95
 
        return -80;
96
 
 
97
 
    pj_pool_release(pool);
98
 
 
99
 
    return 0;
100
 
}
101
 
 
102
 
 
103
 
#else
104
 
/* To prevent warning about "translation unit is empty"
105
 
 * when this test is disabled. 
106
 
 */
107
 
int dummy_atomic_test;
108
 
#endif  /* INCLUDE_ATOMIC_TEST */
109