package disk.tests;
import static org.junit.Assert.*;
import java.util.LinkedList;
import org.junit.Before;
import org.junit.Test;
import disk.DiskSimNative;
import simulation.*;
import events.NFSReadEvent;
import events.SimEvent;
public class TestDiskSimNative {
public class CacheSimStub implements CacheSimInterface {
@Override
public void blockReady(long requestID, long diskBlock) {}
@Override
public void handleReadRequest(NFSReadEvent e) {}
}
public class RequestEvent extends SimEvent {
String fileHandle;
long disknum;
long diskBlock;
public RequestEvent(Simulation sim, double t, String fileHandle, long disknum, long diskBlock) {
super(sim, t);
this.fileHandle = fileHandle;
this.disknum = disknum;
this.diskBlock = diskBlock;
}
@Override
public void run() {
sim.diskSim.submitReadRequest(getTime(), getUniqueID(), disknum, diskBlock);
}
}
@Test public void simpleRun() {
Simulation sim = new Simulation();
SimDriver simDriver = new SimDriver(sim);
sim.setCacheSimInterface(new CacheSimStub());
DiskSimNative ds = new DiskSimNative(sim,"disk_model/cheetah9LP.parv","/tmp/TestDiskSimNative.out");
simDriver.schedule(new RequestEvent(sim, 13.0, "fh0", 0, 0));
simDriver.schedule(new RequestEvent(sim, 17.0, "fh0", 0, 576560));
simDriver.schedule(new RequestEvent(sim, 24.0, "fh0", 0, 0));
simDriver.schedule(new RequestEvent(sim, 25.0, "fh0", 0, 28601));
simDriver.schedule(new RequestEvent(sim, 29.0, "fh0", 0, 41822));
simDriver.schedule(new RequestEvent(sim, 38.0, "fh0", 0, 157222));
simDriver.schedule(new RequestEvent(sim, 39.0, "fh0", 0, 657159));
simDriver.schedule(new RequestEvent(sim, 51.0, "fh0", 0, 21));
simDriver.schedule(new RequestEvent(sim, 53.0, "fh0", 0, 602470));
simDriver.schedule(new RequestEvent(sim, 58.0, "fh0", 0, 42));
simDriver.run();
System.out.println("Simulation run completed.");
ds.endSimulation(simDriver.getCurrentTime());
assertTrue(true);
}
}