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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 }