History

show that we can already parse ranged rev-specs better than git (#427)

Sebastian Thiel committed 4 years ago

Commit 418360c1 parent 43e4cc11 file · +32 −0Browse files

Unified · Split

git-revision/tests/spec/parse/range.rs+32−0
@@ -32,6 +32,24 @@ fn leading_caret_is_range_kind() { · 31 unmodified lines
3232 assert_eq!(rec.resolve_ref_input.unwrap(), "HEAD");
3333 assert_eq!(rec.prefix, None);
3434 assert_eq!(rec.calls, 2);
35+
36+ let rec = parse("^abcd");
37+ assert_eq!(rec.kind.unwrap(), spec::Kind::Range);
38+ assert_eq!(rec.resolve_ref_input, None);
39+ assert_eq!(rec.prefix, prefix("abcd").into());
40+ assert_eq!(rec.calls, 2);
41+
42+ let rec = parse("^r1");
43+ assert_eq!(rec.kind.unwrap(), spec::Kind::Range);
44+ assert_eq!(rec.resolve_ref_input.unwrap(), "r1");
45+ assert_eq!(rec.prefix, None);
46+ assert_eq!(rec.calls, 2);
47+
48+ let rec = parse("^hello-0-gabcd-dirty");
49+ assert_eq!(rec.kind.unwrap(), spec::Kind::Range);
50+ assert_eq!(rec.resolve_ref_input, None);
51+ assert_eq!(rec.prefix, prefix("abcd").into());
52+ assert_eq!(rec.calls, 2);
3553 }
3654
3755 #[test]
@@ -65,6 +83,13 @@ fn middle_dot_dot_dot_is_merge_base() { · 27 unmodified lines
6583 assert_eq!(rec.resolve_ref_input.unwrap(), "r1");
6684 assert_eq!(rec.prefix, prefix("abcd").into());
6785 assert_eq!(rec.calls, 3);
86+
87+ let rec = parse("abcd-dirty...smart-release-42-g1234-dirty");
88+ assert_eq!(rec.kind.unwrap(), spec::Kind::MergeBase);
89+ assert_eq!(rec.resolve_ref_input, None);
90+ assert_eq!(rec.prefix, prefix("abcd").into());
91+ assert_eq!(rec.prefix2, prefix("1234").into());
92+ assert_eq!(rec.calls, 3);
6893 }
6994
7095 #[test]
@@ -92,6 +117,13 @@ fn middle_dot_dot_is_range() { · 21 unmodified lines
92117 assert_eq!(rec.resolve_ref_input.unwrap(), "r1");
93118 assert_eq!(rec.prefix, prefix("abcd").into());
94119 assert_eq!(rec.calls, 3);
120+
121+ let rec = parse("abcd-dirty..v1.2-42-g1234");
122+ assert_eq!(rec.kind.unwrap(), spec::Kind::Range);
123+ assert_eq!(rec.resolve_ref_input, None);
124+ assert_eq!(rec.prefix, prefix("abcd").into());
125+ assert_eq!(rec.prefix2, prefix("1234").into());
126+ assert_eq!(rec.calls, 3);
95127 }
96128
97129 fn prefix(hex: &str) -> git_hash::Prefix {