/**
* 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.Ignore;
import org.junit.Test;
import util.TestAny;
import com.barchart.udt.EpollUDT.Opt;
@Ignore
public class TestEpollMask extends TestAny {
@Test
public void epollUpdate() throws Exception {
epollUpdate(Opt.NONE);
epollUpdate(Opt.READ);
epollUpdate(Opt.WRITE);
epollUpdate(Opt.BOTH);
epollUpdate(Opt.ERROR_READ);
epollUpdate(Opt.ERROR_WRITE);
epollUpdate(Opt.ERROR);
epollUpdate(Opt.ALL);
}
private void epollUpdate(final Opt opt) throws Exception {
final int epollID = SocketUDT.epollCreate0();
final SocketUDT client = new SocketUDT(TypeUDT.DATAGRAM);
SocketUDT.epollRemove0(epollID, client.id());
SocketUDT.epollUpdate0(epollID, client.id(), opt.code);
final int code = SocketUDT.epollVerify0(epollID, client.id());
log.info("code {}", code);
assertEquals(code, opt.code);
SocketUDT.epollRemove0(epollID, client.id());
SocketUDT.epollRelease0(epollID);
}
/**
* confirm can update and verify epoll mask
* <p>
* requires src/main/patches/udt-4.10/*
*/
@Test
public void epollVerify() throws Exception {
epollVerify(Opt.NONE);
epollVerify(Opt.READ);
epollVerify(Opt.WRITE);
epollVerify(Opt.BOTH);
epollVerify(Opt.ERROR_READ);
epollVerify(Opt.ERROR_WRITE);
epollVerify(Opt.ERROR);
epollVerify(Opt.ALL);
}
private void epollVerify(final Opt opt) throws Exception {
final int epollID = SocketUDT.epollCreate0();
final SocketUDT client = new SocketUDT(TypeUDT.DATAGRAM);
// SocketUDT.epollAdd0(epollID, client.id(), EpollUDT.Opt.NONE.code);
SocketUDT.epollUpdate0(epollID, client.id(), opt.code);
final int code = SocketUDT.epollVerify0(epollID, client.id());
log.info("code {}", code);
assertEquals(code, opt.code);
SocketUDT.epollRemove0(epollID, client.id());
SocketUDT.epollRelease0(epollID);
}
@Before
public void setUp() throws Exception {
}
@After
public void tearDown() throws Exception {
}
}