@@ -1354,84 +1354,66 @@ mod test {
13541354 );
13551355 }
13561356
1357− macro_rules! test_decode {
1358− ($label:expr, $label_override:expr) => {
1359− let encoding = encoding::Encoding::for_label($label_override.as_bytes()).unwrap();
1360− let base_path = PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("tests/encoding");
1361− let path = base_path.join(format!("{}_in.txt", $label));
1362− let ref_path = base_path.join(format!("{}_in_ref.txt", $label));
1363− assert!(path.exists());
1364− assert!(ref_path.exists());
1365−
1366− let mut file = std::fs::File::open(path).unwrap();
1367− let text = from_reader(&mut file, Some(encoding))
1368− .unwrap()
1369− .0
1370− .to_string();
1371− let expectation = std::fs::read_to_string(ref_path).unwrap();
1372− assert_eq!(text[..], expectation[..]);
1373− };
1374− }
1375−
1376− macro_rules! test_encode {
1377− ($label:expr, $label_override:expr) => {
1378− let encoding = encoding::Encoding::for_label($label_override.as_bytes()).unwrap();
1379− let base_path = PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("tests/encoding");
1380− let path = base_path.join(format!("{}_out.txt", $label));
1381− let ref_path = base_path.join(format!("{}_out_ref.txt", $label));
1382− assert!(path.exists());
1383− assert!(ref_path.exists());
1384−
1385− let text = Rope::from_str(&std::fs::read_to_string(path).unwrap());
1386− let mut buf: Vec<u8> = Vec::new();
1387− helix_lsp::block_on(to_writer(&mut buf, encoding, &text)).unwrap();
1388−
1389− let expectation = std::fs::read(ref_path).unwrap();
1390− assert_eq!(buf, expectation);
1391− };
1392− }
1393−
1394− macro_rules! test_decode_fn {
1357+ macro_rules! decode {
13951358 ($name:ident, $label:expr, $label_override:expr) => {
13961359 #[test]
13971360 fn $name() {
1398− test_decode!($label, $label_override);
1399− }
1361+ let encoding = encoding::Encoding::for_label($label_override.as_bytes()).unwrap();
1362+ let base_path = PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("tests/encoding");
1363+ let path = base_path.join(format!("{}_in.txt", $label));
1364+ let ref_path = base_path.join(format!("{}_in_ref.txt", $label));
1365+ assert!(path.exists());
1366+ assert!(ref_path.exists());
1367+
1368+ let mut file = std::fs::File::open(path).unwrap();
1369+ let text = from_reader(&mut file, Some(encoding))
1370+ .unwrap()
1371+ .0
1372+ .to_string();
1373+ let expectation = std::fs::read_to_string(ref_path).unwrap();
1374+ assert_eq!(text[..], expectation[..]);
1375+ }
14001376 };
14011377 ($name:ident, $label:expr) => {
1402− #[test]
1403− fn $name() {
1404− test_decode!($label, $label);
1405− }
1378+ decode!($name, $label, $label);
14061379 };
14071380 }
14081381
1409− macro_rules! test_encode_fn {
1382+ macro_rules! encode {
14101383 ($name:ident, $label:expr, $label_override:expr) => {
14111384 #[test]
14121385 fn $name() {
1413− test_encode!($label, $label_override);
1386+ let encoding = encoding::Encoding::for_label($label_override.as_bytes()).unwrap();
1387+ let base_path = PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("tests/encoding");
1388+ let path = base_path.join(format!("{}_out.txt", $label));
1389+ let ref_path = base_path.join(format!("{}_out_ref.txt", $label));
1390+ assert!(path.exists());
1391+ assert!(ref_path.exists());
1392+
1393+ let text = Rope::from_str(&std::fs::read_to_string(path).unwrap());
1394+ let mut buf: Vec<u8> = Vec::new();
1395+ helix_lsp::block_on(to_writer(&mut buf, encoding, &text)).unwrap();
1396+
1397+ let expectation = std::fs::read(ref_path).unwrap();
1398+ assert_eq!(buf, expectation);
14141399 }
14151400 };
14161401 ($name:ident, $label:expr) => {
1417− #[test]
1418− fn $name() {
1419− test_encode!($label, $label);
1420− }
1402+ encode!($name, $label, $label);
14211403 };
14221404 }
14231405
1424− test_decode_fn!(test_big5_decode, "big5");
1425− test_encode_fn!(test_big5_encode, "big5");
1426− test_decode_fn!(test_euc_kr_decode, "euc_kr", "EUC-KR");
1427− test_encode_fn!(test_euc_kr_encode, "euc_kr", "EUC-KR");
1428− test_decode_fn!(test_gb18030_decode, "gb18030");
1429− test_encode_fn!(test_gb18030_encode, "gb18030");
1430− test_decode_fn!(test_iso_2022_jp_decode, "iso_2022_jp", "ISO-2022-JP");
1431− test_encode_fn!(test_iso_2022_jp_encode, "iso_2022_jp", "ISO-2022-JP");
1432− test_decode_fn!(test_jis0208_decode, "jis0208", "EUC-JP");
1433− test_encode_fn!(test_jis0208_encode, "jis0208", "EUC-JP");
1434− test_decode_fn!(test_jis0212_decode, "jis0212", "EUC-JP");
1435− test_decode_fn!(test_shift_jis_decode, "shift_jis");
1436− test_encode_fn!(test_shift_jis_encode, "shift_jis");
1406+ decode!(big5_decode, "big5");
1407+ encode!(big5_encode, "big5");
1408+ decode!(euc_kr_decode, "euc_kr", "EUC-KR");
1409+ encode!(euc_kr_encode, "euc_kr", "EUC-KR");
1410+ decode!(gb18030_decode, "gb18030");
1411+ encode!(gb18030_encode, "gb18030");
1412+ decode!(iso_2022_jp_decode, "iso_2022_jp", "ISO-2022-JP");
1413+ encode!(iso_2022_jp_encode, "iso_2022_jp", "ISO-2022-JP");
1414+ decode!(jis0208_decode, "jis0208", "EUC-JP");
1415+ encode!(jis0208_encode, "jis0208", "EUC-JP");
1416+ decode!(jis0212_decode, "jis0212", "EUC-JP");
1417+ decode!(shift_jis_decode, "shift_jis");
1418+ encode!(shift_jis_encode, "shift_jis");
14371419}