Mercurial > public > mercurial-scm > hg
annotate rust/hg-core/src/copy_tracing/tests.rs @ 46658:fa21633af201
copies-rust: add a macro-based unit-testing framework
`compare_values`, `merge_copies_dict`, and `CombineChangesetCopies`
are APIs whose signatures involve non-trivial types.
Calling them directly in unit tests would involve a lot of verbose
setup code that obscures the meaningful parts of a given test case.
This adds a macro-based test-harness with pseudo-syntax to tersely
create arguments and expected return values in the correct types.
For now there is only one (not particularly meaningful) test case
per tested function, just to exercize the macros.
Differential Revision: https://phab.mercurial-scm.org/D10071
author | Simon Sapin <simon.sapin@octobus.net> |
---|---|
date | Mon, 11 Jan 2021 13:33:00 +0100 |
parents | |
children | 750409505286 |
rev | line source |
---|---|
46658
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 } |