Added a regression test to detect a sequence of multiple trail surrogate code units

git-svn-id: http://svn.code.sf.net/p/utfcpp/code@99 a809a056-fc17-0410-9590-b4f493f8b08e

Conflicts:
	v2_0/test_drivers/regression_tests/reg_tests_driver.cpp
This commit is contained in:
ntrifunovic 2009-09-26 01:13:26 +00:00 committed by King_DuckZ
parent 6adb83ba84
commit 94bfe8d2d3
2 changed files with 31 additions and 1 deletions

View file

@ -0,0 +1,24 @@
#include "../../../source/utf8.h"
using namespace utf8;
// [ 2852872 ] invalid utf16 strings were parsed without any error
void id_2852872()
{
const unsigned short two_trail_surrogates[] = {0xdd00, 0xdd01, 0};
vector<char> utf8_result;
try
{
utf8::utf16to8(two_trail_surrogates, two_trail_surrogates+2, back_inserter(utf8_result));
// should throw in the previous line and never get here
check(false);
}
catch(utf8::invalid_utf16&)
{
// this is what we expect
}
catch(...)
{
// an unexpected exception happened
check(false);
}
}

View file

@ -1,4 +1,5 @@
#include <iostream>
#include <vector>
using namespace std;
inline void check_impl (bool condition, const char* file, int line)
@ -18,7 +19,8 @@ inline void check_impl (bool condition, const char* file, int line)
// Release 1.0 Beta 3
#include "r1_0Beta3/basic_functionality.h"
// Release 2.2.2
#include "r2_2_2/basic_functionality.h"
int main()
{
@ -37,4 +39,8 @@ int main()
// Release 1.0 Beta 3
//r1_0Beta3/basic_functionality.h
id_1538338();
// Release 2.2.2
//r2_2_2/basic_functionality.h
id_2852872();
}