These annotation tests are good to start with, but we could use more. Here are some that occur to me:
* Can you use braced initializers? They work the same way as the rest of HLSL, right? [E.g. braces aren't validated; unwritten components are initialized to zero; variable boundaries need not match.] Cf. initializer-nested.shader_test and initializer-flatten.shader_test; of course we don't need to copy every test but one or two should be enough to answer this question in the affirmative.
* Can you leave variables uninitialized? If so, can you put a state block in there?
* Can you declare a type *within* the annotation, via a typedef or struct declaration?
* If not, can you still declare a struct and a variable at the same time? (I.e. "struct apple { ...} a;")
* Can you give variables values that require constant folding?
* Can you give variables values that require copy-prop? (E.g. assigning to a previously declared static const variable).
* Can you give variables modifiers? Both type qualifiers like "row_major", and storage modifiers like "static", are interesting to test here.
* Can you use the comma to separate multiple variable declarations? Cf. also initializer-multi.shader_test.
* Can you declare implicitly sized arrays?
I also doubt it's worth duplicating the annotation tests for every effect model if they seem to behave identically. On the other hand, we might want to put them into a dedicated test file.