aboutsummaryrefslogtreecommitdiff
path: root/helix-view/src/document.rs
diff options
context:
space:
mode:
authorKirawi2022-10-21 00:58:13 +0000
committerGitHub2022-10-21 00:58:13 +0000
commitce399471f047c241c63caba11ce154776df5024c (patch)
treec55cc8a340f4abd621fc0899fe30a069ba2d635b /helix-view/src/document.rs
parentfbf8078611abc2fa62856c84b758f2943c00cdec (diff)
simplify encoding test macro (#4385)
Diffstat (limited to 'helix-view/src/document.rs')
-rw-r--r--helix-view/src/document.rs108
1 files changed, 45 insertions, 63 deletions
diff --git a/helix-view/src/document.rs b/helix-view/src/document.rs
index a723b89b..ca07431b 100644
--- a/helix-view/src/document.rs
+++ b/helix-view/src/document.rs
@@ -1354,84 +1354,66 @@ mod test {
);
}
- macro_rules! test_decode {
- ($label:expr, $label_override:expr) => {
- let encoding = encoding::Encoding::for_label($label_override.as_bytes()).unwrap();
- let base_path = PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("tests/encoding");
- let path = base_path.join(format!("{}_in.txt", $label));
- let ref_path = base_path.join(format!("{}_in_ref.txt", $label));
- assert!(path.exists());
- assert!(ref_path.exists());
-
- let mut file = std::fs::File::open(path).unwrap();
- let text = from_reader(&mut file, Some(encoding))
- .unwrap()
- .0
- .to_string();
- let expectation = std::fs::read_to_string(ref_path).unwrap();
- assert_eq!(text[..], expectation[..]);
- };
- }
-
- macro_rules! test_encode {
- ($label:expr, $label_override:expr) => {
- let encoding = encoding::Encoding::for_label($label_override.as_bytes()).unwrap();
- let base_path = PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("tests/encoding");
- let path = base_path.join(format!("{}_out.txt", $label));
- let ref_path = base_path.join(format!("{}_out_ref.txt", $label));
- assert!(path.exists());
- assert!(ref_path.exists());
-
- let text = Rope::from_str(&std::fs::read_to_string(path).unwrap());
- let mut buf: Vec<u8> = Vec::new();
- helix_lsp::block_on(to_writer(&mut buf, encoding, &text)).unwrap();
-
- let expectation = std::fs::read(ref_path).unwrap();
- assert_eq!(buf, expectation);
- };
- }
-
- macro_rules! test_decode_fn {
+ macro_rules! decode {
($name:ident, $label:expr, $label_override:expr) => {
#[test]
fn $name() {
- test_decode!($label, $label_override);
- }
+ let encoding = encoding::Encoding::for_label($label_override.as_bytes()).unwrap();
+ let base_path = PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("tests/encoding");
+ let path = base_path.join(format!("{}_in.txt", $label));
+ let ref_path = base_path.join(format!("{}_in_ref.txt", $label));
+ assert!(path.exists());
+ assert!(ref_path.exists());
+
+ let mut file = std::fs::File::open(path).unwrap();
+ let text = from_reader(&mut file, Some(encoding))
+ .unwrap()
+ .0
+ .to_string();
+ let expectation = std::fs::read_to_string(ref_path).unwrap();
+ assert_eq!(text[..], expectation[..]);
+ }
};
($name:ident, $label:expr) => {
- #[test]
- fn $name() {
- test_decode!($label, $label);
- }
+ decode!($name, $label, $label);
};
}
- macro_rules! test_encode_fn {
+ macro_rules! encode {
($name:ident, $label:expr, $label_override:expr) => {
#[test]
fn $name() {
- test_encode!($label, $label_override);
+ let encoding = encoding::Encoding::for_label($label_override.as_bytes()).unwrap();
+ let base_path = PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("tests/encoding");
+ let path = base_path.join(format!("{}_out.txt", $label));
+ let ref_path = base_path.join(format!("{}_out_ref.txt", $label));
+ assert!(path.exists());
+ assert!(ref_path.exists());
+
+ let text = Rope::from_str(&std::fs::read_to_string(path).unwrap());
+ let mut buf: Vec<u8> = Vec::new();
+ helix_lsp::block_on(to_writer(&mut buf, encoding, &text)).unwrap();
+
+ let expectation = std::fs::read(ref_path).unwrap();
+ assert_eq!(buf, expectation);
}
};
($name:ident, $label:expr) => {
- #[test]
- fn $name() {
- test_encode!($label, $label);
- }
+ encode!($name, $label, $label);
};
}
- test_decode_fn!(test_big5_decode, "big5");
- test_encode_fn!(test_big5_encode, "big5");
- test_decode_fn!(test_euc_kr_decode, "euc_kr", "EUC-KR");
- test_encode_fn!(test_euc_kr_encode, "euc_kr", "EUC-KR");
- test_decode_fn!(test_gb18030_decode, "gb18030");
- test_encode_fn!(test_gb18030_encode, "gb18030");
- test_decode_fn!(test_iso_2022_jp_decode, "iso_2022_jp", "ISO-2022-JP");
- test_encode_fn!(test_iso_2022_jp_encode, "iso_2022_jp", "ISO-2022-JP");
- test_decode_fn!(test_jis0208_decode, "jis0208", "EUC-JP");
- test_encode_fn!(test_jis0208_encode, "jis0208", "EUC-JP");
- test_decode_fn!(test_jis0212_decode, "jis0212", "EUC-JP");
- test_decode_fn!(test_shift_jis_decode, "shift_jis");
- test_encode_fn!(test_shift_jis_encode, "shift_jis");
+ decode!(big5_decode, "big5");
+ encode!(big5_encode, "big5");
+ decode!(euc_kr_decode, "euc_kr", "EUC-KR");
+ encode!(euc_kr_encode, "euc_kr", "EUC-KR");
+ decode!(gb18030_decode, "gb18030");
+ encode!(gb18030_encode, "gb18030");
+ decode!(iso_2022_jp_decode, "iso_2022_jp", "ISO-2022-JP");
+ encode!(iso_2022_jp_encode, "iso_2022_jp", "ISO-2022-JP");
+ decode!(jis0208_decode, "jis0208", "EUC-JP");
+ encode!(jis0208_encode, "jis0208", "EUC-JP");
+ decode!(jis0212_decode, "jis0212", "EUC-JP");
+ decode!(shift_jis_decode, "shift_jis");
+ encode!(shift_jis_encode, "shift_jis");
}