about summary refs log tree commit diff
path: root/tests/ui-fulldeps/mod_dir_path_canonicalized.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui-fulldeps/mod_dir_path_canonicalized.rs')
-rw-r--r--tests/ui-fulldeps/mod_dir_path_canonicalized.rs39
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/ui-fulldeps/mod_dir_path_canonicalized.rs b/tests/ui-fulldeps/mod_dir_path_canonicalized.rs
new file mode 100644
index 00000000000..ff1be080415
--- /dev/null
+++ b/tests/ui-fulldeps/mod_dir_path_canonicalized.rs
@@ -0,0 +1,39 @@
+// run-pass
+// Testing that a librustc_ast can parse modules with canonicalized base path
+// ignore-cross-compile
+// ignore-remote
+
+#![feature(rustc_private)]
+
+extern crate rustc_ast;
+extern crate rustc_parse;
+extern crate rustc_session;
+extern crate rustc_span;
+
+// Necessary to pull in object code as the rest of the rustc crates are shipped only as rmeta
+// files.
+#[allow(unused_extern_crates)]
+extern crate rustc_driver;
+
+use rustc_parse::new_parser_from_file;
+use rustc_session::parse::ParseSess;
+use rustc_span::source_map::FilePathMapping;
+use std::path::Path;
+
+#[path = "mod_dir_simple/test.rs"]
+mod gravy;
+
+pub fn main() {
+    rustc_span::create_default_session_globals_then(|| parse());
+
+    assert_eq!(gravy::foo(), 10);
+}
+
+fn parse() {
+    let parse_session = ParseSess::new(FilePathMapping::empty());
+
+    let path = Path::new(file!());
+    let path = path.canonicalize().unwrap();
+    let mut parser = new_parser_from_file(&parse_session, &path, None);
+    let _ = parser.parse_crate_mod();
+}