about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/libsyntax_pos/analyze_source_file.rs155
-rw-r--r--src/libsyntax_pos/analyze_source_file/tests.rs151
-rw-r--r--src/libsyntax_pos/lib.rs25
-rw-r--r--src/libsyntax_pos/symbol.rs39
-rw-r--r--src/libsyntax_pos/symbol/tests.rs32
-rw-r--r--src/libsyntax_pos/tests.rs18
-rw-r--r--src/tools/tidy/src/unit_tests.rs1
7 files changed, 210 insertions, 211 deletions
diff --git a/src/libsyntax_pos/analyze_source_file.rs b/src/libsyntax_pos/analyze_source_file.rs
index 353b4e4ab36..e01a14f14a8 100644
--- a/src/libsyntax_pos/analyze_source_file.rs
+++ b/src/libsyntax_pos/analyze_source_file.rs
@@ -1,6 +1,9 @@
 use unicode_width::UnicodeWidthChar;
 use super::*;
 
+#[cfg(test)]
+mod tests;
+
 /// Finds all newlines, multi-byte characters, and non-narrow characters in a
 /// SourceFile.
 ///
@@ -271,155 +274,3 @@ fn analyze_source_file_generic(src: &str,
 
     i - scan_len
 }
-
-
-
-macro_rules! test {
-    (case: $test_name:ident,
-     text: $text:expr,
-     source_file_start_pos: $source_file_start_pos:expr,
-     lines: $lines:expr,
-     multi_byte_chars: $multi_byte_chars:expr,
-     non_narrow_chars: $non_narrow_chars:expr,) => (
-
-    #[test]
-    fn $test_name() {
-
-        let (lines, multi_byte_chars, non_narrow_chars) =
-            analyze_source_file($text, BytePos($source_file_start_pos));
-
-        let expected_lines: Vec<BytePos> = $lines
-            .into_iter()
-            .map(|pos| BytePos(pos))
-            .collect();
-
-        assert_eq!(lines, expected_lines);
-
-        let expected_mbcs: Vec<MultiByteChar> = $multi_byte_chars
-            .into_iter()
-            .map(|(pos, bytes)| MultiByteChar {
-                pos: BytePos(pos),
-                bytes,
-            })
-            .collect();
-
-        assert_eq!(multi_byte_chars, expected_mbcs);
-
-        let expected_nncs: Vec<NonNarrowChar> = $non_narrow_chars
-            .into_iter()
-            .map(|(pos, width)| {
-                NonNarrowChar::new(BytePos(pos), width)
-            })
-            .collect();
-
-        assert_eq!(non_narrow_chars, expected_nncs);
-    })
-}
-
-test!(
-    case: empty_text,
-    text: "",
-    source_file_start_pos: 0,
-    lines: vec![],
-    multi_byte_chars: vec![],
-    non_narrow_chars: vec![],
-);
-
-test!(
-    case: newlines_short,
-    text: "a\nc",
-    source_file_start_pos: 0,
-    lines: vec![0, 2],
-    multi_byte_chars: vec![],
-    non_narrow_chars: vec![],
-);
-
-test!(
-    case: newlines_long,
-    text: "012345678\nabcdef012345678\na",
-    source_file_start_pos: 0,
-    lines: vec![0, 10, 26],
-    multi_byte_chars: vec![],
-    non_narrow_chars: vec![],
-);
-
-test!(
-    case: newline_and_multi_byte_char_in_same_chunk,
-    text: "01234β789\nbcdef0123456789abcdef",
-    source_file_start_pos: 0,
-    lines: vec![0, 11],
-    multi_byte_chars: vec![(5, 2)],
-    non_narrow_chars: vec![],
-);
-
-test!(
-    case: newline_and_control_char_in_same_chunk,
-    text: "01234\u{07}6789\nbcdef0123456789abcdef",
-    source_file_start_pos: 0,
-    lines: vec![0, 11],
-    multi_byte_chars: vec![],
-    non_narrow_chars: vec![(5, 0)],
-);
-
-test!(
-    case: multi_byte_char_short,
-    text: "aβc",
-    source_file_start_pos: 0,
-    lines: vec![0],
-    multi_byte_chars: vec![(1, 2)],
-    non_narrow_chars: vec![],
-);
-
-test!(
-    case: multi_byte_char_long,
-    text: "0123456789abcΔf012345β",
-    source_file_start_pos: 0,
-    lines: vec![0],
-    multi_byte_chars: vec![(13, 2), (22, 2)],
-    non_narrow_chars: vec![],
-);
-
-test!(
-    case: multi_byte_char_across_chunk_boundary,
-    text: "0123456789abcdeΔ123456789abcdef01234",
-    source_file_start_pos: 0,
-    lines: vec![0],
-    multi_byte_chars: vec![(15, 2)],
-    non_narrow_chars: vec![],
-);
-
-test!(
-    case: multi_byte_char_across_chunk_boundary_tail,
-    text: "0123456789abcdeΔ....",
-    source_file_start_pos: 0,
-    lines: vec![0],
-    multi_byte_chars: vec![(15, 2)],
-    non_narrow_chars: vec![],
-);
-
-test!(
-    case: non_narrow_short,
-    text: "0\t2",
-    source_file_start_pos: 0,
-    lines: vec![0],
-    multi_byte_chars: vec![],
-    non_narrow_chars: vec![(1, 4)],
-);
-
-test!(
-    case: non_narrow_long,
-    text: "01\t3456789abcdef01234567\u{07}9",
-    source_file_start_pos: 0,
-    lines: vec![0],
-    multi_byte_chars: vec![],
-    non_narrow_chars: vec![(2, 4), (24, 0)],
-);
-
-test!(
-    case: output_offset_all,
-    text: "01\t345\n789abcΔf01234567\u{07}9\nbcΔf",
-    source_file_start_pos: 1000,
-    lines: vec![0 + 1000, 7 + 1000, 27 + 1000],
-    multi_byte_chars: vec![(13 + 1000, 2), (29 + 1000, 2)],
-    non_narrow_chars: vec![(2 + 1000, 4), (24 + 1000, 0)],
-);
diff --git a/src/libsyntax_pos/analyze_source_file/tests.rs b/src/libsyntax_pos/analyze_source_file/tests.rs
new file mode 100644
index 00000000000..fd485a7f3a9
--- /dev/null
+++ b/src/libsyntax_pos/analyze_source_file/tests.rs
@@ -0,0 +1,151 @@
+use super::*;
+
+macro_rules! test {
+    (case: $test_name:ident,
+     text: $text:expr,
+     source_file_start_pos: $source_file_start_pos:expr,
+     lines: $lines:expr,
+     multi_byte_chars: $multi_byte_chars:expr,
+     non_narrow_chars: $non_narrow_chars:expr,) => (
+
+    #[test]
+    fn $test_name() {
+
+        let (lines, multi_byte_chars, non_narrow_chars) =
+            analyze_source_file($text, BytePos($source_file_start_pos));
+
+        let expected_lines: Vec<BytePos> = $lines
+            .into_iter()
+            .map(|pos| BytePos(pos))
+            .collect();
+
+        assert_eq!(lines, expected_lines);
+
+        let expected_mbcs: Vec<MultiByteChar> = $multi_byte_chars
+            .into_iter()
+            .map(|(pos, bytes)| MultiByteChar {
+                pos: BytePos(pos),
+                bytes,
+            })
+            .collect();
+
+        assert_eq!(multi_byte_chars, expected_mbcs);
+
+        let expected_nncs: Vec<NonNarrowChar> = $non_narrow_chars
+            .into_iter()
+            .map(|(pos, width)| {
+                NonNarrowChar::new(BytePos(pos), width)
+            })
+            .collect();
+
+        assert_eq!(non_narrow_chars, expected_nncs);
+    })
+}
+
+test!(
+    case: empty_text,
+    text: "",
+    source_file_start_pos: 0,
+    lines: vec![],
+    multi_byte_chars: vec![],
+    non_narrow_chars: vec![],
+);
+
+test!(
+    case: newlines_short,
+    text: "a\nc",
+    source_file_start_pos: 0,
+    lines: vec![0, 2],
+    multi_byte_chars: vec![],
+    non_narrow_chars: vec![],
+);
+
+test!(
+    case: newlines_long,
+    text: "012345678\nabcdef012345678\na",
+    source_file_start_pos: 0,
+    lines: vec![0, 10, 26],
+    multi_byte_chars: vec![],
+    non_narrow_chars: vec![],
+);
+
+test!(
+    case: newline_and_multi_byte_char_in_same_chunk,
+    text: "01234β789\nbcdef0123456789abcdef",
+    source_file_start_pos: 0,
+    lines: vec![0, 11],
+    multi_byte_chars: vec![(5, 2)],
+    non_narrow_chars: vec![],
+);
+
+test!(
+    case: newline_and_control_char_in_same_chunk,
+    text: "01234\u{07}6789\nbcdef0123456789abcdef",
+    source_file_start_pos: 0,
+    lines: vec![0, 11],
+    multi_byte_chars: vec![],
+    non_narrow_chars: vec![(5, 0)],
+);
+
+test!(
+    case: multi_byte_char_short,
+    text: "aβc",
+    source_file_start_pos: 0,
+    lines: vec![0],
+    multi_byte_chars: vec![(1, 2)],
+    non_narrow_chars: vec![],
+);
+
+test!(
+    case: multi_byte_char_long,
+    text: "0123456789abcΔf012345β",
+    source_file_start_pos: 0,
+    lines: vec![0],
+    multi_byte_chars: vec![(13, 2), (22, 2)],
+    non_narrow_chars: vec![],
+);
+
+test!(
+    case: multi_byte_char_across_chunk_boundary,
+    text: "0123456789abcdeΔ123456789abcdef01234",
+    source_file_start_pos: 0,
+    lines: vec![0],
+    multi_byte_chars: vec![(15, 2)],
+    non_narrow_chars: vec![],
+);
+
+test!(
+    case: multi_byte_char_across_chunk_boundary_tail,
+    text: "0123456789abcdeΔ....",
+    source_file_start_pos: 0,
+    lines: vec![0],
+    multi_byte_chars: vec![(15, 2)],
+    non_narrow_chars: vec![],
+);
+
+test!(
+    case: non_narrow_short,
+    text: "0\t2",
+    source_file_start_pos: 0,
+    lines: vec![0],
+    multi_byte_chars: vec![],
+    non_narrow_chars: vec![(1, 4)],
+);
+
+test!(
+    case: non_narrow_long,
+    text: "01\t3456789abcdef01234567\u{07}9",
+    source_file_start_pos: 0,
+    lines: vec![0],
+    multi_byte_chars: vec![],
+    non_narrow_chars: vec![(2, 4), (24, 0)],
+);
+
+test!(
+    case: output_offset_all,
+    text: "01\t345\n789abcΔf01234567\u{07}9\nbcΔf",
+    source_file_start_pos: 1000,
+    lines: vec![0 + 1000, 7 + 1000, 27 + 1000],
+    multi_byte_chars: vec![(13 + 1000, 2), (29 + 1000, 2)],
+    non_narrow_chars: vec![(2 + 1000, 4), (24 + 1000, 0)],
+);
diff --git a/src/libsyntax_pos/lib.rs b/src/libsyntax_pos/lib.rs
index acc13aec402..fa6e3609138 100644
--- a/src/libsyntax_pos/lib.rs
+++ b/src/libsyntax_pos/lib.rs
@@ -42,6 +42,9 @@ use std::hash::{Hasher, Hash};
 use std::ops::{Add, Sub};
 use std::path::PathBuf;
 
+#[cfg(test)]
+mod tests;
+
 pub struct Globals {
     symbol_interner: Lock<symbol::Interner>,
     span_interner: Lock<span_encoding::SpanInterner>,
@@ -1420,25 +1423,3 @@ fn lookup_line(lines: &[BytePos], pos: BytePos) -> isize {
         Err(line) => line as isize - 1
     }
 }
-
-#[cfg(test)]
-mod tests {
-    use super::{lookup_line, BytePos};
-
-    #[test]
-    fn test_lookup_line() {
-
-        let lines = &[BytePos(3), BytePos(17), BytePos(28)];
-
-        assert_eq!(lookup_line(lines, BytePos(0)), -1);
-        assert_eq!(lookup_line(lines, BytePos(3)),  0);
-        assert_eq!(lookup_line(lines, BytePos(4)),  0);
-
-        assert_eq!(lookup_line(lines, BytePos(16)), 0);
-        assert_eq!(lookup_line(lines, BytePos(17)), 1);
-        assert_eq!(lookup_line(lines, BytePos(18)), 1);
-
-        assert_eq!(lookup_line(lines, BytePos(28)), 2);
-        assert_eq!(lookup_line(lines, BytePos(29)), 2);
-    }
-}
diff --git a/src/libsyntax_pos/symbol.rs b/src/libsyntax_pos/symbol.rs
index 308f7d5d4e3..476368e8351 100644
--- a/src/libsyntax_pos/symbol.rs
+++ b/src/libsyntax_pos/symbol.rs
@@ -17,6 +17,9 @@ use std::str;
 use crate::hygiene::SyntaxContext;
 use crate::{Span, DUMMY_SP, GLOBALS};
 
+#[cfg(test)]
+mod tests;
+
 symbols! {
     // After modifying this list adjust `is_special`, `is_used_keyword`/`is_unused_keyword`,
     // this should be rarely necessary though if the keywords are kept in alphabetic order.
@@ -1345,39 +1348,3 @@ impl Encodable for InternedString {
         self.with(|string| s.emit_str(string))
     }
 }
-
-#[cfg(test)]
-mod tests {
-    use super::*;
-    use crate::Globals;
-    use crate::edition;
-
-    #[test]
-    fn interner_tests() {
-        let mut i: Interner = Interner::default();
-        // first one is zero:
-        assert_eq!(i.intern("dog"), Symbol::new(0));
-        // re-use gets the same entry:
-        assert_eq!(i.intern("dog"), Symbol::new(0));
-        // different string gets a different #:
-        assert_eq!(i.intern("cat"), Symbol::new(1));
-        assert_eq!(i.intern("cat"), Symbol::new(1));
-        // dog is still at zero
-        assert_eq!(i.intern("dog"), Symbol::new(0));
-        let z = i.intern("zebra");
-        assert_eq!(i.gensymed(z), Symbol::new(SymbolIndex::MAX_AS_U32));
-        // gensym of same string gets new number:
-        assert_eq!(i.gensymed(z), Symbol::new(SymbolIndex::MAX_AS_U32 - 1));
-        // gensym of *existing* string gets new number:
-        let d = i.intern("dog");
-        assert_eq!(i.gensymed(d), Symbol::new(SymbolIndex::MAX_AS_U32 - 2));
-    }
-
-    #[test]
-    fn without_first_quote_test() {
-        GLOBALS.set(&Globals::new(edition::DEFAULT_EDITION), || {
-            let i = Ident::from_str("'break");
-            assert_eq!(i.without_first_quote().name, kw::Break);
-        });
-    }
-}
diff --git a/src/libsyntax_pos/symbol/tests.rs b/src/libsyntax_pos/symbol/tests.rs
new file mode 100644
index 00000000000..1b91c9bb845
--- /dev/null
+++ b/src/libsyntax_pos/symbol/tests.rs
@@ -0,0 +1,32 @@
+use super::*;
+
+use crate::{edition, Globals};
+
+#[test]
+fn interner_tests() {
+    let mut i: Interner = Interner::default();
+    // first one is zero:
+    assert_eq!(i.intern("dog"), Symbol::new(0));
+    // re-use gets the same entry:
+    assert_eq!(i.intern("dog"), Symbol::new(0));
+    // different string gets a different #:
+    assert_eq!(i.intern("cat"), Symbol::new(1));
+    assert_eq!(i.intern("cat"), Symbol::new(1));
+    // dog is still at zero
+    assert_eq!(i.intern("dog"), Symbol::new(0));
+    let z = i.intern("zebra");
+    assert_eq!(i.gensymed(z), Symbol::new(SymbolIndex::MAX_AS_U32));
+    // gensym of same string gets new number:
+    assert_eq!(i.gensymed(z), Symbol::new(SymbolIndex::MAX_AS_U32 - 1));
+    // gensym of *existing* string gets new number:
+    let d = i.intern("dog");
+    assert_eq!(i.gensymed(d), Symbol::new(SymbolIndex::MAX_AS_U32 - 2));
+}
+
+#[test]
+fn without_first_quote_test() {
+    GLOBALS.set(&Globals::new(edition::DEFAULT_EDITION), || {
+        let i = Ident::from_str("'break");
+        assert_eq!(i.without_first_quote().name, kw::Break);
+    });
+}
diff --git a/src/libsyntax_pos/tests.rs b/src/libsyntax_pos/tests.rs
new file mode 100644
index 00000000000..78c4e18e6ae
--- /dev/null
+++ b/src/libsyntax_pos/tests.rs
@@ -0,0 +1,18 @@
+use super::*;
+
+#[test]
+fn test_lookup_line() {
+
+    let lines = &[BytePos(3), BytePos(17), BytePos(28)];
+
+    assert_eq!(lookup_line(lines, BytePos(0)), -1);
+    assert_eq!(lookup_line(lines, BytePos(3)),  0);
+    assert_eq!(lookup_line(lines, BytePos(4)),  0);
+
+    assert_eq!(lookup_line(lines, BytePos(16)), 0);
+    assert_eq!(lookup_line(lines, BytePos(17)), 1);
+    assert_eq!(lookup_line(lines, BytePos(18)), 1);
+
+    assert_eq!(lookup_line(lines, BytePos(28)), 2);
+    assert_eq!(lookup_line(lines, BytePos(29)), 2);
+}
diff --git a/src/tools/tidy/src/unit_tests.rs b/src/tools/tidy/src/unit_tests.rs
index 7c0cc985880..f1822ea3435 100644
--- a/src/tools/tidy/src/unit_tests.rs
+++ b/src/tools/tidy/src/unit_tests.rs
@@ -33,7 +33,6 @@ pub fn check(root_path: &Path, bad: &mut bool) {
         "librustdoc",
         "libstd",
         "libsyntax",
-        "libsyntax_pos",
     ];
 
     let mut skip = |path: &Path| {