Unified · Split
| @@ -1,53 +1,18 @@ | ||
| 1 | −mod iter {} | |
| 2 | − | |
| 3 | −mod from_bytes { | |
| 4 | − use crate::hex_to_id; | |
| 5 | − use crate::immutable::fixture_bytes; | |
| 1 | +mod iter { | |
| 2 | + use crate::{hex_to_id, immutable::fixture_bytes}; | |
| 6 | 3 | use git_object::{ |
| 7 | 4 | bstr::ByteSlice, |
| 8 | − immutable::{tree::Entry, Tree, TreeIter}, | |
| 5 | + immutable::{tree::Entry, TreeIter}, | |
| 9 | 6 | tree, |
| 10 | 7 | }; |
| 11 | 8 | |
| 12 | 9 | #[test] |
| 13 | − fn everything() -> Result<(), Box<dyn std::error::Error>> { | |
| 14 | − assert_eq!( | |
| 15 | − Tree::from_bytes(&fixture_bytes("tree", "everything.tree"))?, | |
| 16 | − Tree { | |
| 17 | − entries: vec![ | |
| 18 | − Entry { | |
| 19 | − mode: tree::EntryMode::BlobExecutable, | |
| 20 | − filename: b"exe".as_bstr(), | |
| 21 | − oid: &hex_to_id("e69de29bb2d1d6434b8b29ae775ad8c2e48c5391") | |
| 22 | − }, | |
| 23 | − Entry { | |
| 24 | − mode: tree::EntryMode::Blob, | |
| 25 | − filename: b"file".as_bstr(), | |
| 26 | − oid: &hex_to_id("e69de29bb2d1d6434b8b29ae775ad8c2e48c5391") | |
| 27 | − }, | |
| 28 | − Entry { | |
| 29 | − mode: tree::EntryMode::Commit, | |
| 30 | − filename: b"grit-submodule".as_bstr(), | |
| 31 | − oid: &hex_to_id("b2d1b5d684bdfda5f922b466cc13d4ce2d635cf8") | |
| 32 | − }, | |
| 33 | − Entry { | |
| 34 | − mode: tree::EntryMode::Tree, | |
| 35 | − filename: b"subdir".as_bstr(), | |
| 36 | − oid: &hex_to_id("4d5fcadc293a348e88f777dc0920f11e7d71441c") | |
| 37 | − }, | |
| 38 | − Entry { | |
| 39 | − mode: tree::EntryMode::Link, | |
| 40 | − filename: b"symlink".as_bstr(), | |
| 41 | − oid: &hex_to_id("1a010b1c0f081b2e8901d55307a15c29ff30af0e") | |
| 42 | − } | |
| 43 | − ] | |
| 44 | − } | |
| 45 | − ); | |
| 46 | − Ok(()) | |
| 10 | + fn empty() { | |
| 11 | + assert_eq!(TreeIter::from_bytes(&[]).count(), 0, "empty trees are definitely ok"); | |
| 47 | 12 | } |
| 48 | 13 | |
| 49 | 14 | #[test] |
| 50 | − fn iter_error_handling() -> Result<(), Box<dyn std::error::Error>> { | |
| 15 | + fn error_handling() -> Result<(), Box<dyn std::error::Error>> { | |
| 51 | 16 | let data = fixture_bytes("tree", "everything.tree"); |
| 52 | 17 | let iter = TreeIter::from_bytes(&data[..data.len() / 2]); |
| 53 | 18 | let entries = iter.collect::<Vec<_>>(); |
| @@ -59,7 +24,7 @@ mod from_bytes { · 5 unmodified lines | ||
| 59 | 24 | } |
| 60 | 25 | |
| 61 | 26 | #[test] |
| 62 | − fn everything_iter() -> Result<(), Box<dyn std::error::Error>> { | |
| 27 | + fn everything() -> Result<(), Box<dyn std::error::Error>> { | |
| 63 | 28 | assert_eq!( |
| 64 | 29 | TreeIter::from_bytes(&fixture_bytes("tree", "everything.tree")).collect::<Result<Vec<_>, _>>()?, |
| 65 | 30 | vec![ |
| @@ -92,6 +57,58 @@ mod from_bytes { · 26 unmodified lines | ||
| 92 | 57 | ); |
| 93 | 58 | Ok(()) |
| 94 | 59 | } |
| 60 | +} | |
| 61 | + | |
| 62 | +mod from_bytes { | |
| 63 | + use crate::{hex_to_id, immutable::fixture_bytes}; | |
| 64 | + use git_object::{ | |
| 65 | + bstr::ByteSlice, | |
| 66 | + immutable::{tree::Entry, Tree}, | |
| 67 | + tree, | |
| 68 | + }; | |
| 69 | + | |
| 70 | + #[test] | |
| 71 | + #[should_panic] | |
| 72 | + fn empty() { | |
| 73 | + assert_eq!(Tree::from_bytes(&[]).unwrap(), Tree { entries: vec![] }); | |
| 74 | + } | |
| 75 | + | |
| 76 | + #[test] | |
| 77 | + fn everything() -> Result<(), Box<dyn std::error::Error>> { | |
| 78 | + assert_eq!( | |
| 79 | + Tree::from_bytes(&fixture_bytes("tree", "everything.tree"))?, | |
| 80 | + Tree { | |
| 81 | + entries: vec![ | |
| 82 | + Entry { | |
| 83 | + mode: tree::EntryMode::BlobExecutable, | |
| 84 | + filename: b"exe".as_bstr(), | |
| 85 | + oid: &hex_to_id("e69de29bb2d1d6434b8b29ae775ad8c2e48c5391") | |
| 86 | + }, | |
| 87 | + Entry { | |
| 88 | + mode: tree::EntryMode::Blob, | |
| 89 | + filename: b"file".as_bstr(), | |
| 90 | + oid: &hex_to_id("e69de29bb2d1d6434b8b29ae775ad8c2e48c5391") | |
| 91 | + }, | |
| 92 | + Entry { | |
| 93 | + mode: tree::EntryMode::Commit, | |
| 94 | + filename: b"grit-submodule".as_bstr(), | |
| 95 | + oid: &hex_to_id("b2d1b5d684bdfda5f922b466cc13d4ce2d635cf8") | |
| 96 | + }, | |
| 97 | + Entry { | |
| 98 | + mode: tree::EntryMode::Tree, | |
| 99 | + filename: b"subdir".as_bstr(), | |
| 100 | + oid: &hex_to_id("4d5fcadc293a348e88f777dc0920f11e7d71441c") | |
| 101 | + }, | |
| 102 | + Entry { | |
| 103 | + mode: tree::EntryMode::Link, | |
| 104 | + filename: b"symlink".as_bstr(), | |
| 105 | + oid: &hex_to_id("1a010b1c0f081b2e8901d55307a15c29ff30af0e") | |
| 106 | + } | |
| 107 | + ] | |
| 108 | + } | |
| 109 | + ); | |
| 110 | + Ok(()) | |
| 111 | + } | |
| 95 | 112 | |
| 96 | 113 | #[test] |
| 97 | 114 | fn maybe_special() -> Result<(), Box<dyn std::error::Error>> { |