These seemed unobjectionable, thanks! r20819.
I'm surprised by a couple of these tests, but they make sense.
Non-successive characters and multiline in particular -- I knew you could split a name across multiple lines, just didn't realize you could do it mid-word.
I spent yesterday working on integrating OpenClover, which I submitted this morning. (There's another short story describing briefly how to invoke it, etc. I suppose I didn't say anything about how to read the resulting report, but in short, you can drill down into individual source files to see which lines are exercised by existing tests -- green = covered, red = uncovered. Now I'm wondering if OpenClover has a colorblind-friendly mode...)
Taking advantage of that, I see some untested behavior in parseString:
- unterminated plural constant (e.g. `$booleans[`)
- other escaped sequences (end-of-string, e.g. "\"", "\r", "\t", "\,", "\xABCD", "\uABCD", "\777") as well as malformed variants (invalid hex sequences, invalid octal)
- unterminated template substitutions
- comments
- nested brackets within a typed constant, e.g. $item[[glitch season reward name]])
(Just as some food for thought, to get you started down the rabbit hole that is coverage.)
Now, obviously I don't expect you to get Parser.java up to 100% absolute coverage, so use your judgment for which cases you're most worried about / which cases your parsing changes are most likely to have impacted.
(There's a notion of incremental code coverage as well, which is filtered down to the lines that you've added/modified. I'd like that to be no less than 80%, but preferably 90-100%. I don't see a great way of measuring that in OpenClover, though.)