- [constraint violation: "m4_esyscmd([printf "\300"])" is not a valid UTF-8 string: invalid UTF-8 sequence 0xc0
-constraint violation: "m4_esyscmd([printf "\355\240\200"])" is not a valid UTF-8 string: invalid UTF-8 sequence 0xed 0xa0],
- [], [], [xfail])
+ [constraint violation: not a valid UTF-8 string: invalid UTF-8 sequence 0xc0
+constraint violation: not a valid UTF-8 string: invalid UTF-8 sequence 0xed 0xa0])
+
+dnl Python won't let invalid UTF-8 (its idea of invalid UTF-8, anyway) into it
+dnl at all, so this test never gets as far as a constraint violation. It's
+dnl just a JSON parse error.
+dnl
+dnl <C0> is not allowed anywhere in a UTF-8 string.
+dnl (<ED A0 80> is not allowed in UTF-8 but Python doesn't care.)
+dnl <ED 80 7F> is not allowed in UTF-8.
+OVSDB_CHECK_POSITIVE_PY([no invalid UTF-8 sequences in strings - Python],
+ [parse-atoms '[["string"]]' \
+ '@<:@"m4_esyscmd([printf "\300"])"@:>@' \
+ '@<:@"m4_esyscmd([printf "\355\200\177"])"@:>@' \
+],
+ ["not a valid UTF-8 string: invalid UTF-8 sequence 0xc0"
+"not a valid UTF-8 string: invalid UTF-8 sequence 0xed 0x80"])