diff --git a/parser/src/test.rs b/parser/src/test.rs
index 1014d83e85..ad123ca63d 100644
--- a/parser/src/test.rs
+++ b/parser/src/test.rs
@@ -14,7 +14,10 @@
// You should have received a copy of the GNU General Public License
// along with the Leo library. If not, see .
-use std::{fs, path::Path};
+use std::{
+ fs,
+ path::{Path, PathBuf},
+};
use crate::SyntaxError;
@@ -42,7 +45,9 @@ pub fn parser_pass_tests() {
let mut pass = 0;
let mut fail = vec![];
let mut tests = vec![];
- find_tests("../tests/pass/parse/", &mut tests);
+ let mut test_dir = PathBuf::from(env!("CARGO_MANIFEST_DIR"));
+ test_dir.push("../tests/pass/parse/");
+ find_tests(&test_dir, &mut tests);
for (path, content) in tests.into_iter() {
match crate::parse(&path, &content) {
Ok(_) => {
@@ -73,7 +78,9 @@ pub fn parser_fail_tests() {
let mut pass = 0;
let mut fail = vec![];
let mut tests = vec![];
- find_tests("../tests/fail/parse/", &mut tests);
+ let mut test_dir = PathBuf::from(env!("CARGO_MANIFEST_DIR"));
+ test_dir.push("../tests/fail/parse/");
+ find_tests(&test_dir, &mut tests);
for (path, content) in tests.into_iter() {
match crate::parse(&path, &content) {
Ok(_) => {
diff --git a/parser/tests/serialization/expected_leo_ast.json b/parser/tests/serialization/expected_leo_ast.json
index 9535cdd016..cedf6db8a0 100644
--- a/parser/tests/serialization/expected_leo_ast.json
+++ b/parser/tests/serialization/expected_leo_ast.json
@@ -4,9 +4,9 @@
"imports": [],
"circuits": {},
"functions": {
- "{\"name\":\"main\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":10,\\\"col_stop\\\":14,\\\"path\\\":\\\"./tests/serialization/main.leo\\\"}\"}": {
+ "{\"name\":\"main\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":10,\\\"col_stop\\\":14,\\\"path\\\":\\\"test\\\"}\"}": {
"annotations": [],
- "identifier": "{\"name\":\"main\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":10,\\\"col_stop\\\":14,\\\"path\\\":\\\"./tests/serialization/main.leo\\\"}\"}",
+ "identifier": "{\"name\":\"main\",\"span\":\"{\\\"line_start\\\":1,\\\"line_stop\\\":1,\\\"col_start\\\":10,\\\"col_stop\\\":14,\\\"path\\\":\\\"test\\\"}\"}",
"input": [],
"output": null,
"block": {
@@ -24,7 +24,7 @@
"line_stop": 2,
"col_start": 12,
"col_stop": 13,
- "path": "./tests/serialization/main.leo"
+ "path": "test"
}
]
}
@@ -38,7 +38,7 @@
"line_stop": 2,
"col_start": 16,
"col_stop": 17,
- "path": "./tests/serialization/main.leo"
+ "path": "test"
}
]
}
@@ -49,7 +49,7 @@
"line_stop": 2,
"col_start": 12,
"col_stop": 17,
- "path": "./tests/serialization/main.leo"
+ "path": "test"
}
}
},
@@ -58,7 +58,7 @@
"line_stop": 2,
"col_start": 5,
"col_stop": 17,
- "path": "./tests/serialization/main.leo"
+ "path": "test"
}
}
}
@@ -68,7 +68,7 @@
"line_stop": 3,
"col_start": 17,
"col_stop": 2,
- "path": "./tests/serialization/main.leo"
+ "path": "test"
}
},
"span": {
@@ -76,7 +76,7 @@
"line_stop": 3,
"col_start": 1,
"col_stop": 2,
- "path": "./tests/serialization/main.leo"
+ "path": "test"
}
}
}
diff --git a/parser/tests/serialization/json.rs b/parser/tests/serialization/json.rs
index cf1c01f66b..9e62f65072 100644
--- a/parser/tests/serialization/json.rs
+++ b/parser/tests/serialization/json.rs
@@ -25,7 +25,7 @@ fn to_ast(program_filepath: &Path) -> Result {
let program_string = std::fs::read_to_string(program_filepath).expect("failed to open test");
// Parses the Leo file and constructs a leo ast.
- leo_parser::parse_ast(&program_filepath.to_str().unwrap(), &program_string)
+ leo_parser::parse_ast("test", &program_string)
}
#[test]
@@ -33,7 +33,8 @@ fn to_ast(program_filepath: &Path) -> Result {
fn test_serialize() {
// Construct an ast from the given test file.
let ast = {
- let program_filepath = PathBuf::from("./tests/serialization/main.leo");
+ let mut program_filepath = PathBuf::from(env!("CARGO_MANIFEST_DIR"));
+ program_filepath.push("tests/serialization/main.leo");
to_ast(&program_filepath).unwrap()
};
@@ -52,7 +53,8 @@ fn test_serialize() {
fn test_deserialize() {
// Load the expected ast.
let expected_ast = {
- let program_filepath = PathBuf::from("./tests/serialization/main.leo");
+ let mut program_filepath = PathBuf::from(env!("CARGO_MANIFEST_DIR"));
+ program_filepath.push("tests/serialization/main.leo");
to_ast(&program_filepath).unwrap()
};
@@ -68,7 +70,8 @@ fn test_deserialize() {
fn test_serialize_deserialize_serialize() {
// Construct an ast from the given test file.
let ast = {
- let program_filepath = PathBuf::from("./tests/serialization/main.leo");
+ let mut program_filepath = PathBuf::from(env!("CARGO_MANIFEST_DIR"));
+ program_filepath.push("tests/serialization/main.leo");
to_ast(&program_filepath).unwrap()
};
@@ -88,7 +91,8 @@ fn test_serialize_deserialize_serialize() {
#[test]
fn test_generic_parser_error() {
let error_result = {
- let program_filepath = PathBuf::from("./tests/serialization/parser_error.leo");
+ let mut program_filepath = PathBuf::from(env!("CARGO_MANIFEST_DIR"));
+ program_filepath.push("tests/serialization/parser_error.leo");
to_ast(&program_filepath)
}