Mercurial > public > mercurial-scm > hg-stable
annotate rust/hg-core/src/copy_tracing/tests.rs @ 47385:f6bb181c75f8
rust: Parse "subinclude"d files along the way, not later
When parsing a `.hgignore` file and encountering an `include:` line,
the included file is parsed recursively right then in a depth-first fashion.
With `subinclude:` however included files were parsed (recursively) much later.
This changes it to be expanded during parsing, like `.hgignore`.
The motivation for this is an upcoming changeset that needs to detect changes
in which files are ignored or not. The plan is to hash all ignore files while
they are being read, and store that hash in the dirstate (in v2 format).
In order to allow a potential alternative implementations to read that format,
the algorithm to compute that hash must be documented. Having a well-defined
depth-first ordering for the tree of (sub-)included files makes that easier.
Differential Revision: https://phab.mercurial-scm.org/D10834
author | Simon Sapin <simon.sapin@octobus.net> |
---|---|
date | Wed, 02 Jun 2021 18:03:43 +0200 |
parents | fa21633af201 |
children | 750409505286 |
rev | line source |
---|---|
46697
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
1 use super::*; |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
2 |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
3 /// Unit tests for: |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
4 /// |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
5 /// ```ignore |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
6 /// fn compare_value( |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
7 /// current_merge: Revision, |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
8 /// merge_case_for_dest: impl Fn() -> MergeCase, |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
9 /// src_minor: &CopySource, |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
10 /// src_major: &CopySource, |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
11 /// ) -> (MergePick, /* overwrite: */ bool) |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
12 /// ``` |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
13 #[test] |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
14 fn test_compare_value() { |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
15 // The `compare_value!` macro calls the `compare_value` function with |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
16 // arguments given in pseudo-syntax: |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
17 // |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
18 // * For `merge_case_for_dest` it takes a plain `MergeCase` value instead |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
19 // of a closure. |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
20 // * `CopySource` values are represented as `(rev, path, overwritten)` |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
21 // tuples of type `(Revision, Option<PathToken>, OrdSet<Revision>)`. |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
22 // * `PathToken` is an integer not read by `compare_value`. It only checks |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
23 // for `Some(_)` indicating a file copy v.s. `None` for a file deletion. |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
24 // * `OrdSet<Revision>` is represented as a Python-like set literal. |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
25 |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
26 use MergeCase::*; |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
27 use MergePick::*; |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
28 |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
29 assert_eq!( |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
30 compare_value!(1, Normal, (1, None, { 1 }), (1, None, { 1 })), |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
31 (Any, false) |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
32 ); |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
33 } |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
34 |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
35 /// Unit tests for: |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
36 /// |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
37 /// ```ignore |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
38 /// fn merge_copies_dict( |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
39 /// path_map: &TwoWayPathMap, // Not visible in test cases |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
40 /// current_merge: Revision, |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
41 /// minor: InternalPathCopies, |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
42 /// major: InternalPathCopies, |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
43 /// get_merge_case: impl Fn(&HgPath) -> MergeCase + Copy, |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
44 /// ) -> InternalPathCopies |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
45 /// ``` |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
46 #[test] |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
47 fn test_merge_copies_dict() { |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
48 // The `merge_copies_dict!` macro calls the `merge_copies_dict` function |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
49 // with arguments given in pseudo-syntax: |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
50 // |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
51 // * `TwoWayPathMap` and path tokenization are implicitly taken care of. |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
52 // All paths are given as string literals. |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
53 // * Key-value maps are represented with `{key1 => value1, key2 => value2}` |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
54 // pseudo-syntax. |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
55 // * `InternalPathCopies` is a map of copy destination path keys to |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
56 // `CopySource` values. |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
57 // - `CopySource` is represented as a `(rev, source_path, overwritten)` |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
58 // tuple of type `(Revision, Option<Path>, OrdSet<Revision>)`. |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
59 // - Unlike in `test_compare_value`, source paths are string literals. |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
60 // - `OrdSet<Revision>` is again represented as a Python-like set |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
61 // literal. |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
62 // * `get_merge_case` is represented as a map of copy destination path to |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
63 // `MergeCase`. The default for paths not in the map is |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
64 // `MergeCase::Normal`. |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
65 // |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
66 // `internal_path_copies!` creates an `InternalPathCopies` value with the |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
67 // same pseudo-syntax as in `merge_copies_dict!`. |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
68 |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
69 use MergeCase::*; |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
70 |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
71 assert_eq!( |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
72 merge_copies_dict!( |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
73 1, |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
74 {"foo" => (1, None, {})}, |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
75 {}, |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
76 {"foo" => Merged} |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
77 ), |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
78 internal_path_copies!("foo" => (1, None, {})) |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
79 ); |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
80 } |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
81 |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
82 /// Unit tests for: |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
83 /// |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
84 /// ```ignore |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
85 /// impl CombineChangesetCopies { |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
86 /// fn new(children_count: HashMap<Revision, usize>) -> Self |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
87 /// |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
88 /// // Called repeatedly: |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
89 /// fn add_revision_inner<'a>( |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
90 /// &mut self, |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
91 /// rev: Revision, |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
92 /// p1: Revision, |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
93 /// p2: Revision, |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
94 /// copy_actions: impl Iterator<Item = Action<'a>>, |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
95 /// get_merge_case: impl Fn(&HgPath) -> MergeCase + Copy, |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
96 /// ) |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
97 /// |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
98 /// fn finish(mut self, target_rev: Revision) -> PathCopies |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
99 /// } |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
100 /// ``` |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
101 #[test] |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
102 fn test_combine_changeset_copies() { |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
103 // `combine_changeset_copies!` creates a `CombineChangesetCopies` with |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
104 // `new`, then calls `add_revision_inner` repeatedly, then calls `finish` |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
105 // for its return value. |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
106 // |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
107 // All paths given as string literals. |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
108 // |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
109 // * Key-value maps are represented with `{key1 => value1, key2 => value2}` |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
110 // pseudo-syntax. |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
111 // * `children_count` is a map of revision numbers to count of children in |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
112 // the DAG. It includes all revisions that should be considered by the |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
113 // algorithm. |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
114 // * Calls to `add_revision_inner` are represented as an array of anonymous |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
115 // structs with named fields, one pseudo-struct per call. |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
116 // |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
117 // `path_copies!` creates a `PathCopies` value, a map of copy destination |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
118 // keys to copy source values. Note: the arrows for map literal syntax |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
119 // point **backwards** compared to the logical direction of copy! |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
120 |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
121 use crate::NULL_REVISION as NULL; |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
122 use Action::*; |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
123 use MergeCase::*; |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
124 |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
125 assert_eq!( |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
126 combine_changeset_copies!( |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
127 { 1 => 1, 2 => 1 }, |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
128 [ |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
129 { rev: 1, p1: NULL, p2: NULL, actions: [], merge_cases: {}, }, |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
130 { rev: 2, p1: NULL, p2: NULL, actions: [], merge_cases: {}, }, |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
131 { |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
132 rev: 3, p1: 1, p2: 2, |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
133 actions: [CopiedFromP1("destination.txt", "source.txt")], |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
134 merge_cases: {"destination.txt" => Merged}, |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
135 }, |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
136 ], |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
137 3, |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
138 ), |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
139 path_copies!("destination.txt" => "source.txt") |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
140 ); |
fa21633af201
copies-rust: add a macro-based unit-testing framework
Simon Sapin <simon.sapin@octobus.net>
parents:
diff
changeset
|
141 } |