From 59fb926070302e34f900babeae735db4bcf1f32b Mon Sep 17 00:00:00 2001 From: ntrifunovic Date: Tue, 25 Jul 2006 13:05:32 +0000 Subject: [PATCH] Added test case for [ 1528369 ] utf8::find_invalid does not return the start of a seqence git-svn-id: http://svn.code.sf.net/p/utfcpp/code@19 a809a056-fc17-0410-9590-b4f493f8b08e --- .../regression_tests/r1_0Beta1/invalidutf8.h | 23 +++++++++++++++++++ .../regression_tests/reg_tests_driver.cpp | 1 + 2 files changed, 24 insertions(+) diff --git a/test_drivers/regression_tests/r1_0Beta1/invalidutf8.h b/test_drivers/regression_tests/r1_0Beta1/invalidutf8.h index a37025f..f284a9c 100644 --- a/test_drivers/regression_tests/r1_0Beta1/invalidutf8.h +++ b/test_drivers/regression_tests/r1_0Beta1/invalidutf8.h @@ -71,3 +71,26 @@ check (!is_valid(u2f_3bytes, u2f_3bytes + 3)); unsigned char u2f_4bytes[] = {0xf0, 0x80, 0x80, 0xaf}; check (!is_valid(u2f_4bytes, u2f_4bytes + 4)); } + +// [ 1528369 ] utf8::find_invalid does not return the start of a seqence +void id_1528369 () +{ +// incomplete utf sequences +unsigned char utf_incomplete[] = {0xe6, 0x97, 0x0}; +unsigned char* invalid = find_invalid(utf_incomplete, utf_incomplete + 3); +check (invalid == utf_incomplete); + +unsigned char utf_incomplete_two_seqs[] = {0xE6, 0x97, 0xA5, 0xd1, 0x0}; +invalid = find_invalid(utf_incomplete_two_seqs, utf_incomplete_two_seqs + 5); +check (invalid == utf_incomplete_two_seqs + 3); + +// invalid code point +unsigned char udbff[] = {0xed, 0xaf, 0xbf}; +invalid = find_invalid(udbff, udbff + 3); +check (invalid == udbff); + +// overlong sequence +unsigned char u2f_3bytes[] = {0xe0, 0x80, 0xaf}; +invalid = find_invalid(u2f_3bytes, u2f_3bytes + 3); +check (invalid == u2f_3bytes); +} diff --git a/test_drivers/regression_tests/reg_tests_driver.cpp b/test_drivers/regression_tests/reg_tests_driver.cpp index 4493234..f4d0f75 100644 --- a/test_drivers/regression_tests/reg_tests_driver.cpp +++ b/test_drivers/regression_tests/reg_tests_driver.cpp @@ -17,4 +17,5 @@ int main() //r1_0Beta1/invalidutf8.h id_1524459(); id_1525236(); + id_1528369(); }