pike.git / src / testsuite.in

version» Context lines:

pike.git/src/testsuite.in:13109:   test_unicode("\777077", "\330\277\336\77", "\277\330\77\336")   test_unicode("\777077foo\77077\777077blä\777077",    "\330\277\336\77\0f\0o\0o\176\77\330\277\336\77\0b\0l\0ä\330\277\336\77",    "\277\330\77\336f\0o\0o\0\77\176\277\330\77\336b\0l\0ä\0\277\330\77\336")      test_eval_error(return string_to_unicode("\7077077"))   test_eval_error(return string_to_unicode("\xffff\x10000"))   test_eval_error(return unicode_to_string(" "))      // - string_to_utf8, utf8_to_string - test_eq(string_to_utf8("foo"), "foo") - test_eq(string_to_utf8("blä"), "bl\303\244") - test_eq(string_to_utf8("\77077"), "\347\270\277") - test_eq(string_to_utf8("\U0010ffff\U00100000\U00010000"), "\364\217\277\277\364\200\200\200\360\220\200\200") - test_eq(string_to_utf8("\U0010ffff\U00100000\U00010000", 2), "\355\257\277\355\277\277\355\257\200\355\260\200\355\240\200\355\260\200") - test_eq(string_to_utf8("\7077077", 1), "\367\207\270\277") - test_eq(string_to_utf8("\77077077", 1), "\370\277\207\270\277") - test_eq(string_to_utf8("\7077077077", 1), "\374\270\277\207\270\277") +     -  + // We run the same test for different multiples of the strings + // to make sure that the vectorization does not accidentally + // work or not work. + define(test_utf8_to_string, [[ +  test_eq(utf8_to_string($1, $3), $2) +  test_eq(utf8_to_string($1*2, $3), $2*2) +  test_eq(utf8_to_string($1*3, $3), $2*3) +  test_eq(utf8_to_string($1*4, $3), $2*4) +  test_eq(utf8_to_string($1*5, $3), $2*5) +  test_eq(utf8_to_string($1*6, $3), $2*6) +  test_eq(utf8_to_string($1*7, $3), $2*7) +  test_eq(utf8_to_string($1*8, $3), $2*8) +  test_eq(utf8_to_string($1*23, $3), $2*23) +  test_eq(utf8_to_string($1*24, $3), $2*24) +  test_eq(utf8_to_string($1*25, $3), $2*25) +  test_eq(utf8_to_string($1*63, $3), $2*63) +  test_eq(utf8_to_string($1*64, $3), $2*64) +  test_eq(utf8_to_string($1*65, $3), $2*65) +  +  test_eq(string_to_utf8($2, $3), $1) +  test_eq(string_to_utf8($2*2, $3), $1*2) +  test_eq(string_to_utf8($2*3, $3), $1*3) +  test_eq(string_to_utf8($2*4, $3), $1*4) +  test_eq(string_to_utf8($2*5, $3), $1*5) +  test_eq(string_to_utf8($2*6, $3), $1*6) +  test_eq(string_to_utf8($2*7, $3), $1*7) +  test_eq(string_to_utf8($2*8, $3), $1*8) +  test_eq(string_to_utf8($2*23, $3), $1*23) +  test_eq(string_to_utf8($2*24, $3), $1*24) +  test_eq(string_to_utf8($2*25, $3), $1*25) +  test_eq(string_to_utf8($2*63, $3), $1*63) +  test_eq(string_to_utf8($2*64, $3), $1*64) +  test_eq(string_to_utf8($2*65, $3), $1*65) + ]]) + define(test_string_to_utf8, [[ +  test_utf8_to_string($2, $1, $3) + ]]) + test_string_to_utf8("foo", "foo", 0) + test_string_to_utf8("blä", "bl\303\244", 0) + test_string_to_utf8("\77077", "\347\270\277", 0) + test_string_to_utf8("\U0010ffff\U00100000\U00010000", +  "\364\217\277\277\364\200\200\200\360\220\200\200", 0) + test_string_to_utf8("\U0010ffff\U00100000\U00010000", +  "\355\257\277\355\277\277\355\257\200\355\260\200\355\240\200\355\260\200", +  2) + test_string_to_utf8("\7077077", "\367\207\270\277", 1) + test_string_to_utf8("\77077077", "\370\277\207\270\277", 1) + test_string_to_utf8("\7077077077", "\374\270\277\207\270\277", 1) +    define(test_utf8_encdec, [[    test_eq(utf8_to_string(string_to_utf8($1, $2), $2), $1)    test_eq(utf8_to_string(string_to_utf8($1*13, $2), $2), $1*13)    test_eq(utf8_to_string(string_to_utf8($1*64, $2), $2), $1*64)   ]])   // Boundary tests for each encoding length   test_utf8_encdec("\u00000000", 0)   test_utf8_encdec("\u00000080", 0)   test_utf8_encdec("\u00000800", 0)   test_utf8_encdec("\u00010000", 0)
pike.git/src/testsuite.in:13142:   test_utf8_encdec("\u0000FFFF", 0)   test_utf8_encdec("\u001FFFFF", 0)   test_utf8_encdec("\u03FFFFFF", 1)   test_utf8_encdec("\u7FFFFFFF", 1)      // 077077077077 has 33 bits unsigned. The escape sequence parser used   // to silently truncate too long char values, but not anymore.   dnl test_eq(string_to_utf8("\77077077077", 1), "\376\203\270\277\207\270\277")   dnl test_eq(utf8_to_string("\376\203\270\277\207\270\277", 1), "\77077077077")   // The following uses the char that actually got tested. - test_eq(string_to_utf8("\37077077077", 1), "\376\203\270\277\207\270\277") - test_eq(utf8_to_string("\376\203\270\277\207\270\277", 1), "\37077077077") + test_string_to_utf8("\37077077077", "\376\203\270\277\207\270\277", 1) + test_utf8_to_string("\376\203\270\277\207\270\277", "\37077077077", 1)    - test_eq(utf8_to_string("\374\270\277\207\270\277", 1), "\7077077077") - test_eq(utf8_to_string("\370\277\207\270\277", 1), "\77077077") - test_eq(utf8_to_string("\367\207\270\277", 1), "\7077077") + test_utf8_to_string("\374\270\277\207\270\277", "\7077077077", 1) + test_utf8_to_string("\370\277\207\270\277", "\77077077", 1) + test_utf8_to_string("\367\207\270\277", "\7077077", 1)   test_eval_error(return utf8_to_string("\355\257\277\355\277\277\355\257\200\355\260\200\355\240\200\355\260\200")) - test_eq(utf8_to_string("\355\257\277\355\277\277\355\257\200\355\260\200\355\240\200\355\260\200", 2), "\U0010ffff\U00100000\U00010000") - test_eq(utf8_to_string("\364\217\277\277\364\200\200\200\360\220\200\200"), "\U0010ffff\U00100000\U00010000") - test_eq(utf8_to_string("\347\270\277"), "\77077") - test_eq(utf8_to_string("bl\303\244"), "blä") - test_eq(utf8_to_string("foo"), "foo") + test_utf8_to_string("\355\257\277\355\277\277\355\257\200\355\260\200\355\240\200\355\260\200", +  "\U0010ffff\U00100000\U00010000", 2) + test_utf8_to_string("\364\217\277\277\364\200\200\200\360\220\200\200", +  "\U0010ffff\U00100000\U00010000", 0) + test_utf8_to_string("\347\270\277", "\77077", 0) + test_utf8_to_string("bl\303\244", "blä", 0) + test_utf8_to_string("foo", "foo", 0)      test_eval_error(return string_to_utf8("\77077077077"))   test_eval_error(return utf8_to_string("\376\203\270\277\207\270\277"))   test_eval_error(return utf8_to_string("\277"));   test_eval_error(return utf8_to_string("\377"));   test_eval_error(return utf8_to_string("\376\203\270\277\207\270", 1));   test_eval_error(return utf8_to_string("\374\270\277\207\270"));   test_eval_error(return utf8_to_string("\370\277\207\270"));   test_eval_error(return utf8_to_string("\367\207\270"));   test_eval_error(return utf8_to_string("\347\270"));   test_eval_error(return utf8_to_string("\303"));   test_eval_error(return utf8_to_string("\376\203\270\277\207\270a"));   test_eval_error(return utf8_to_string("\374\270\277\207\270a"));   test_eval_error(return utf8_to_string("\370\277\207\270a"));   test_eval_error(return utf8_to_string("\367\207\270a"));   test_eval_error(return utf8_to_string("\347\270a"));   test_eval_error(return utf8_to_string("\303a"));      // Invalid ranges - test_eq(string_to_utf8 ("\ud7ff"), "\u00ed\u009f\u00bf") + test_string_to_utf8("\ud7ff", "\u00ed\u009f\u00bf", 0)   test_eval_error(return string_to_utf8 ("\ud800")) - test_eq(string_to_utf8 ("\ud800", 1), "\u00ed\u00a0\u0080") - test_eq(string_to_utf8 ("\udfff", 1), "\u00ed\u00bf\u00bf") + test_string_to_utf8("\ud800", "\u00ed\u00a0\u0080", 1) + test_string_to_utf8("\udfff", "\u00ed\u00bf\u00bf", 1)   test_eval_error(return string_to_utf8 ("\udfff")) - test_eq(string_to_utf8 ("\ue000"), "\u00ee\u0080\u0080") - test_eq(string_to_utf8 ("\U0010ffff"), "\u00f4\u008f\u00bf\u00bf") + test_string_to_utf8("\ue000", "\u00ee\u0080\u0080", 0) + test_string_to_utf8("\U0010ffff", "\u00f4\u008f\u00bf\u00bf", 0)   test_eval_error(return string_to_utf8 ("\U00110000")) - test_eq(string_to_utf8 ("\U00110000", 1), "\u00f4\u0090\u0080\u0080") + test_string_to_utf8("\U00110000", "\u00f4\u0090\u0080\u0080", 1)    - test_eq(utf8_to_string ("\u00ed\u009f\u00bf"), "\ud7ff") + test_utf8_to_string("\u00ed\u009f\u00bf", "\ud7ff", 0)   test_eval_error(return utf8_to_string ("\u00ed\u00a0\u0080")) - test_eq(utf8_to_string ("\u00ed\u00a0\u0080", 1), "\ud800") - test_eq(utf8_to_string ("\u00ed\u00bf\u00bf", 1), "\udfff") + test_utf8_to_string("\u00ed\u00a0\u0080", "\ud800", 1) + test_utf8_to_string("\u00ed\u00bf\u00bf", "\udfff", 1)   test_eval_error(return utf8_to_string ("\u00ed\u00bf\u00bf")) - test_eq(utf8_to_string ("\u00ee\u0080\u0080"), "\ue000") - test_eq(utf8_to_string ("\u00f4\u008f\u00bf\u00bf"), "\U0010ffff") + test_utf8_to_string("\u00ee\u0080\u0080", "\ue000", 1) + test_utf8_to_string("\u00f4\u008f\u00bf\u00bf", "\U0010ffff", 0)   test_eval_error(return utf8_to_string ("\u00f4\u0090\u0080\u0080")) - test_eq(utf8_to_string ("\u00f4\u0090\u0080\u0080", 1), "\U00110000") + test_utf8_to_string("\u00f4\u0090\u0080\u0080", "\U00110000", 1)   test_eval_error(return utf8_to_string ("\u00f8\u0088\u0080\u0080\u0080"))   test_eval_error(return utf8_to_string ("\u00fc\u0084\u0080\u0080\u0080\u0080"))   test_eval_error(return utf8_to_string ("\u00fe\u0082\u0080\u0080\u0080\u0080\u0080")) - test_eq(utf8_to_string ("\u00fe\u0083\u00bf\u00bf\u00bf\u00bf\u00bf", 1), "\Uffffffff") + test_utf8_to_string("\u00fe\u0083\u00bf\u00bf\u00bf\u00bf\u00bf", "\Uffffffff", 1)   test_eval_error(return utf8_to_string ("\u00fe\u0084\u0080\u0080\u0080\u0080\u0080", 1))   test_eval_error(return utf8_to_string ("\u00ff"))   test_eval_error(return utf8_to_string ("\u00ff", 1))      // Non-shortest forms   test_eval_error(return utf8_to_string ("\u00c0\u0080"))   test_eval_error(return utf8_to_string ("\u00c1\u00bf")) - test_eq(utf8_to_string ("\u00c2\u0080"), "\u0080") + test_utf8_to_string("\u00c2\u0080", "\u0080", 0)   test_eval_error(return utf8_to_string ("\u00e0\u0080\u0080"))   test_eval_error(return utf8_to_string ("\u00e0\u009f\u00bf")) - test_eq(utf8_to_string ("\u00e0\u00a0\u0080"), "\u0800")) + test_utf8_to_string("\u00e0\u00a0\u0080", "\u0800", 0)   test_eval_error(return utf8_to_string ("\u00f0\u0080\u0080\u0080"))   test_eval_error(return utf8_to_string ("\u00f0\u008f\u00bf\u00bf")) - test_eq(utf8_to_string ("\u00f0\u0090\u0080\u0080"), "\U00010000") + test_utf8_to_string("\u00f0\u0090\u0080\u0080", "\U00010000", 0)   test_eval_error(return utf8_to_string ("\u00f8\u0080\u0080\u0080\u0080", 1))   test_eval_error(return utf8_to_string ("\u00f8\u0087\u00bf\u00bf\u00bf", 1)) - test_eq(utf8_to_string ("\u00f8\u0088\u0080\u0080\u0080", 1), "\U00200000") + test_utf8_to_string("\u00f8\u0088\u0080\u0080\u0080", "\U00200000", 1)   test_eval_error(return utf8_to_string ("\u00fc\u0080\u0080\u0080\u0080\u0080", 1))   test_eval_error(return utf8_to_string ("\u00fc\u0083\u00bf\u00bf\u00bf\u00bf", 1)) - test_eq(utf8_to_string ("\u00fc\u0084\u0080\u0080\u0080\u0080", 1), "\U04000000") + test_utf8_to_string("\u00fc\u0084\u0080\u0080\u0080\u0080", "\U04000000", 1)   test_eval_error(return utf8_to_string ("\u00fe\u0080\u0080\u0080\u0080\u0080\u0080", 1))   test_eval_error(return utf8_to_string ("\u00fe\u0081\u00bf\u00bf\u00bf\u00bf\u00bf", 1)) - test_eq(utf8_to_string ("\u00fe\u0082\u0080\u0080\u0080\u0080\u0080", 1), "\U80000000") + test_utf8_to_string("\u00fe\u0082\u0080\u0080\u0080\u0080\u0080", "\U80000000", 1)      // validate_utf8   test_true(validate_utf8("foo"))   test_false(validate_utf8("blä"))   test_true(validate_utf8("bl\303\244"))   test_false(validate_utf8([string(8bit)](mixed)"\77077"))   test_true(validate_utf8("\347\270\277"))   test_false(validate_utf8([string(8bit)](mixed)"\7077077"))   test_false(validate_utf8("\367\207\270\277"))   test_true(validate_utf8("\367\207\270\277", 1))