All these tests seem a bit overkill to end up with the conclusion that only the first manifest resource is used.
That's not the only conclusion.
1. If multiple manifest resources have the same ID but different languages, their precedence is resolved in a specific order (Language Netural, UI language, UI language with sublanguage netural, US English, *then* the first LCID). 2. The original wine-staging patch only recognizes manifest resource IDs in the range `MINIMUM_RESERVED_MANIFEST_RESOURCE_ID - MAXIMUM_RESERVED_MANIFEST_RESOURCE_ID` inclusive, whereas Windows accepts arbitrary non-zero resource IDs in the range `0x0001 - 0xffff` inclusive. The tests demonstrate that the original staging patch isn't sufficient. 3. Arbitrary non-zero LCIDs are also accepted. 4. Named (as opposed to numbered) resources are ignored.
All the tests together single out the only "obvious" way to choose the manifest resource. I don't think you can remove any one of them and still be able to describe Windows behavior.
I think you should make them much simpler because with this amount of code, what they are trying to uncover becomes quite obscure.
By making it simpler do you mean removing tests?
- In that case, which subset of the conclusions above would you like to be removed? - Otherwise, are you saying that the declarative approach (`manifest_res_spec` arrays) is unreadable compared to imperative / procedural one?