@@ -408,12 +408,203 @@ impl Step for RustAnalyzer {
408408 cargo. arg ( "--workspace" ) ;
409409 cargo. arg ( "--exclude=xtask" ) ;
410410
411+ let mut skip_tests = vec ! [
412+ // FIXME: may need a fix from https://github.com/rust-lang/rust-analyzer/pull/19124.
413+ "config::tests::cargo_target_dir_subdir" ,
414+ ] ;
415+ skip_tests. extend ( if self . host . starts_with ( "aarch64-apple" ) {
416+ // FIXME: fails on `aarch64-apple` due to `cfg` differences
417+ vec ! [
418+ "item_tree::tests::generics_with_attributes" ,
419+ "hover::tests::generic_params_disabled_by_cfg" ,
420+ ]
421+ } else if self . host == "i686-pc-windows-gnu" {
422+ // FIXME: fails on `i686-mingw` due to multiple reasons. E.g. unsupport op on 32-bit
423+ // windows-gnu target but on a 64-bit host, i.e. ptr width being different is
424+ // unsupported.
425+ vec ! [
426+ // FIXME: failed to const eval on 32-bit windows-gnu running on 64-bit host maybe?
427+ "consteval::tests::add" ,
428+ "consteval::tests::anonymous_const_block" ,
429+ "consteval::tests::alignment" ,
430+ "consteval::tests::bit_op" ,
431+ "consteval::tests::associated_types" ,
432+ "consteval::tests::boxes" ,
433+ "consteval::tests::array_and_index" ,
434+ "consteval::tests::builtin_derive_macro" ,
435+ "consteval::tests::casts" ,
436+ "consteval::tests::const_generic_subst_assoc_const_impl" ,
437+ "consteval::tests::c_string" ,
438+ "consteval::tests::const_generic_subst_fn" ,
439+ "consteval::tests::const_impl_assoc" ,
440+ "consteval::tests::closure_clone" ,
441+ "consteval::tests::byte_string" ,
442+ "consteval::tests::closures" ,
443+ "consteval::tests::const_trait_assoc" ,
444+ "consteval::tests::coerce_unsized" ,
445+ "consteval::tests::consts" ,
446+ "consteval::tests::enums" ,
447+ "consteval::tests::floating_point" ,
448+ "consteval::tests::destructing_assignment" ,
449+ "consteval::tests::floating_point_casts" ,
450+ "consteval::tests::closure_and_impl_fn" ,
451+ "consteval::tests::extern_weak_statics" ,
452+ "consteval::tests::function_call" ,
453+ "consteval::tests::function_param_patterns" ,
454+ "consteval::tests::closure_capture_unsized_type" ,
455+ "consteval::tests::function_pointer" ,
456+ "consteval::tests::from_ne_bytes" ,
457+ "consteval::tests::function_pointer_in_constants" ,
458+ "consteval::tests::from_trait" ,
459+ "consteval::tests::ifs" ,
460+ "consteval::tests::generic_fn" ,
461+ "consteval::tests::dyn_trait" ,
462+ "consteval::tests::impl_trait" ,
463+ "consteval::tests::enum_variant_as_function" ,
464+ "consteval::tests::const_transfer_memory" ,
465+ "consteval::tests::intrinsics::allocator" ,
466+ "consteval::tests::function_traits" ,
467+ "consteval::tests::intrinsics::copy_nonoverlapping" ,
468+ "consteval::tests::intrinsics::ctlz" ,
469+ "consteval::tests::intrinsics::ctpop" ,
470+ "consteval::tests::intrinsics::cttz" ,
471+ "consteval::tests::intrinsics::const_eval_select" ,
472+ "consteval::tests::intrinsics::floating_point" ,
473+ "consteval::tests::for_loops" ,
474+ "consteval::tests::function_pointer_and_niche_optimization" ,
475+ "consteval::tests::intrinsics::likely" ,
476+ "consteval::tests::intrinsics::arith_offset" ,
477+ "consteval::tests::intrinsics::overflowing_add" ,
478+ "consteval::tests::intrinsics::atomic" ,
479+ "consteval::tests::intrinsics::rotate" ,
480+ "consteval::tests::intrinsics::copy" ,
481+ "consteval::tests::intrinsics::read_via_copy" ,
482+ "consteval::tests::intrinsics::saturating" ,
483+ "consteval::tests::intrinsics::needs_drop" ,
484+ "consteval::tests::intrinsics::size_of" ,
485+ "consteval::tests::intrinsics::simd" ,
486+ "consteval::tests::intrinsics::min_align_of_val" ,
487+ "consteval::tests::intrinsics::transmute" ,
488+ "consteval::tests::intrinsics::type_name" ,
489+ "consteval::tests::intrinsics::wrapping_add" ,
490+ "consteval::tests::intrinsics::write_bytes" ,
491+ "consteval::tests::intrinsics::write_via_move" ,
492+ "consteval::tests::let_else" ,
493+ "consteval::tests::layout_of_type_with_associated_type_field_defined_inside_body" ,
494+ "consteval::tests::loops" ,
495+ "consteval::tests::locals" ,
496+ "consteval::tests::intrinsics::offset" ,
497+ "consteval::tests::intrinsics::size_of_val" ,
498+ "consteval::tests::or_pattern" ,
499+ "consteval::tests::memory_limit" ,
500+ "consteval::tests::intrinsics::ptr_offset_from" ,
501+ "consteval::tests::intrinsics::discriminant_value" ,
502+ "consteval::tests::path_pattern_matching" ,
503+ "consteval::tests::overloaded_binop" ,
504+ "consteval::tests::overloaded_deref" ,
505+ "consteval::tests::overloaded_index" ,
506+ "consteval::tests::overloaded_deref_autoref" ,
507+ "consteval::tests::pattern_matching_ergonomics" ,
508+ "consteval::tests::pattern_matching_literal" ,
509+ "consteval::tests::pattern_matching_range" ,
510+ "consteval::tests::manual_fn_trait_impl" ,
511+ "consteval::tests::recursion" ,
512+ "consteval::tests::reference_autoderef" ,
513+ "consteval::tests::references" ,
514+ "consteval::tests::ranges" ,
515+ "consteval::tests::raw_pointer_equality" ,
516+ "consteval::tests::match_guards" ,
517+ "consteval::tests::structs" ,
518+ "consteval::tests::options" ,
519+ "consteval::tests::trait_method" ,
520+ "consteval::tests::trait_basic" ,
521+ "consteval::tests::pattern_matching_slice" ,
522+ "consteval::tests::string" ,
523+ "consteval::tests::trait_method_inside_block" ,
524+ "consteval::tests::statics" ,
525+ "consteval::tests::tuples" ,
526+ "consteval::tests::unions" ,
527+ "consteval::tests::result_layout_niche_optimization" ,
528+ "consteval::tests::unsized_field" ,
529+ "consteval::tests::try_block" ,
530+ "consteval::tests::try_operator" ,
531+ "mir::eval::tests::closure_capture_array_const_generic" ,
532+ "mir::eval::tests::closure_layout_in_rpit" ,
533+ "mir::eval::tests::drop_basic" ,
534+ "mir::eval::tests::closure_state" ,
535+ "mir::eval::tests::drop_in_place" ,
536+ "mir::eval::tests::field_with_associated_type" ,
537+ "mir::eval::tests::function_with_extern_c_abi" ,
538+ "mir::eval::tests::generic_impl_for_trait_with_generic_method" ,
539+ "mir::eval::tests::drop_if_let" ,
540+ "mir::eval::tests::drop_struct_field" ,
541+ "mir::eval::tests::index_of_slice_should_preserve_len" ,
542+ "mir::eval::tests::for_loop" ,
543+ "mir::eval::tests::manually_drop" ,
544+ "mir::eval::tests::from_fn" ,
545+ "mir::eval::tests::long_str_eq_same_prefix" ,
546+ "mir::eval::tests::posix_getenv" ,
547+ "mir::eval::tests::memcmp" ,
548+ "mir::eval::tests::panic_display" ,
549+ "mir::eval::tests::self_with_capital_s" ,
550+ "mir::eval::tests::short_circuit_operator" ,
551+ "mir::eval::tests::panic_fmt" ,
552+ "mir::eval::tests::regression_14966" ,
553+ "mir::eval::tests::posix_tls" ,
554+ "mir::eval::tests::specialization_array_clone" ,
555+ "mir::eval::tests::unix_write_stdout" ,
556+ "mir::eval::tests::syscalls" ,
557+ "tests::regression::regression_14456" ,
558+ "tests::simple::const_eval_array_repeat_expr" ,
559+ "tests::simple::const_eval_in_function_signature" ,
560+ "tests::simple::issue_14275" ,
561+ "tests::traits::array_length" ,
562+ "tests::traits::const_generics" ,
563+ // FIXME: annotation order seems to be different on `i686-mingw`
564+ "annotations::tests::runnable_annotation" ,
565+ "annotations::tests::struct_references_annotations" ,
566+ "annotations::tests::struct_and_trait_impls_annotations" ,
567+ "annotations::tests::method_annotations" ,
568+ // FIXME: const eval on hover not working, either shows infer `_` or unevaluated.
569+ "hover::tests::array_repeat_exp" ,
570+ "hover::tests::const_generic_negative_i8_literal" ,
571+ "hover::tests::hover_const_eval" ,
572+ "hover::tests::hover_const_eval_discriminant" ,
573+ "hover::tests::hover_const_eval_enum" ,
574+ "hover::tests::hover_const_eval_floating_point" ,
575+ "hover::tests::hover_const_static" ,
576+ "hover::tests::hover_const_pat" ,
577+ "hover::tests::hover_const_eval_slice" ,
578+ "hover::tests::hover_eval_complex_constants" ,
579+ "hover::tests::hover_unsigned_max_const" ,
580+ "hover::tests::i128_max" ,
581+ // FIXME: failed to const eval, formatting difference in const struct
582+ // (extra comma / reformatted?)
583+ "hover::tests::hover_const_eval_str" ,
584+ // FIXME: failed to const eval, extra path segment
585+ "hover::tests::hover_const_value" ,
586+ "hover::tests::hover_dollar_crate stdout" ,
587+ // FIXME: failed to const eval, shows explicit `i32` on literal
588+ "hover::tests::hover_const_eval_dyn_trait" ,
589+ // FIXME: discriminant `= ?` problems
590+ "inlay_hints::discriminant::tests::datacarrying_mixed" ,
591+ "inlay_hints::discriminant::tests::fieldless" ,
592+ // FIXME: list order non-deterministic or different on `i686-mingw`?
593+ "runnables::tests::tests_are_unique" ,
594+ // FIXME: HTML element attribute order maybe non-deterministic or different on
595+ // `i686-mingw`?
596+ "syntax_highlighting::tests::test_rainbow_highlighting" ,
597+ ]
598+ } else {
599+ vec ! [ ]
600+ } ) ;
601+
602+ let skip_tests = skip_tests. iter ( ) . map ( |name| format ! ( "--skip={name}" ) ) . collect :: < Vec < _ > > ( ) ;
603+ let skip_tests = skip_tests. iter ( ) . map ( |s| s. as_str ( ) ) . collect :: < Vec < _ > > ( ) ;
604+
411605 run_cargo_test (
412606 cargo,
413- & [
414- // FIXME: may need a fix from https://github.com/rust-lang/rust-analyzer/pull/19124.
415- "--skip=config::tests::cargo_target_dir_subdir" ,
416- ] ,
607+ skip_tests. as_slice ( ) ,
417608 & [ ] ,
418609 "rust-analyzer" ,
419610 "rust-analyzer" ,
0 commit comments