[nanomsg] Our unittests

  • From: Paul Colomiets <paul@xxxxxxxxxxxxxx>
  • To: nanomsg@xxxxxxxxxxxxx
  • Date: Sun, 1 Sep 2013 02:26:45 +0300

Hi,

Here is how our current tests look like:

int main ()
{
    int rc;
    int sb;
    int sc;
    char buf [3];

    sb = nn_socket (AF_SP, NN_PAIR);
    errno_assert (sb != -1);
    rc = nn_bind (sb, SOCKET_ADDRESS);
    errno_assert (rc >= 0);
    sc = nn_socket (AF_SP, NN_PAIR);
    errno_assert (sc != -1);
    rc = nn_connect (sc, SOCKET_ADDRESS);
    errno_assert (rc >= 0);

    rc = nn_send (sc, "ABC", 3, 0);
    errno_assert (rc >= 0);
    nn_assert (rc == 3);

    rc = nn_recv (sb, buf, sizeof (buf), 0);
    errno_assert (rc >= 0);
    nn_assert (rc == 3);

    rc = nn_send (sb, "DEF", 3, 0);
    errno_assert (rc >= 0);
    nn_assert (rc == 3);

    rc = nn_recv (sc, buf, sizeof (buf), 0);
    errno_assert (rc >= 0);
    nn_assert (rc == 3);

    rc = nn_close (sc);
    errno_assert (rc == 0);
    rc = nn_close (sb);
    errno_assert (rc == 0);

    return 0;
}

Here is how I would like the test to be written:

int main ()
{
    int sb;
    int sc;

    sb = test_socket_bind (NN_PAIR, SOCKET_ADDRESS);
    sc = test_socket_connect (NN_PAIR, SOCKET_ADDRESS);
    test_send (sc, "ABC");
    assert_received (sb, "ABC");
    test_send (sb, "DEF");
    assert_received (sc, "DEF");
    test_socket_close(sc);
    test_socket_close(sb);

    return 0;
}

I would also split several test cases in to separate functions,
because it's not easy to spot where the test ends in the current code.

Thoughts?

-- 
Paul

Other related posts: