annotate contrib/merge-lists/tests/test-merge-lists.rs @ 49011:b999edb15f8c

merge-lists: make it possible to specify pattern to match The `merge-lists` tool doesn't know anything about Python other than its regex that attempts to match import lines. Let's make it possible to pass in a custom regex so it's easy to use the tool for e.g. C/C++ `#include` lines or Rust `use` lines (given the limited). Differential Revision: https://phab.mercurial-scm.org/D12392
author Martin von Zweigbergk <martinvonz@google.com>
date Fri, 18 Mar 2022 12:23:47 -0700
parents 681b25ea579e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
49010
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
1 use similar::DiffableStr;
49011
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
2 use std::ffi::OsStr;
49010
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
3 use tempdir::TempDir;
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
4
49011
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
5 fn run_test(arg: &str, input: &str) -> String {
49010
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
6 let mut cmd = assert_cmd::Command::cargo_bin("merge-lists").unwrap();
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
7 let temp_dir = TempDir::new("test").unwrap();
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
8 let base_path = temp_dir.path().join("base");
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
9 let local_path = temp_dir.path().join("local");
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
10 let other_path = temp_dir.path().join("other");
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
11
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
12 let rest = input.strip_prefix("\nbase:\n").unwrap();
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
13 let mut split = rest.split("\nlocal:\n");
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
14 std::fs::write(&base_path, split.next().unwrap()).unwrap();
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
15 let rest = split.next().unwrap();
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
16 let mut split = rest.split("\nother:\n");
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
17 std::fs::write(&local_path, split.next().unwrap()).unwrap();
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
18 std::fs::write(&other_path, split.next().unwrap()).unwrap();
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
19 cmd.args(&[
49011
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
20 OsStr::new(arg),
49010
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
21 local_path.as_os_str(),
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
22 base_path.as_os_str(),
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
23 other_path.as_os_str(),
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
24 ])
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
25 .assert()
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
26 .success();
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
27
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
28 let new_base_bytes = std::fs::read(&base_path).unwrap();
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
29 let new_local_bytes = std::fs::read(&local_path).unwrap();
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
30 let new_other_bytes = std::fs::read(&other_path).unwrap();
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
31 // No newline before "base:" because of https://github.com/mitsuhiko/insta/issues/117
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
32 format!(
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
33 "base:\n{}\nlocal:\n{}\nother:\n{}",
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
34 new_base_bytes.as_str().unwrap(),
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
35 new_local_bytes.as_str().unwrap(),
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
36 new_other_bytes.as_str().unwrap()
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
37 )
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
38 }
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
39
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
40 #[test]
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
41 fn test_merge_lists_basic() {
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
42 let output = run_test(
49011
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
43 "--python-imports",
49010
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
44 r"
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
45 base:
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
46 import lib1
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
47 import lib2
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
48
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
49 local:
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
50 import lib2
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
51 import lib3
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
52
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
53 other:
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
54 import lib3
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
55 import lib4
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
56 ",
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
57 );
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
58 insta::assert_snapshot!(output, @r###"
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
59 base:
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
60 import lib3
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
61 import lib4
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
62
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
63 local:
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
64 import lib3
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
65 import lib4
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
66
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
67 other:
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
68 import lib3
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
69 import lib4
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
70 "###);
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
71 }
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
72
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
73 #[test]
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
74 fn test_merge_lists_from() {
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
75 // Test some "from x import y" statements and some non-import conflicts
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
76 // (unresolvable)
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
77 let output = run_test(
49011
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
78 "--python-imports",
49010
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
79 r"
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
80 base:
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
81 from . import x
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
82
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
83 1+1
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
84
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
85 local:
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
86 from . import x
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
87 from a import b
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
88
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
89 2+2
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
90
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
91 other:
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
92 from a import c
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
93
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
94 3+3
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
95 ",
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
96 );
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
97 insta::assert_snapshot!(output, @r###"
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
98 base:
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
99 from a import b
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
100 from a import c
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
101
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
102 1+1
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
103
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
104 local:
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
105 from a import b
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
106 from a import c
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
107
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
108 2+2
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
109
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
110 other:
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
111 from a import b
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
112 from a import c
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
113
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
114 3+3
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
115 "###);
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
116 }
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
117
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
118 #[test]
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
119 fn test_merge_lists_not_sorted() {
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
120 // Test that nothing is done if the elements in the conflicting hunks are
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
121 // not sorted
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
122 let output = run_test(
49011
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
123 "--python-imports",
49010
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
124 r"
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
125 base:
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
126 import x
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
127
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
128 1+1
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
129
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
130 local:
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
131 import a
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
132 import x
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
133
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
134 2+2
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
135
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
136 other:
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
137 import z
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
138 import y
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
139
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
140 3+3
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
141 ",
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
142 );
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
143 insta::assert_snapshot!(output, @r###"
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
144 base:
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
145 import x
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
146
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
147 1+1
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
148
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
149 local:
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
150 import a
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
151 import x
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
152
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
153 2+2
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
154
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
155 other:
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
156 import z
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
157 import y
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
158
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
159 3+3
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
160 "###);
681b25ea579e contrib: add a partial-merge tool for sorted lists (such as Python imports)
Martin von Zweigbergk <martinvonz@google.com>
parents:
diff changeset
161 }
49011
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
162
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
163 #[test]
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
164 fn test_custom_regex() {
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
165 // Test merging of all lines (by matching anything)
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
166 let output = run_test(
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
167 "--pattern=.*",
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
168 r"
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
169 base:
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
170 aardvark
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
171 baboon
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
172 camel
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
173
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
174 local:
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
175 aardvark
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
176 camel
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
177 eagle
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
178
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
179 other:
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
180 aardvark
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
181 camel
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
182 deer
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
183 ",
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
184 );
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
185 insta::assert_snapshot!(output, @r###"
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
186 base:
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
187 aardvark
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
188 camel
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
189 deer
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
190 eagle
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
191
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
192 local:
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
193 aardvark
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
194 camel
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
195 deer
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
196 eagle
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
197
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
198 other:
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
199 aardvark
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
200 camel
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
201 deer
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
202 eagle
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
203 "###);
b999edb15f8c merge-lists: make it possible to specify pattern to match
Martin von Zweigbergk <martinvonz@google.com>
parents: 49010
diff changeset
204 }