summaryrefslogtreecommitdiffstats
path: root/tests/ui-fulldeps/mod_dir_path_canonicalized.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:13 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:13 +0000
commit218caa410aa38c29984be31a5229b9fa717560ee (patch)
treec54bd55eeb6e4c508940a30e94c0032fbd45d677 /tests/ui-fulldeps/mod_dir_path_canonicalized.rs
parentReleasing progress-linux version 1.67.1+dfsg1-1~progress7.99u1. (diff)
downloadrustc-218caa410aa38c29984be31a5229b9fa717560ee.tar.xz
rustc-218caa410aa38c29984be31a5229b9fa717560ee.zip
Merging upstream version 1.68.2+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/ui-fulldeps/mod_dir_path_canonicalized.rs')
-rw-r--r--tests/ui-fulldeps/mod_dir_path_canonicalized.rs40
1 files changed, 40 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 000000000..bdfd9628c
--- /dev/null
+++ b/tests/ui-fulldeps/mod_dir_path_canonicalized.rs
@@ -0,0 +1,40 @@
+// run-pass
+// Testing that a librustc_ast can parse modules with canonicalized base path
+// ignore-cross-compile
+// ignore-remote
+// no-remap-src-base: Reading `file!()` (expectedly) fails when enabled.
+
+#![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();
+}