about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/test')
-rw-r--r--src/test/compile-fail/lex-bare-cr-string-literal-doc-comment.rs30
-rw-r--r--src/test/run-pass/.gitattributes1
-rw-r--r--src/test/run-pass/lexer-crlf-line-endings-string-literal-doc-comment.rs44
3 files changed, 75 insertions, 0 deletions
diff --git a/src/test/compile-fail/lex-bare-cr-string-literal-doc-comment.rs b/src/test/compile-fail/lex-bare-cr-string-literal-doc-comment.rs
new file mode 100644
index 00000000000..c1e5121d6dd
--- /dev/null
+++ b/src/test/compile-fail/lex-bare-cr-string-literal-doc-comment.rs
@@ -0,0 +1,30 @@
+// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+// ignore-tidy-cr
+
+/// doc comment with bare CR: '
'
+pub fn foo() {}
+//~^^ ERROR: bare CR not allowed in doc-comment
+
+/** block doc comment with bare CR: '
' */
+pub fn bar() {}
+//~^^ ERROR: bare CR not allowed in block doc-comment
+
+fn main() {
+    // the following string literal has a bare CR in it
+    let _s = "foo
bar"; //~ ERROR: bare CR not allowed in string
+
+    // the following string literal has a bare CR in it
+    let _s = r"bar
foo"; //~ ERROR: bare CR not allowed in raw string
+
+    // the following string literal has a bare CR in it
+    let _s = "foo\
bar"; //~ ERROR: unknown character escape: \r
+}
diff --git a/src/test/run-pass/.gitattributes b/src/test/run-pass/.gitattributes
new file mode 100644
index 00000000000..c6a6f23074d
--- /dev/null
+++ b/src/test/run-pass/.gitattributes
@@ -0,0 +1 @@
+lexer-crlf-line-endings-string-literal-doc-comment.rs -text
diff --git a/src/test/run-pass/lexer-crlf-line-endings-string-literal-doc-comment.rs b/src/test/run-pass/lexer-crlf-line-endings-string-literal-doc-comment.rs
new file mode 100644
index 00000000000..5c8db524cc2
--- /dev/null
+++ b/src/test/run-pass/lexer-crlf-line-endings-string-literal-doc-comment.rs
@@ -0,0 +1,44 @@
+// ignore-tidy-cr ignore-license

+// ignore-tidy-cr (repeated again because of tidy bug)

+// license is ignored because tidy can't handle the CRLF here properly.

+

+// Copyright 2014 The Rust Project Developers. See the COPYRIGHT

+// file at the top-level directory of this distribution and at

+// http://rust-lang.org/COPYRIGHT.

+//

+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or

+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license

+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your

+// option. This file may not be copied, modified, or distributed

+// except according to those terms.

+

+// NB: this file needs CRLF line endings. The .gitattributes file in

+// this directory should enforce it.

+

+// ignore-pretty

+

+/// Doc comment that ends in CRLF

+pub fn foo() {}

+

+/** Block doc comment that

+ *  contains CRLF characters

+ */

+pub fn bar() {}

+

+fn main() {

+    let s = "string

+literal";

+    assert_eq!(s, "string\nliteral");

+

+    let s = "literal with \

+             escaped newline";

+    assert_eq!(s, "literal with escaped newline");

+

+    let s = r"string

+literal";

+    assert_eq!(s, "string\nliteral");

+

+    // validate that our source file has CRLF endings

+    let source = include_str!("lexer-crlf-line-endings-string-literal-doc-comment.rs");

+    assert!(source.contains("string\r\nliteral"));

+}