a16afb4a27
Those tests were previously not run because of the missing _test suffix. Changed the test expectations for type_variable_shadows_class_test until it is fixed. Corrected syntax error in optimized_lists.dart and removed invalid expectation from mint_arithmetic_test.dart. Added failing tests to the status file with the corresponding issue #. Split double_to_string_test into two files where one contains all the ones failing with dart2js. BUG=dart:643,dart:1533 Review URL: https://codereview.chromium.org//11316108 git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@15193 260f80e4-7a28-3924-810f-c04153c831b5
85 lines
2.1 KiB
Dart
85 lines
2.1 KiB
Dart
// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
|
|
// for details. All rights reserved. Use of this source code is governed by a
|
|
// BSD-style license that can be found in the LICENSE file.
|
|
|
|
// Test arithmetic on 64-bit integers.
|
|
|
|
test_and_1() {
|
|
try { // Avoid optimizing this function.
|
|
f(a, b) {
|
|
var s = b;
|
|
var t = a & s;
|
|
return t == b;
|
|
}
|
|
var x = 0xffffffff;
|
|
for (var i = 0; i < 10000; i++) f(x, 0);
|
|
Expect.equals(true, f(x, 0));
|
|
Expect.equals(false, f(x, -1)); // Triggers deoptimization.
|
|
} finally { }
|
|
}
|
|
|
|
test_and_2() {
|
|
try { // Avoid optimizing this function.
|
|
f(a, b) {
|
|
return a & b;
|
|
}
|
|
var x = 0xffffffff;
|
|
for (var i = 0; i < 10000; i++) f(x, x);
|
|
Expect.equals(x, f(x, x));
|
|
Expect.equals(1234, f(0xffffffff, 1234));
|
|
Expect.equals(0x100000001, f(0x100000001,-1));
|
|
Expect.equals(-0x40000000, f(-0x40000000, -1));
|
|
Expect.equals(0x40000000, f(0x40000000, -1));
|
|
Expect.equals(0x3fffffff, f(0x3fffffff, -1));
|
|
} finally { }
|
|
}
|
|
|
|
test_xor_1() {
|
|
try { // Avoid optimizing this function.
|
|
f(a, b) {
|
|
var s = b;
|
|
var t = a ^ s;
|
|
return t;
|
|
}
|
|
var x = 0xffffffff;
|
|
for (var i = 0; i < 10000; i++) f(x, x);
|
|
Expect.equals(0, f(x, x));
|
|
Expect.equals(-x - 1, f(x, -1));
|
|
var y = 0xffffffffffffffff;
|
|
Expect.equals(-y - 1, f(y, -1)); // Triggers deoptimization.
|
|
} finally { }
|
|
}
|
|
|
|
test_or_1() {
|
|
try { // Avoid optimizing this function.
|
|
f(a, b) {
|
|
var s = b;
|
|
var t = a | s;
|
|
return t;
|
|
}
|
|
var x = 0xffffffff;
|
|
for (var i = 0; i < 10000; i++) f(x, x);
|
|
Expect.equals(x, f(x, x));
|
|
Expect.equals(-1, f(x, -1));
|
|
var y = 0xffffffffffffffff;
|
|
Expect.equals(-1, f(y, -1)); // Triggers deoptimization.
|
|
} finally { }
|
|
}
|
|
|
|
test_func(x, y) => (x & y) + 1.0;
|
|
|
|
test_mint_double_op() {
|
|
for (var i=0; i<10000; i++) test_func(4294967295, 1);
|
|
Expect.equals(2.0, test_func(4294967295, 1));
|
|
}
|
|
|
|
main() {
|
|
for (var i = 0; i < 5; i++) {
|
|
test_and_1();
|
|
test_and_2();
|
|
test_xor_1();
|
|
test_or_1();
|
|
test_mint_double_op();
|
|
}
|
|
}
|