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

Side by Side Diff: mozilla-tests/shell.js

Issue 2865028: Update the mozilla tests to new version (as of 2010-06-29). (Closed) Base URL: svn://chrome-svn/chrome/trunk/deps/third_party/
Patch Set: Created 10 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « mozilla-tests/runtests.sh ('k') | mozilla-tests/slow-n.tests » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- 1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2 * 2 *
3 * ***** BEGIN LICENSE BLOCK ***** 3 * ***** BEGIN LICENSE BLOCK *****
4 * Version: MPL 1.1/GPL 2.0/LGPL 2.1 4 * Version: MPL 1.1/GPL 2.0/LGPL 2.1
5 * 5 *
6 * The contents of this file are subject to the Mozilla Public License Version 6 * The contents of this file are subject to the Mozilla Public License Version
7 * 1.1 (the "License"); you may not use this file except in compliance with 7 * 1.1 (the "License"); you may not use this file except in compliance with
8 * the License. You may obtain a copy of the License at 8 * the License. You may obtain a copy of the License at
9 * http://www.mozilla.org/MPL/ 9 * http://www.mozilla.org/MPL/
10 * 10 *
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 var actual = ''; 68 var actual = '';
69 var msg = ''; 69 var msg = '';
70 70
71 var SECTION = ""; 71 var SECTION = "";
72 var VERSION = ""; 72 var VERSION = "";
73 var BUGNUMBER = ""; 73 var BUGNUMBER = "";
74 74
75 /* 75 /*
76 * constant strings 76 * constant strings
77 */ 77 */
78 var GLOBAL = "[object global]"; 78 var GLOBAL = this + '';
79 var PASSED = " PASSED! "; 79 var PASSED = " PASSED! ";
80 var FAILED = " FAILED! "; 80 var FAILED = " FAILED! ";
81 81
82 var DEBUG = false; 82 var DEBUG = false;
83 83
84 var DESCRIPTION; 84 var DESCRIPTION;
85 var EXPECTED; 85 var EXPECTED;
86 86
87 /* 87 /*
88 * wrapper for test case constructor that doesn't require the SECTION 88 * wrapper for test case constructor that doesn't require the SECTION
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
267 else 267 else
268 { 268 {
269 result += "\\x" + b + a; 269 result += "\\x" + b + a;
270 } 270 }
271 } 271 }
272 272
273 return result; 273 return result;
274 } 274 }
275 275
276 /* 276 /*
277 * assertEq(actual, expected)
278 * Throw if the two arguments are not ===
279 * see https://bugzilla.mozilla.org/show_bug.cgi?id=480199
280 */
281 if (typeof assertEq == 'undefined')
282 {
283 var assertEq =
284 function (actual, expected)
285 {
286 if (actual !== expected)
287 {
288 throw new TypeError('Assertion failed: got "' + actual + '", expected "' + expected);
289 }
290 };
291 }
292
293 /*
277 * Compare expected result to actual result, if they differ (in value and/or 294 * Compare expected result to actual result, if they differ (in value and/or
278 * type) report a failure. If description is provided, include it in the 295 * type) report a failure. If description is provided, include it in the
279 * failure report. 296 * failure report.
280 */ 297 */
281 function reportCompare (expected, actual, description) { 298 function reportCompare (expected, actual, description) {
282 var expected_t = typeof expected; 299 var expected_t = typeof expected;
283 var actual_t = typeof actual; 300 var actual_t = typeof actual;
284 var output = ""; 301 var output = "";
285 302
286 if (typeof description == "undefined") 303 if (typeof description == "undefined")
(...skipping 382 matching lines...) Expand 10 before | Expand all | Expand 10 after
669 686
670 for (optionName in optionsframe) 687 for (optionName in optionsframe)
671 { 688 {
672 options(optionName); 689 options(optionName);
673 } 690 }
674 691
675 } 692 }
676 693
677 function optionsReset() { 694 function optionsReset() {
678 695
679 optionsClear(); 696 try
697 {
698 optionsClear();
680 699
681 // turn on initial settings 700 // turn on initial settings
682 for (optionName in options.initvalues) 701 for (optionName in options.initvalues)
702 {
703 options(optionName);
704 }
705 }
706 catch(ex)
683 { 707 {
684 options(optionName); 708 print('optionsReset: caught ' + ex);
685 } 709 }
710
686 } 711 }
687 712
688 if (typeof options == 'function') 713 if (typeof options == 'function')
689 { 714 {
690 optionsInit(); 715 optionsInit();
691 optionsClear(); 716 optionsClear();
692 } 717 }
693 718
694 function getTestCaseResult(expected, actual) 719 function getTestCaseResult(expected, actual)
695 { 720 {
696 var expected_t = typeof expected; 721 if (typeof expected != typeof actual)
697 var actual_t = typeof actual; 722 return false;
698 var passed = true; 723 if (typeof expected != 'number')
699 724 // Note that many tests depend on the use of '==' here, not '==='.
700 // because ( NaN == NaN ) always returns false, need to do 725 return actual == expected;
701 // a special compare to see if we got the right result.
702 if ( actual != actual )
703 {
704 if ( actual_t == "object" )
705 {
706 actual = "NaN object";
707 }
708 else
709 {
710 actual = "NaN number";
711 }
712 }
713 if ( expected != expected )
714 {
715 if ( expected_t == "object" )
716 {
717 expected = "NaN object";
718 }
719 else
720 {
721 expected = "NaN number";
722 }
723 }
724 726
725 if (expected_t != actual_t) 727 // Distinguish NaN from other values. Using x != x comparisons here
726 { 728 // works even if tests redefine isNaN.
727 passed = false; 729 if (actual != actual)
728 } 730 return expected != expected;
729 else if (expected != actual) 731 if (expected != expected)
730 { 732 return false;
731 if (expected_t != 'number' || (Math.abs(actual - expected) > 1E-10)) 733
732 { 734 // Tolerate a certain degree of error.
733 passed = false; 735 if (actual != expected)
734 } 736 return Math.abs(actual - expected) <= 1E-10;
735 } 737
736 738 // Here would be a good place to distinguish 0 and -0, if we wanted
737 return passed; 739 // to. However, doing so would introduce a number of failures in
740 // areas where they don't seem important. For example, the WeekDay
741 // function in ECMA-262 returns -0 for Sundays before the epoch, but
742 // the Date functions in SpiderMonkey specified in terms of WeekDay
743 // often don't. This seems unimportant.
744 return true;
738 } 745 }
739 746
740 if (typeof dump == 'undefined') 747 if (typeof dump == 'undefined')
741 { 748 {
742 if (typeof window == 'undefined' && 749 if (typeof window == 'undefined' &&
743 typeof print == 'function') 750 typeof print == 'function')
744 { 751 {
745 dump = print; 752 dump = print;
746 } 753 }
747 else 754 else
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
844 dump('jsTestDriverEnd ' + ex); 851 dump('jsTestDriverEnd ' + ex);
845 } 852 }
846 853
847 for (var i = 0; i < gTestcases.length; i++) 854 for (var i = 0; i < gTestcases.length; i++)
848 { 855 {
849 gTestcases[i].dump(); 856 gTestcases[i].dump();
850 } 857 }
851 858
852 } 859 }
853 860
861 function jit(on)
862 {
863 if (on && !options().match(/jit/))
864 {
865 options('jit');
866 }
867 else if (!on && options().match(/jit/))
868 {
869 options('jit');
870 }
871 }
872
854 /* 873 /*
855 * Some tests need to know if we are in Rhino as opposed to SpiderMonkey 874 * Some tests need to know if we are in Rhino as opposed to SpiderMonkey
856 */ 875 */
857 function inRhino() 876 function inRhino()
858 { 877 {
859 return (typeof defineClass == "function"); 878 return (typeof defineClass == "function");
860 } 879 }
861 880
862 /* these functions are useful for running tests manually in Rhino */ 881 /* these functions are useful for running tests manually in Rhino */
863 882
864 function GetContext() { 883 function GetContext() {
865 return Packages.com.netscape.javascript.Context.getCurrentContext(); 884 return Packages.com.netscape.javascript.Context.getCurrentContext();
866 } 885 }
867 function OptLevel( i ) { 886 function OptLevel( i ) {
868 i = Number(i); 887 i = Number(i);
869 var cx = GetContext(); 888 var cx = GetContext();
870 cx.setOptimizationLevel(i); 889 cx.setOptimizationLevel(i);
871 } 890 }
872 /* end of Rhino functions */ 891 /* end of Rhino functions */
873 892
874 893
OLDNEW
« no previous file with comments | « mozilla-tests/runtests.sh ('k') | mozilla-tests/slow-n.tests » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698