/** * Copyright (C) 2009-2013 Barchart, Inc. <http://www.barchart.com/> * * All rights reserved. Licensed under the OSI BSD License. * * http://www.opensource.org/licenses/bsd-license.php */ package com.barchart.udt; import static org.junit.Assert.*; import org.junit.After; import org.junit.Before; import org.junit.Test; import util.TestAny; public class TestEpollBasic extends TestAny { /** * NO exception * <p> * "If a socket is already in the epoll set, it will be ignored if being * added again. Adding invalid or closed sockets will cause error. However, * they will simply be ignored without any error returned when being * removed." * * */ @Test public void epollAdd0_AgainSocketException() throws Exception { final SocketUDT socket = new SocketUDT(TypeUDT.DATAGRAM); // final int epollID = SocketUDT.epollCreate0(); assertTrue(epollID > 0); SocketUDT.epollAdd0(epollID, socket.id(), EpollUDT.Opt.BOTH.code); SocketUDT.epollAdd0(epollID, socket.id(), EpollUDT.Opt.BOTH.code); SocketUDT.epollAdd0(epollID, socket.id(), EpollUDT.Opt.BOTH.code); SocketUDT.epollRelease0(epollID); } /** * YES exception; see http://udt.sourceforge.net/udt4/index.htm * <p> * "If a socket is already in the epoll set, it will be ignored if being * added again. Adding invalid or closed sockets will cause error. However, * they will simply be ignored without any error returned when being * removed." */ @Test(expected = ExceptionUDT.class) public void epollAdd0_InvalidSocketException() throws Exception { final int epollID = SocketUDT.epollCreate0(); SocketUDT.epollAdd0(epollID, -1, EpollUDT.Opt.BOTH.code); SocketUDT.epollRelease0(epollID); } /** no exceptions is pass */ @Test public void epollAdd0_Remove() throws Exception { final SocketUDT socket = new SocketUDT(TypeUDT.DATAGRAM); // final int epollID = SocketUDT.epollCreate0(); assertTrue(epollID > 0); SocketUDT.epollAdd0(epollID, socket.id(), EpollUDT.Opt.BOTH.code); SocketUDT.epollRemove0(epollID, socket.id()); SocketUDT.epollRelease0(epollID); } /** no exceptions is pass */ @Test public void epollCreate0() throws Exception { final int epollID = SocketUDT.epollCreate0(); SocketUDT.epollRelease0(epollID); } @Test(expected = ExceptionUDT.class) public void epollRelease0() throws Exception { SocketUDT.epollRelease0(-1); } /** * NO exception; see http://udt.sourceforge.net/udt4/index.htm * <p> * "If a socket is already in the epoll set, it will be ignored if being * added again. Adding invalid or closed sockets will cause error. However, * they will simply be ignored without any error returned when being * removed." */ @Test public void epollRemove0_IvalidSocketException() throws Exception { final int epollID = SocketUDT.epollCreate0(); SocketUDT.epollRemove0(epollID, -1); SocketUDT.epollRemove0(epollID, -2); SocketUDT.epollRemove0(epollID, -3); SocketUDT.epollRelease0(epollID); } @Before public void setUp() throws Exception { } @After public void tearDown() throws Exception { } }