~ubuntu-branches/ubuntu/saucy/zeromq3/saucy

« back to all changes in this revision

Viewing changes to tests/test_router_mandatory.cpp

  • Committer: Package Import Robot
  • Author(s): Alessandro Ghedini
  • Date: 2012-10-16 19:49:30 UTC
  • mfrom: (1.1.2)
  • Revision ID: package-import@ubuntu.com-20121016194930-98r0bi746eoaa4iv
Tags: 3.2.1~rc2+dfsg-1
* New upstream RC release (Closes: #690704)
* Bump Standards-Version to 3.9.4 (no changes needed)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
    Copyright (c) 2010-2011 250bpm s.r.o.
 
3
    Copyright (c) 2011 iMatix Corporation
 
4
    Copyright (c) 2010-2011 Other contributors as noted in the AUTHORS file
 
5
 
 
6
    This file is part of 0MQ.
 
7
 
 
8
    0MQ is free software; you can redistribute it and/or modify it under
 
9
    the terms of the GNU Lesser General Public License as published by
 
10
    the Free Software Foundation; either version 3 of the License, or
 
11
    (at your option) any later version.
 
12
 
 
13
    0MQ is distributed in the hope that it will be useful,
 
14
    but WITHOUT ANY WARRANTY; without even the implied warranty of
 
15
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
16
    GNU Lesser General Public License for more details.
 
17
 
 
18
    You should have received a copy of the GNU Lesser General Public License
 
19
    along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
20
*/
 
21
 
 
22
#include <stdio.h>
 
23
#include "testutil.hpp"
 
24
 
 
25
int main (void)
 
26
{
 
27
    fprintf (stderr, "test_router_mandatory running...\n");
 
28
 
 
29
    void *ctx = zmq_init (1);
 
30
    assert (ctx);
 
31
 
 
32
    // Creating the first socket.
 
33
    void *sa = zmq_socket (ctx, ZMQ_ROUTER);
 
34
    assert (sa);
 
35
    
 
36
    int rc = zmq_bind (sa, "tcp://127.0.0.1:15560");
 
37
    assert (rc == 0);
 
38
 
 
39
    // Sending a message to an unknown peer with the default setting
 
40
    rc = zmq_send (sa, "UNKNOWN", 7, ZMQ_SNDMORE);
 
41
    assert (rc == 7);
 
42
    rc = zmq_send (sa, "DATA", 4, 0);
 
43
    assert (rc == 4);
 
44
 
 
45
    int mandatory = 1;
 
46
 
 
47
    // Set mandatory routing on socket
 
48
    rc = zmq_setsockopt (sa, ZMQ_ROUTER_MANDATORY, &mandatory, sizeof (mandatory));
 
49
    assert (rc == 0);
 
50
 
 
51
    // Send a message and check that it fails
 
52
    rc = zmq_send (sa, "UNKNOWN", 7, ZMQ_SNDMORE | ZMQ_DONTWAIT);
 
53
    assert (rc == -1 && errno == EAGAIN);
 
54
 
 
55
    rc = zmq_close (sa);
 
56
    assert (rc == 0);
 
57
 
 
58
    rc = zmq_term (ctx);
 
59
    assert (rc == 0);
 
60
 
 
61
    return 0 ;
 
62
}