Skip to content

Commit d1063aa

Browse files
committed
thorough checking of Tree extension (#293)
1 parent d0725bd commit d1063aa

File tree

1 file changed

+23
-0
lines changed
  • git-index/tests/index/file

1 file changed

+23
-0
lines changed

git-index/tests/index/file/mod.rs

+23
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
mod init {
2+
use bstr::ByteSlice;
23
use std::path::{Path, PathBuf};
34

45
use git_index::{entry, Version};
@@ -34,13 +35,24 @@ mod init {
3435
assert!(entry.flags.is_empty());
3536
assert_eq!(entry.mode, entry::Mode::FILE);
3637
assert_eq!(entry.path(&file.state), "a");
38+
39+
let tree = file.tree().unwrap();
40+
assert_eq!(tree.num_entries, 1);
41+
assert_eq!(tree.id, hex_to_id("496d6428b9cf92981dc9495211e6e1120fb6f2ba"));
42+
assert!(tree.name.is_empty());
43+
assert!(tree.children.is_empty());
3744
}
3845
}
3946
#[test]
4047
fn read_v2_empty() {
4148
let file = file("v2_empty");
4249
assert_eq!(file.version(), Version::V2);
4350
assert_eq!(file.entries().len(), 0);
51+
let tree = file.tree().unwrap();
52+
assert_eq!(tree.num_entries, 0);
53+
assert!(tree.name.is_empty());
54+
assert!(tree.children.is_empty());
55+
assert_eq!(tree.id, hex_to_id("4b825dc642cb6eb9a060e54bf8d69288fbee4904"));
4456
}
4557

4658
#[test]
@@ -56,6 +68,17 @@ mod init {
5668
assert_eq!(e.mode, entry::Mode::FILE);
5769
assert_eq!(e.id, hex_to_id("e69de29bb2d1d6434b8b29ae775ad8c2e48c5391"))
5870
}
71+
72+
let tree = file.tree().unwrap();
73+
assert_eq!(tree.id, hex_to_id("c9b29c3168d8e677450cc650238b23d9390801fb"));
74+
assert_eq!(tree.num_entries, 6);
75+
assert!(tree.name.is_empty());
76+
assert_eq!(tree.children.len(), 1);
77+
78+
let tree = &tree.children[0];
79+
assert_eq!(tree.id, hex_to_id("765b32c65d38f04c4f287abda055818ec0f26912"));
80+
assert_eq!(tree.num_entries, 3);
81+
assert_eq!(tree.name.as_bstr(), "d");
5982
}
6083

6184
fn find_shared_index_for(index: impl AsRef<Path>) -> PathBuf {

0 commit comments

Comments
 (0)