dart-sdk/tests/corelib
Ömer Sinan Ağacan acd82f974b [tests] Add int.tryParse overflow check tests
See the comments before tests for details.

The test cases are generated with this Rust program:

```
use num::*;

fn main() {
    // 10111...., 65 bits
    let lo: u64 = (1 << 63) - 1;
    let mut err_pattern: BigUint = BigUint::from(lo);
    err_pattern.set_bit(64, true);

    // In the error case, the bit after the sign bit should be set (this bit will be lost), and
    // sign bit should be unset (so that overflow won't make the result negative).
    assert!(err_pattern.bit(64));
    assert!(!err_pattern.bit(63));

    // For each radix, find the number and digit where
    // `<error> = (<old number> * <radix>) + <digit>`.
    'radix_loop: for radix in 4..=36u32 {
        for digit in 0..radix {
            let i: BigUint = (err_pattern.clone() - BigUint::from(digit)) / BigUint::from(radix);
            if !i.bit(64) && !i.bit(63) {
                println!(
                    "{}: {} + {} ({} + {})",
                    radix,
                    i.to_str_radix(radix),

                    BigUint::from(digit).to_str_radix(radix),
                    i,
                    digit,
                );
                continue 'radix_loop;
            }
        }
    }
}
```
Change-Id: I6fe92c46b31373f465702744ee069394db949b60
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/372422
Commit-Queue: Ömer Ağacan <omersa@google.com>
Reviewed-by: Lasse Nielsen <lrn@google.com>
2024-06-20 18:01:57 +00:00
..
regexp Reland "Tweak expect.dart library." 2024-04-26 15:28:26 +00:00
apply2_test.dart
apply3_test.dart
apply4_test.dart
apply5_test.dart
apply6_test.dart
apply_generic_function_test.dart
apply_test.dart [expect] introduce Expect.throwsWhen and Expect.throwsTypeErrorWhen 2024-02-14 20:12:05 +00:00
bigint_add_test.dart [vm, lib] Fix out-of-bounds access in BigInt.>>. 2023-09-11 21:05:38 +00:00
bigint_bitlength_test.dart [vm, lib] Fix out-of-bounds access in BigInt.>>. 2023-09-11 21:05:38 +00:00
bigint_div_test.dart [vm, lib] Fix out-of-bounds access in BigInt.>>. 2023-09-11 21:05:38 +00:00
bigint_from_test.dart [vm, lib] Fix out-of-bounds access in BigInt.>>. 2023-09-11 21:05:38 +00:00
bigint_js_test.dart
bigint_mod_test.dart [vm, lib] Fix out-of-bounds access in BigInt.>>. 2023-09-11 21:05:38 +00:00
bigint_mul_test.dart [vm, lib] Fix out-of-bounds access in BigInt.>>. 2023-09-11 21:05:38 +00:00
bigint_parse_radix_test.dart [vm, lib] Fix out-of-bounds access in BigInt.>>. 2023-09-11 21:05:38 +00:00
bigint_sll_test.dart [vm, lib] Fix out-of-bounds access in BigInt.>>. 2023-09-11 21:05:38 +00:00
bigint_sra_test.dart [vm, lib] Fix out-of-bounds access in BigInt.>>. 2023-09-11 21:05:38 +00:00
bigint_sub_test.dart [vm, lib] Fix out-of-bounds access in BigInt.>>. 2023-09-11 21:05:38 +00:00
bigint_test.dart [vm, lib] Fix out-of-bounds access in BigInt.>>. 2023-09-11 21:05:38 +00:00
bit_twiddling_test.dart
bitops_unsigned_js_test.dart Add two bit operation tests. 2024-03-16 12:56:21 +00:00
bitops_unsigned_shared_test.dart Add two bit operation tests. 2024-03-16 12:56:21 +00:00
bool_from_environment2_test.dart
bool_from_environment_test.dart
bool_hashcode_test.dart
bool_operator_test.dart
bool_parse_test.dart
bool_try_parse_test.dart
cast_errors_test.dart
cast_helper.dart
cast_iterable_test.dart
cast_list_test.dart
cast_map_test.dart
cast_set_test.dart
cast_strong_test.dart
cast_weak_test.dart
collection_from_test.dart
collection_length_test.dart
collection_of_test.dart
collection_removes_test.dart
collection_test.dart
collection_to_string_test.dart
compare_to2_test.dart [tests] update to use variations.dart#jsNumbers 2024-02-08 17:00:59 +00:00
compare_to_test.dart
const_list_literal_test.dart
const_list_remove_range_test.dart
const_list_set_range_test.dart
core_runtime_types_static_test.dart
core_runtime_types_test.dart [tests] update tests to use variations 2024-02-08 17:00:59 +00:00
corelib.status
data_uri_test.dart
date_time2_test.dart
date_time3_test.dart
date_time4_test.dart Clean up DateTime tests 2024-06-07 17:58:32 +00:00
date_time5_test.dart
date_time6_test.dart
date_time7_test.dart [tests] Remove debug prints from corelib/date_time7 test 2024-03-19 12:30:56 +00:00
date_time8_test.dart
date_time9_test.dart
date_time10_test.dart
date_time11_test.dart
date_time_copy_with_test.dart
date_time_extremes_test.dart Clean up DateTime tests 2024-06-07 17:58:32 +00:00
date_time_far_away_dates_test.dart Clean up DateTime tests 2024-06-07 17:58:32 +00:00
date_time_js_modified_test.dart
date_time_parse_test.dart Clean up DateTime tests 2024-06-07 17:58:32 +00:00
date_time_test.dart Clean up DateTime tests 2024-06-07 17:58:32 +00:00
double_ceil2_test.dart
double_ceil_test.dart [tests] update to use variations.dart#jsNumbers 2024-02-08 17:00:59 +00:00
double_ceil_to_double_test.dart
double_compare_test.dart
double_floor2_test.dart
double_floor_test.dart [tests] update to use variations.dart#jsNumbers 2024-02-08 17:00:59 +00:00
double_floor_to_double_test.dart
double_hash_code_test.dart
double_parse_test.dart
double_round2_test.dart
double_round3_test.dart
double_round4_test.dart
double_round_test.dart [tests] update to use variations.dart#jsNumbers 2024-02-08 17:00:59 +00:00
double_round_to_double2_test.dart
double_round_to_double3_test.dart
double_round_to_double_test.dart
double_truncate2_test.dart
double_truncate_test.dart [tests] update to use variations.dart#jsNumbers 2024-02-08 17:00:59 +00:00
double_truncate_to_double_test.dart
double_try_parse_test.dart
duration_big_num_test.dart
duration_double_multiplication_test.dart
duration_test.dart
dynamic_nosuchmethod_test.dart [vm] Remove --[no-]lazy-dispatchers flag. 2024-06-06 10:56:12 +00:00
error_stack_trace1_test.dart
error_stack_trace2_test.dart
error_stack_trace_test.dart
error_stacktrace_test.dart Make all platforms return null from Error.stackTrace until thrown. 2024-02-27 23:01:06 +00:00
error_throw_with_stacktrace_test.dart
errors_test.dart
exception_implementation_test.dart
expando_test.dart
expression_test.dart
finalizer_test.dart [dart2wasm] Fix bug in [Finalizer] implementation 2024-04-19 11:35:27 +00:00
for_in_test.dart
format_exception_test.dart
from_environment_const_type_test.dart
from_environment_const_type_undefined_test.dart
from_environment_default_value_test.dart
growable_list_test.dart
has_next_iterator_test.dart
hash_map2_test.dart
hash_map_test.dart
hash_set_test.dart [tests] update to use variations.dart#jsNumbers 2024-02-08 17:00:59 +00:00
hash_set_type_check_test.dart
hashcode_boxed_test.dart
hashcode_test.dart
hidden_library2_test.dart
int_ceil_test.dart
int_ceil_to_double_test.dart
int_floor_test.dart
int_floor_to_double_test.dart
int_from_environment2_test.dart
int_from_environment_int64_test.dart
int_from_environment_test.dart
int_modpow_hard_test.dart
int_modulo_arith_test.dart [expect] introduce Expect.throwsWhen and Expect.throwsTypeErrorWhen 2024-02-14 20:12:05 +00:00
int_parse_radix_int64_test.dart
int_parse_radix_test.dart [tests] Add int.tryParse overflow check tests 2024-06-20 18:01:57 +00:00
int_parse_with_limited_ints_test.dart
int_round_test.dart
int_round_to_double_test.dart
int_to_int_test.dart
int_truncate_test.dart
int_truncate_to_double_test.dart
int_try_parse_int64_test.dart
int_try_parse_test.dart
integer_arith_vm_test.dart
integer_parsed_arith_vm_test.dart
integer_parsed_div_rem_vm_test.dart
integer_parsed_mul_div_vm_test.dart
integer_to_radix_string_test.dart
integer_to_string_test.dart [tests] update to use variations.dart#jsNumbers 2024-02-08 17:00:59 +00:00
invocation_test.dart
is_operator_basic_types_test.dart
iterable_contains2_test.dart
iterable_contains_test.dart
iterable_element_at_test.dart
iterable_empty_test.dart
iterable_expand_test.dart
iterable_extension_test.dart
iterable_first_test.dart
iterable_first_where_test.dart
iterable_fold_test.dart
iterable_followed_by_test.dart
iterable_generate_test.dart
iterable_join_test.dart
iterable_last_test.dart
iterable_last_where_test.dart
iterable_length_test.dart
iterable_mapping_test.dart
iterable_reduce_test.dart
iterable_return_type_helper.dart
iterable_return_type_int64_test.dart
iterable_return_type_test.dart
iterable_single_test.dart
iterable_single_where_test.dart
iterable_skip_test.dart
iterable_skip_while_test.dart
iterable_take_test.dart
iterable_take_while_test.dart
iterable_test.dart
iterable_to_list_test.dart
iterable_to_set_test.dart
iterable_tostring_test.dart
iterable_where_type_test.dart
json_map_test.dart
linked_hash_map_from_iterable_test.dart
linked_hash_map_from_iterables_test.dart
linked_hash_map_test.dart
list_as_map_test.dart
list_concurrent_modify_self_test.dart
list_concurrent_modify_test.dart
list_contains_argument_order_test.dart
list_copy_range_test.dart
list_factory_specialization_regression_test.dart [vm]/[dart2wasm] Fix list factory specialization code 2024-05-08 08:59:01 +00:00
list_fill_range_test.dart
list_filled_type_argument_test.dart
list_first_test.dart
list_fixed_test.dart
list_for_each_test.dart
list_get_range_test.dart
list_growable_test.dart
list_index_of_test.dart
list_insert_all_test.dart
list_insert_test.dart
list_iterators_test.dart
list_last_test.dart
list_literal_is_growable_test.dart
list_literal_test.dart
list_map_test.dart
list_remove_range_test.dart
list_removeat_test.dart [expect] introduce Expect.throwsWhen and Expect.throwsTypeErrorWhen 2024-02-14 20:12:05 +00:00
list_replace_range_test.dart
list_reversed_test.dart
list_set_all_test.dart
list_set_range_test.dart
list_sort_test.dart
list_sublist_test.dart
list_test.dart
list_to_string2_test.dart
list_to_string_test.dart
list_unmodifiable_cast_test.dart
list_unmodifiable_test.dart
list_write_elements_test.dart
local_date_time_test.dart
main_test.dart
map_contains_key_test.dart
map_contains_value_test.dart
map_entry_test.dart
map_from_entries_test.dart
map_from_iterable_test.dart
map_from_iterables_test.dart
map_from_test.dart
map_index_test.dart
map_keys2_test.dart
map_keys_test.dart
map_of_test.dart
map_remove_test.dart
map_set_undefined_test.dart
map_test.dart
map_to_string_test.dart
map_unmodifiable_cast_test.dart
map_update_test.dart
map_values2_test.dart
map_values3_test.dart
map_values4_test.dart
map_values_test.dart
nan_branching_test.dart
nan_infinity_test.dart
nsm_invocation_generic_test.dart
nsm_invocation_test.dart
null_closurized_method_tostring_test.dart
null_nosuchmethod_test.dart [vm] Remove --[no-]lazy-dispatchers flag. 2024-06-06 10:56:12 +00:00
null_test.dart
num_clamp_test.dart
num_parse_test.dart
num_sign_test.dart
num_try_parse_test.dart
object_hash_test.dart
OWNERS Use an OWNERS file to restrict editing of tests/corelib to language team. 2024-04-03 15:57:20 +00:00
range_error_test.dart
reg_exp1_test.dart
reg_exp5_test.dart
reg_exp_all_matches_test.dart
reg_exp_cache_test.dart
reg_exp_first_match_test.dart
reg_exp_group_test.dart
reg_exp_groups_test.dart
reg_exp_has_match_test.dart
reg_exp_pattern_test.dart
reg_exp_receive_port_test.dart
reg_exp_start_end_test.dart
reg_exp_string_match_test.dart
regress_11099_test.dart
regress_33166_test.dart
regress_42011_test.dart
regress_42502_test.dart
regress_45473_test.dart
regress_54800_test.dart [dart2wasm] Fix int.parse(<str>) for when <str> is a JSString 2024-02-05 22:38:18 +00:00
regress_55817_test.dart [dart2wasm] Only perform compile-time lookup in constant list if index is in-bounds 2024-05-27 11:52:48 +00:00
regress_r21715_test.dart
safe_to_string_test.dart
set_contains_test.dart
set_containsAll_test.dart
set_intersection_test.dart
set_iterator_test.dart
set_remove_test.dart
set_removeAll_test.dart
set_retainAll_test.dart
set_test.dart
set_to_string_test.dart
set_unmodifiable_view_test.dart Reland "Tweak expect.dart library." 2024-04-26 15:28:26 +00:00
shuffle_test.dart
sort_helper.dart
sort_test.dart
splay_tree_from_iterable_test.dart
splay_tree_from_iterables_test.dart
splay_tree_test.dart
stacktrace_current_test.dart
stacktrace_fromstring_test.dart
stopwatch2_test.dart
stopwatch_test.dart
string_base_vm_static_test.dart
string_base_vm_test.dart
string_buffer_test.dart
string_case_test.dart
string_codeunits_test.dart
string_from_environment2_test.dart
string_from_environment3_test.dart
string_from_environment_test.dart
string_from_list_test.dart
string_fromcharcode_test.dart
string_fromcharcodes_test.dart String.fromCharCodes allows start and end after end of iterable. 2023-11-17 13:34:22 +00:00
string_operations_with_null_test.dart
string_operator_multiply_test.dart
string_pattern_test.dart
string_replace_all_2_test.dart
string_replace_all_common.dart
string_replace_all_pattern_test.dart
string_replace_all_test.dart
string_replace_dollar_test.dart
string_replace_static_test.dart
string_replace_test.dart
string_runes_test.dart
string_source_test.dart
string_split_test.dart [expect] introduce Expect.throwsWhen and Expect.throwsTypeErrorWhen 2024-02-14 20:12:05 +00:00
string_static_test.dart
string_substring_test.dart
string_test.dart
string_to_lower_case_test.dart
string_trim2_test.dart
string_trim_nel_test.dart [dart2wasm] Fix JSStringImpl trim methods, add tests 2024-04-17 14:41:52 +00:00
string_trim_test.dart
string_trimlr_test.dart
strings_test.dart
symbol_arbitrary_string_test.dart
symbol_map_helper.dart
symbol_operator_test.dart
symbol_reserved_word_error_test.dart
symbol_reserved_word_test.dart
symbol_test.dart
throw_half_surrogate_pair_test.dart
toInt_test.dart
type_hashcode_test.dart
type_tostring_test.dart
typed_data_with_limited_ints_test.dart
unicode2_test.dart
unicode_test.dart
unsigned_shift_test.dart
uri_base_test.dart Remove unnecessary print in corelib/uri_base_test.dart. 2023-11-29 17:37:28 +00:00
uri_file_test.dart
uri_http_test.dart
uri_ipv4_test.dart
uri_ipv6_test.dart Fix bug in Uri.resolve with IPv6 addresses. 2024-03-11 14:48:24 +00:00
uri_normalize_path_test.dart
uri_normalize_test.dart Fix bug in Uri.resolve with IPv6 addresses. 2024-03-11 14:48:24 +00:00
uri_parameters_all_test.dart
uri_parse_test.dart
uri_path_test.dart
uri_query_test.dart
uri_scheme_test.dart
uri_test.dart
very_big_integer_test.dart
weak_reference_test.dart [gardening] Fix corelib/weak_reference_test 2024-04-22 18:00:19 +00:00