@@ -10,62 +10,70 @@ const (
10
10
updatedManifest = "call remote#host#RegisterPlugin('P', '0', [\n \\ {'type': 'function', 'name': 'Bar', 'sync': 1, 'opts': {}},\n \\ ])\n "
11
11
)
12
12
13
- var replaceManifestTests = []struct {
14
- what , original , expected string
15
- }{
16
- {
17
- "Original at beginning of file" ,
18
- fmt .Sprintf ("%sline A\n line B\n " , originalManifest ),
19
- fmt .Sprintf ("%sline A\n line B\n " , updatedManifest ),
20
- },
21
- {
22
- "Original in middle of file" ,
23
- fmt .Sprintf ("line A\n %sline B\n " , originalManifest ),
24
- fmt .Sprintf ("line A\n %sline B\n " , updatedManifest ),
25
- },
26
- {
27
- "Original at end of file" ,
28
- fmt .Sprintf ("line A\n line B\n %s" , originalManifest ),
29
- fmt .Sprintf ("line A\n line B\n %s" , updatedManifest ),
30
- },
31
- {
32
- "Original at end of file, no trailing \\ n" ,
33
- fmt .Sprintf ("line A\n line B\n %s" , originalManifest [:len (originalManifest )- 1 ]),
34
- fmt .Sprintf ("line A\n line B\n %s" , updatedManifest ),
35
- },
36
- {
37
- "No manifest" ,
38
- "line A\n line B\n " ,
39
- fmt .Sprintf ("line A\n line B\n %s" , updatedManifest ),
40
- },
41
- {
42
- "Empty file" ,
43
- "" ,
44
- updatedManifest ,
45
- },
46
- {
47
- "No manifest, no trailing \\ n" ,
48
- "line A\n line B" ,
49
- fmt .Sprintf ("line A\n line B\n %s" , updatedManifest ),
50
- },
51
- {
52
- "Extra \\ ])` in file" , // ensure non-greedy match trailing ])
53
- fmt .Sprintf ("line A\n %sline B\n \\ ])\n line C\n " , originalManifest ),
54
- fmt .Sprintf ("line A\n %sline B\n \\ ])\n line C\n " , updatedManifest ),
55
- },
56
- }
57
-
58
13
func TestReplaceManifest (t * testing.T ) {
14
+ t .Parallel ()
15
+
16
+ var replaceManifestTests = []struct {
17
+ name string
18
+ original string
19
+ expected string
20
+ }{
21
+ {
22
+ name : "Original at beginning of file" ,
23
+ original : fmt .Sprintf ("%sline A\n line B\n " , originalManifest ),
24
+ expected : fmt .Sprintf ("%sline A\n line B\n " , updatedManifest ),
25
+ },
26
+ {
27
+ name : "Original in middle of file" ,
28
+ original : fmt .Sprintf ("line A\n %sline B\n " , originalManifest ),
29
+ expected : fmt .Sprintf ("line A\n %sline B\n " , updatedManifest ),
30
+ },
31
+ {
32
+ name : "Original at end of file" ,
33
+ original : fmt .Sprintf ("line A\n line B\n %s" , originalManifest ),
34
+ expected : fmt .Sprintf ("line A\n line B\n %s" , updatedManifest ),
35
+ },
36
+ {
37
+ name : "Original at end of file, no trailing \\ n" ,
38
+ original : fmt .Sprintf ("line A\n line B\n %s" , originalManifest [:len (originalManifest )- 1 ]),
39
+ expected : fmt .Sprintf ("line A\n line B\n %s" , updatedManifest ),
40
+ },
41
+ {
42
+ name : "No manifest" ,
43
+ original : "line A\n line B\n " ,
44
+ expected : fmt .Sprintf ("line A\n line B\n %s" , updatedManifest ),
45
+ },
46
+ {
47
+ name : "Empty file" ,
48
+ original : "" ,
49
+ expected : updatedManifest ,
50
+ },
51
+ {
52
+ name : "No manifest, no trailing \\ n" ,
53
+ original : "line A\n line B" ,
54
+ expected : fmt .Sprintf ("line A\n line B\n %s" , updatedManifest ),
55
+ },
56
+ {
57
+ name : "Extra \\ ])` in file" , // ensure non-greedy match trailing ])
58
+ original : fmt .Sprintf ("line A\n %sline B\n \\ ])\n line C\n " , originalManifest ),
59
+ expected : fmt .Sprintf ("line A\n %sline B\n \\ ])\n line C\n " , updatedManifest ),
60
+ },
61
+ }
59
62
for _ , tt := range replaceManifestTests {
60
- actual := string (replaceManifest ("P" , []byte (tt .original ), []byte (updatedManifest )))
61
- if actual != tt .expected {
62
- t .Errorf ("%s\n got = %q\n want = %q" , tt .what , actual , tt .expected )
63
- continue
64
- }
65
- // Replace should be idempotent.
66
- actual = string (replaceManifest ("P" , []byte (tt .expected ), []byte (updatedManifest )))
67
- if actual != tt .expected {
68
- t .Errorf ("%s (no change expected)\n got = %q\n want = %q" , tt .what , actual , tt .expected )
69
- }
63
+ tt := tt
64
+ t .Run (tt .name , func (t * testing.T ) {
65
+ t .Parallel ()
66
+
67
+ actual := string (replaceManifest ("P" , []byte (tt .original ), []byte (updatedManifest )))
68
+ if actual != tt .expected {
69
+ t .Fatalf ("%s\n got = %q\n want = %q" , tt .name , actual , tt .expected )
70
+ }
71
+
72
+ // Replace should be idempotent.
73
+ actual = string (replaceManifest ("P" , []byte (tt .expected ), []byte (updatedManifest )))
74
+ if actual != tt .expected {
75
+ t .Fatalf ("%s (no change expected)\n got = %q\n want = %q" , tt .name , actual , tt .expected )
76
+ }
77
+ })
70
78
}
71
79
}
0 commit comments