about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLukas Wirth <lukastw97@gmail.com>2022-03-26 19:38:20 +0100
committerLukas Wirth <lukastw97@gmail.com>2022-03-26 19:38:20 +0100
commit0ae795136db4e4b436fc000e0468016fdf6d03ec (patch)
tree738c60b84295f567005aca9f9c3fea29ba855336
parent9b046d105170ea1eb4ef7556fc8f5e0eb81a2b3e (diff)
downloadrust-0ae795136db4e4b436fc000e0468016fdf6d03ec.tar.gz
rust-0ae795136db4e4b436fc000e0468016fdf6d03ec.zip
Sort runnable test results to make them deterministic
-rw-r--r--crates/ide/src/runnables.rs255
1 files changed, 128 insertions, 127 deletions
diff --git a/crates/ide/src/runnables.rs b/crates/ide/src/runnables.rs
index f4abee09312..bcb2c8797d0 100644
--- a/crates/ide/src/runnables.rs
+++ b/crates/ide/src/runnables.rs
@@ -544,7 +544,8 @@ mod tests {
         expect: Expect,
     ) {
         let (analysis, position) = fixture::position(ra_fixture);
-        let runnables = analysis.runnables(position.file_id).unwrap();
+        let mut runnables = analysis.runnables(position.file_id).unwrap();
+        runnables.sort_by_key(|it| (it.nav.full_range.start(), it.nav.name.clone()));
         expect.assert_debug_eq(&runnables);
         assert_eq!(
             actions,
@@ -580,7 +581,7 @@ mod not_a_root {
     fn main() {}
 }
 "#,
-            &[Bin, Test, Test, Bench, TestMod],
+            &[TestMod, Bin, Test, Test, Bench],
             expect![[r#"
                 [
                     Runnable {
@@ -589,6 +590,21 @@ mod not_a_root {
                             file_id: FileId(
                                 0,
                             ),
+                            full_range: 0..137,
+                            name: "",
+                            kind: Module,
+                        },
+                        kind: TestMod {
+                            path: "",
+                        },
+                        cfg: None,
+                    },
+                    Runnable {
+                        use_name_in_title: false,
+                        nav: NavigationTarget {
+                            file_id: FileId(
+                                0,
+                            ),
                             full_range: 1..13,
                             focus_range: 4..8,
                             name: "main",
@@ -657,21 +673,6 @@ mod not_a_root {
                         },
                         cfg: None,
                     },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 0..137,
-                            name: "",
-                            kind: Module,
-                        },
-                        kind: TestMod {
-                            path: "",
-                        },
-                        cfg: None,
-                    },
                 ]
             "#]],
         );
@@ -1065,7 +1066,7 @@ mod root_tests {
     mod nested_tests_4 {}
 }
 "#,
-            &[TestMod, TestMod, TestMod, Test, Test, Test],
+            &[TestMod, TestMod, Test, Test, TestMod, Test],
             expect![[r#"
                 [
                     Runnable {
@@ -1108,23 +1109,6 @@ mod root_tests {
                             file_id: FileId(
                                 0,
                             ),
-                            full_range: 202..286,
-                            focus_range: 206..220,
-                            name: "nested_tests_2",
-                            kind: Module,
-                            description: "mod nested_tests_2",
-                        },
-                        kind: TestMod {
-                            path: "root_tests::nested_tests_0::nested_tests_2",
-                        },
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
                             full_range: 84..126,
                             focus_range: 107..121,
                             name: "nested_test_11",
@@ -1167,6 +1151,23 @@ mod root_tests {
                             file_id: FileId(
                                 0,
                             ),
+                            full_range: 202..286,
+                            focus_range: 206..220,
+                            name: "nested_tests_2",
+                            kind: Module,
+                            description: "mod nested_tests_2",
+                        },
+                        kind: TestMod {
+                            path: "root_tests::nested_tests_0::nested_tests_2",
+                        },
+                        cfg: None,
+                    },
+                    Runnable {
+                        use_name_in_title: false,
+                        nav: NavigationTarget {
+                            file_id: FileId(
+                                0,
+                            ),
                             full_range: 235..276,
                             focus_range: 258..271,
                             name: "nested_test_2",
@@ -1197,7 +1198,7 @@ $0
 #[cfg(feature = "foo")]
 fn test_foo1() {}
 "#,
-            &[Test, TestMod],
+            &[TestMod, Test],
             expect![[r#"
                 [
                     Runnable {
@@ -1206,6 +1207,21 @@ fn test_foo1() {}
                             file_id: FileId(
                                 0,
                             ),
+                            full_range: 0..51,
+                            name: "",
+                            kind: Module,
+                        },
+                        kind: TestMod {
+                            path: "",
+                        },
+                        cfg: None,
+                    },
+                    Runnable {
+                        use_name_in_title: false,
+                        nav: NavigationTarget {
+                            file_id: FileId(
+                                0,
+                            ),
                             full_range: 1..50,
                             focus_range: 36..45,
                             name: "test_foo1",
@@ -1228,21 +1244,6 @@ fn test_foo1() {}
                             ),
                         ),
                     },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 0..51,
-                            name: "",
-                            kind: Module,
-                        },
-                        kind: TestMod {
-                            path: "",
-                        },
-                        cfg: None,
-                    },
                 ]
             "#]],
         );
@@ -1258,7 +1259,7 @@ $0
 #[cfg(all(feature = "foo", feature = "bar"))]
 fn test_foo1() {}
 "#,
-            &[Test, TestMod],
+            &[TestMod, Test],
             expect![[r#"
                 [
                     Runnable {
@@ -1267,6 +1268,21 @@ fn test_foo1() {}
                             file_id: FileId(
                                 0,
                             ),
+                            full_range: 0..73,
+                            name: "",
+                            kind: Module,
+                        },
+                        kind: TestMod {
+                            path: "",
+                        },
+                        cfg: None,
+                    },
+                    Runnable {
+                        use_name_in_title: false,
+                        nav: NavigationTarget {
+                            file_id: FileId(
+                                0,
+                            ),
                             full_range: 1..72,
                             focus_range: 58..67,
                             name: "test_foo1",
@@ -1299,21 +1315,6 @@ fn test_foo1() {}
                             ),
                         ),
                     },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 0..73,
-                            name: "",
-                            kind: Module,
-                        },
-                        kind: TestMod {
-                            path: "",
-                        },
-                        cfg: None,
-                    },
                 ]
             "#]],
         );
@@ -1400,7 +1401,7 @@ mod tests {
 }
 gen2!();
 "#,
-            &[TestMod, TestMod, TestMod, Test, Test],
+            &[TestMod, TestMod, Test, Test, TestMod],
             expect![[r#"
                 [
                     Runnable {
@@ -1409,14 +1410,12 @@ gen2!();
                             file_id: FileId(
                                 0,
                             ),
-                            full_range: 202..227,
-                            focus_range: 206..211,
-                            name: "tests",
+                            full_range: 0..237,
+                            name: "",
                             kind: Module,
-                            description: "mod tests",
                         },
                         kind: TestMod {
-                            path: "tests",
+                            path: "",
                         },
                         cfg: None,
                     },
@@ -1426,28 +1425,34 @@ gen2!();
                             file_id: FileId(
                                 0,
                             ),
-                            full_range: 0..237,
-                            name: "",
+                            full_range: 202..227,
+                            focus_range: 206..211,
+                            name: "tests",
                             kind: Module,
+                            description: "mod tests",
                         },
                         kind: TestMod {
-                            path: "",
+                            path: "tests",
                         },
                         cfg: None,
                     },
                     Runnable {
-                        use_name_in_title: true,
+                        use_name_in_title: false,
                         nav: NavigationTarget {
                             file_id: FileId(
                                 0,
                             ),
-                            full_range: 228..236,
-                            name: "tests2",
-                            kind: Module,
-                            description: "mod tests2",
+                            full_range: 218..225,
+                            name: "foo_test",
+                            kind: Function,
                         },
-                        kind: TestMod {
-                            path: "tests2",
+                        kind: Test {
+                            test_id: Path(
+                                "tests::foo_test",
+                            ),
+                            attr: TestAttr {
+                                ignore: false,
+                            },
                         },
                         cfg: None,
                     },
@@ -1472,22 +1477,18 @@ gen2!();
                         cfg: None,
                     },
                     Runnable {
-                        use_name_in_title: false,
+                        use_name_in_title: true,
                         nav: NavigationTarget {
                             file_id: FileId(
                                 0,
                             ),
-                            full_range: 218..225,
-                            name: "foo_test",
-                            kind: Function,
+                            full_range: 228..236,
+                            name: "tests2",
+                            kind: Module,
+                            description: "mod tests2",
                         },
-                        kind: Test {
-                            test_id: Path(
-                                "tests::foo_test",
-                            ),
-                            attr: TestAttr {
-                                ignore: false,
-                            },
+                        kind: TestMod {
+                            path: "tests2",
                         },
                         cfg: None,
                     },
@@ -1516,7 +1517,7 @@ macro_rules! foo {
 }
 foo!();
 "#,
-            &[TestMod, Test, Test, Test],
+            &[Test, Test, Test, TestMod],
             expect![[r#"
                 [
                     Runnable {
@@ -1526,22 +1527,6 @@ foo!();
                                 0,
                             ),
                             full_range: 210..217,
-                            name: "foo_tests",
-                            kind: Module,
-                            description: "mod foo_tests",
-                        },
-                        kind: TestMod {
-                            path: "foo_tests",
-                        },
-                        cfg: None,
-                    },
-                    Runnable {
-                        use_name_in_title: true,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                0,
-                            ),
-                            full_range: 210..217,
                             name: "foo0",
                             kind: Function,
                         },
@@ -1595,6 +1580,22 @@ foo!();
                         },
                         cfg: None,
                     },
+                    Runnable {
+                        use_name_in_title: true,
+                        nav: NavigationTarget {
+                            file_id: FileId(
+                                0,
+                            ),
+                            full_range: 210..217,
+                            name: "foo_tests",
+                            kind: Module,
+                            description: "mod foo_tests",
+                        },
+                        kind: TestMod {
+                            path: "foo_tests",
+                        },
+                        cfg: None,
+                    },
                 ]
             "#]],
         );
@@ -1671,7 +1672,7 @@ fn t0() {}
 #[test]
 fn t1() {}
 "#,
-            &[Test, Test, TestMod],
+            &[TestMod, Test, Test],
             expect![[r#"
                 [
                     Runnable {
@@ -1680,6 +1681,21 @@ fn t1() {}
                             file_id: FileId(
                                 1,
                             ),
+                            full_range: 0..39,
+                            name: "m",
+                            kind: Module,
+                        },
+                        kind: TestMod {
+                            path: "m",
+                        },
+                        cfg: None,
+                    },
+                    Runnable {
+                        use_name_in_title: false,
+                        nav: NavigationTarget {
+                            file_id: FileId(
+                                1,
+                            ),
                             full_range: 1..19,
                             focus_range: 12..14,
                             name: "t0",
@@ -1716,21 +1732,6 @@ fn t1() {}
                         },
                         cfg: None,
                     },
-                    Runnable {
-                        use_name_in_title: false,
-                        nav: NavigationTarget {
-                            file_id: FileId(
-                                1,
-                            ),
-                            full_range: 0..39,
-                            name: "m",
-                            kind: Module,
-                        },
-                        kind: TestMod {
-                            path: "m",
-                        },
-                        cfg: None,
-                    },
                 ]
             "#]],
         );