Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(103)

Unified Diff: test/webkit/fast/js/deep-recursion-test.js

Issue 21070002: Migrate more tests from blink repository. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | test/webkit/fast/js/deep-recursion-test-expected.txt » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/webkit/fast/js/deep-recursion-test.js
diff --git a/test/webkit/stack-overflow-catch.js b/test/webkit/fast/js/deep-recursion-test.js
similarity index 53%
copy from test/webkit/stack-overflow-catch.js
copy to test/webkit/fast/js/deep-recursion-test.js
index 440148eb659f0792d0df86620a83630aa3253108..59df2f1c9ad72b4fc13dd6822299e1f4558b32d1 100644
--- a/test/webkit/stack-overflow-catch.js
+++ b/test/webkit/fast/js/deep-recursion-test.js
@@ -21,56 +21,58 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-description('Test that when the stack overflows, the exception goes to the last frame before the overflow');
+description("This test how deep we can recurse, and that we get an exception when we do, as opposed to a stack overflow.");
-var level = 0;
-var stackLevel = 0;
-var gotWrongCatch = false;
-
-function test1()
-{
- var myLevel = level;
- var dummy;
+ function simpleRecursion(depth) {
+ if (depth)
+ simpleRecursion(depth - 1);
+ }
try {
- level = level + 1;
- // Dummy code to make this funciton different from test2()
- dummy = level * level + 1;
- if (dummy == 0)
- debug('Should never get here!!!!');
- } catch(err) {
- gotWrongCatch = true;
+ simpleRecursion(17472);
+ } catch (ex) {
+ debug("FAIL: " + ex);
}
try {
- test2();
- } catch(err) {
- stackLevel = myLevel;
+ simpleRecursion(10000000);
+ } catch (ex) {
+ var msg = String(eval(ex));
+ shouldBe("msg", "'RangeError: Maximum call stack size exceeded.'");
}
-}
-function test2()
-{
- var myLevel = level;
+ try {
+ simpleRecursion(1000000000);
+ } catch (ex) {
+ var msg = String(eval(ex));
+ shouldBe("msg", "'RangeError: Maximum call stack size exceeded.'");
+ }
- // Dummy code to make this funciton different from test1()
- if (gotWrongCatch)
- debug('Should never get here!!!!');
+ var tooFewArgsDepth = 0;
- try {
- level = level + 1;
- } catch(err) {
- gotWrongCatch = true;
+ function tooFewArgsRecursion(a) {
+ if (tooFewArgsDepth) {
+ tooFewArgsDepth--;
+ tooFewArgsRecursion();
+ }
}
try {
- test1();
- } catch(err) {
- stackLevel = myLevel;
+ tooFewArgsDepth = 10000000;
+ tooFewArgsRecursion();
+ } catch (ex) {
+ var msg = String(eval(ex));
+ shouldBe("msg", "'RangeError: Maximum call stack size exceeded.'");
}
-}
-test1();
+ function tooManyArgsRecursion(depth) {
+ if (depth)
+ tooManyArgsRecursion(depth - 1, 1);
+ }
-shouldBeFalse("gotWrongCatch");
-shouldBe("(stackLevel)", "(level - 1)");
+ try {
+ tooManyArgsRecursion(10000000, 1);
+ } catch (ex) {
+ var msg = String(eval(ex));
+ shouldBe("msg", "'RangeError: Maximum call stack size exceeded.'");
+ }
« no previous file with comments | « no previous file | test/webkit/fast/js/deep-recursion-test-expected.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698