blob: 039325d0ec2606ad82e823233a32c5f671e9ba55 [file] [log] [blame]
// Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// Make a bunch of entd.http.Request objects and make sure they are properly
// garbage collected.
// Number of Requests to make in each batch.
var batchSize = 10;
// Number of batches to make.
var batchCount = 10;
// Test result.
var ok = true;
function makeBatch(i) {
var x;
println("Making batch: " + i);
for (var j = 0; j < batchSize; ++j)
x = new entd.http.Request();
if (i != batchCount) {
GC();
// 'x' is still referring to a Request, so there should be one instance
// left after the GC.
if (entd.http.Request.instanceCount != 1) {
ok = false;
println("Expected 1 instance after iteration " + i);
}
entd.setTimeout(function () { makeBatch(i + 1) }, 500);
} else {
// Clear out 'x' after the last batch and check that the instanceCount
// goes to 0.
x = null;
GC();
if (entd.http.Request.instanceCount != 0) {
ok = false;
println("Expected 0 instances after iteration " + i +
", found: " + entd.http.Request.instanceCount);
}
if (ok)
println("LOOKS OK");
}
}
entd.onLoad = function onLoad() {
entd.setTimeout(function () { makeBatch(1) }, 0);
}