Skip to content

Commit a72f857

Browse files
authored
Merge pull request #209 from erfanara/master
[FIX] cloudlet: Add check for Cloudlet completion in getRemainingCloudletLength()
2 parents 2f09d34 + fac4623 commit a72f857

File tree

3 files changed

+9
-0
lines changed

3 files changed

+9
-0
lines changed

modules/cloudsim/src/main/java/org/cloudbus/cloudsim/Cloudlet.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1205,6 +1205,10 @@ public long getCloudletFinishedSoFar(final int resId) {
12051205
* @post $result >= 0
12061206
*/
12071207
public long getRemainingCloudletLength() {
1208+
// Check if Cloudlet is finished
1209+
if (getCloudletLength() == getCloudletFinishedSoFar())
1210+
return 0;
1211+
12081212
long length = getCloudletTotalLength()*Consts.MILLION - getCloudletFinishedSoFar();
12091213

12101214
// Remaining Cloudlet length can't be negative number.

modules/cloudsim/src/test/java/org/cloudbus/cloudsim/CloudletSchedulerSingleServiceTest.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,9 @@ public void testCloudletFinish() {
137137
vmScheduler.cloudletFinish(cloudlet);
138138

139139
assertEquals(Cloudlet.CloudletStatus.SUCCESS, vmScheduler.getCloudletStatus(0));
140+
assertEquals(0, cloudlet.getRemainingCloudletLength());
141+
assertEquals(true, cloudlet.isFinished());
142+
assertEquals(CLOUDLET_LENGTH, cloudlet.getCloudletFinishedSoFar());
140143
assertTrue(vmScheduler.isFinishedCloudlets());
141144
assertSame(cloudlet, vmScheduler.getNextFinishedCloudlet());
142145
}

modules/cloudsim/src/test/java/org/cloudbus/cloudsim/CloudletTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@ public void testCloudlet() {
5757
assertSame(utilizationModelCpu, cloudlet.getUtilizationModelCpu());
5858
assertSame(utilizationModelRam, cloudlet.getUtilizationModelRam());
5959
assertSame(utilizationModelBw, cloudlet.getUtilizationModelBw());
60+
assertEquals(CLOUDLET_LENGTH * PES_NUMBER, cloudlet.getRemainingCloudletLength());
61+
assertEquals(0, cloudlet.getCloudletFinishedSoFar());
6062
}
6163

6264
@Test

0 commit comments

Comments
 (0)