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
32 assert_eq!(rec.resolve_ref_input.unwrap(), "HEAD");32 assert_eq!(rec.resolve_ref_input.unwrap(), "HEAD");
33 assert_eq!(rec.prefix, None);33 assert_eq!(rec.prefix, None);
34 assert_eq!(rec.calls, 2);34 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);
35}53}
36 54
37#[test]55#[test]
@@ -65,6 +83,13 @@ fn middle_dot_dot_dot_is_merge_base() { · 27 unmodified lines
65 assert_eq!(rec.resolve_ref_input.unwrap(), "r1");83 assert_eq!(rec.resolve_ref_input.unwrap(), "r1");
66 assert_eq!(rec.prefix, prefix("abcd").into());84 assert_eq!(rec.prefix, prefix("abcd").into());
67 assert_eq!(rec.calls, 3);85 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);
68}93}
69 94
70#[test]95#[test]
@@ -92,6 +117,13 @@ fn middle_dot_dot_is_range() { · 21 unmodified lines
92 assert_eq!(rec.resolve_ref_input.unwrap(), "r1");117 assert_eq!(rec.resolve_ref_input.unwrap(), "r1");
93 assert_eq!(rec.prefix, prefix("abcd").into());118 assert_eq!(rec.prefix, prefix("abcd").into());
94 assert_eq!(rec.calls, 3);119 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);
95}127}
96 128
97fn prefix(hex: &str) -> git_hash::Prefix {129fn prefix(hex: &str) -> git_hash::Prefix {