@@ -78,44 +78,92 @@ func TestSearchIndex(t *testing.T) {
78
78
t .Errorf ("moref mismatch %s != %s" , ref , vm .Reference ())
79
79
}
80
80
81
- ref , err = si .FindByUuid (ctx , dc , vm .Config .Uuid , true , types . NewBool ( false ) )
81
+ refs , err : = si .FindAllByUuid (ctx , dc , vm .Config .Uuid , true , nil )
82
82
if err != nil {
83
83
t .Fatal (err )
84
84
}
85
+ if len (refs ) != 1 {
86
+ t .Errorf ("len(refs) %d != 1" , len (refs ))
87
+ }
88
+ if refs [0 ].Reference () != vm .Reference () {
89
+ t .Errorf ("moref mismatch %s != %s" , refs [0 ], vm .Reference ())
90
+ }
85
91
92
+ ref , err = si .FindByUuid (ctx , dc , vm .Config .Uuid , true , types .NewBool (false ))
93
+ if err != nil {
94
+ t .Fatal (err )
95
+ }
86
96
if ref .Reference () != vm .Reference () {
87
97
t .Errorf ("moref mismatch %s != %s" , ref , vm .Reference ())
88
98
}
89
99
90
- ref , err = si .FindByUuid (ctx , dc , vm .Config .InstanceUuid , true , types .NewBool (true ))
100
+ refs , err = si .FindAllByUuid (ctx , dc , vm .Config .Uuid , true , types .NewBool (false ))
91
101
if err != nil {
92
102
t .Fatal (err )
93
103
}
104
+ if len (refs ) != 1 {
105
+ t .Errorf ("len(refs) %d != 1" , len (refs ))
106
+ }
107
+ if refs [0 ].Reference () != vm .Reference () {
108
+ t .Errorf ("moref mismatch %s != %s" , refs [0 ], vm .Reference ())
109
+ }
94
110
111
+ ref , err = si .FindByUuid (ctx , dc , vm .Config .InstanceUuid , true , types .NewBool (true ))
112
+ if err != nil {
113
+ t .Fatal (err )
114
+ }
95
115
if ref .Reference () != vm .Reference () {
96
116
t .Errorf ("moref mismatch %s != %s" , ref , vm .Reference ())
97
117
}
98
118
99
- ref , err = si .FindByUuid (ctx , dc , vm .Config .Uuid , false , nil )
119
+ refs , err = si .FindAllByUuid (ctx , dc , vm .Config .InstanceUuid , true , types . NewBool ( true ) )
100
120
if err != nil {
101
121
t .Fatal (err )
102
122
}
123
+ if len (refs ) != 1 {
124
+ t .Errorf ("len(refs) %d != 1" , len (refs ))
125
+ }
126
+ if refs [0 ].Reference () != vm .Reference () {
127
+ t .Errorf ("moref mismatch %s != %s" , refs [0 ], vm .Reference ())
128
+ }
103
129
130
+ ref , err = si .FindByUuid (ctx , dc , vm .Config .Uuid , false , nil )
131
+ if err != nil {
132
+ t .Fatal (err )
133
+ }
104
134
if ref != nil {
105
135
t .Error ("expected nil" )
106
136
}
107
137
138
+ refs , err = si .FindAllByUuid (ctx , dc , vm .Config .Uuid , false , nil )
139
+ if err != nil {
140
+ t .Fatal (err )
141
+ }
142
+ if refs != nil {
143
+ t .Error ("refs != nil" )
144
+ }
145
+
108
146
host := model .Map ().Any ("HostSystem" ).(* HostSystem )
109
147
110
148
ref , err = si .FindByUuid (ctx , dc , host .Summary .Hardware .Uuid , false , nil )
111
149
if err != nil {
112
150
t .Fatal (err )
113
151
}
114
-
115
152
if ref .Reference () != host .Reference () {
116
153
t .Errorf ("moref mismatch %s != %s" , ref , host .Reference ())
117
154
}
118
155
156
+ refs , err = si .FindAllByUuid (ctx , dc , host .Summary .Hardware .Uuid , false , nil )
157
+ if err != nil {
158
+ t .Fatal (err )
159
+ }
160
+ if len (refs ) != 1 {
161
+ t .Errorf ("len(refs) %d != 1" , len (refs ))
162
+ }
163
+ if refs [0 ].Reference () != host .Reference () {
164
+ t .Errorf ("moref mismatch %s != %s" , refs [0 ], host .Reference ())
165
+ }
166
+
119
167
rootFolder , err := finder .Folder (ctx , "/" )
120
168
if err != nil {
121
169
t .Fatal (err )
@@ -129,6 +177,41 @@ func TestSearchIndex(t *testing.T) {
129
177
if ref .Reference () != rootFolder .Reference () {
130
178
t .Errorf ("moref mismatch %s != %s" , ref , rootFolder .Reference ())
131
179
}
180
+
181
+ {
182
+ // Duplicate UUIDs to test multiple results from FindAllByUuid().
183
+
184
+ if len (vms ) == 1 {
185
+ t .Errorf ("len(vms) %d == 1" , len (vms ))
186
+ }
187
+
188
+ task , err := vms [1 ].Reconfigure (ctx , types.VirtualMachineConfigSpec {
189
+ InstanceUuid : vm .Config .InstanceUuid ,
190
+ Uuid : vm .Config .Uuid ,
191
+ })
192
+ if err != nil {
193
+ t .Fatal (err )
194
+ }
195
+ if err := task .Wait (ctx ); err != nil {
196
+ t .Fatal (err )
197
+ }
198
+
199
+ refs , err = si .FindAllByUuid (ctx , dc , vm .Config .InstanceUuid , true , types .NewBool (true ))
200
+ if err != nil {
201
+ t .Fatal (err )
202
+ }
203
+ if len (refs ) != 2 {
204
+ t .Errorf ("len(refs) %d != 2" , len (refs ))
205
+ }
206
+
207
+ refs , err = si .FindAllByUuid (ctx , dc , vm .Config .Uuid , true , nil )
208
+ if err != nil {
209
+ t .Fatal (err )
210
+ }
211
+ if len (refs ) != 2 {
212
+ t .Errorf ("len(refs) %d != 2" , len (refs ))
213
+ }
214
+ }
132
215
}
133
216
}
134
217
0 commit comments