1 /* 2 * TEST SUITE FOR MB/WC FUNCTIONS IN CLIBRARY 3 * 4 * FILE: dat_strxfrm.c 5 * 6 * STRXFRM: size_t strxfrm (char *s1, const char s2, size_t n); 7 */ 8 9 10 /* 11 * NOTE: 12 * 13 * Return value and errno value are checked only for 2nd string: 14 * org2[]; n1 and n2 don't mean bytes to be translated. 15 * It means a buffer size including a null character. 16 * Results of this test depens on results of strcoll(). 17 * If you got errors, check both test results. 18 * 19 * The buffer size should be enough to contain a string including a 20 * null char. Returns the number of bytes of the string (NOT 21 * including a null char). 22 */ 23 24 25 26 TST_STRXFRM tst_strxfrm_loc [] = { 27 { 28 { Tstrxfrm, TST_LOC_de }, 29 { 30 { /*inp*/ { "\xf6\xc4\xe4\xfc", "\xf6\xc4\xe4\xfc", 17, 17 }, /* #01 */ 31 /*exp*/ { 0,0,0, }, 32 }, 33 { /*inp*/ { "aA", "Aa", 10, 10 }, /* #02 */ 34 /*exp*/ { 0,0,0 , }, 35 }, 36 { /*inp*/ { "Aa", "aA", 10, 10 }, /* #03 */ 37 /*exp*/ { 0,0,0, }, 38 }, 39 { /*inp*/ { "abc", "", 13, 13 }, /* #04 */ 40 /*exp*/ { 0,0,0, }, 41 }, 42 { /*inp*/ { "a", "B", 7, 7 }, /* #05 */ 43 /*exp*/ { 0,0,0, }, 44 }, 45 { /*inp*/ { "B", "a", 7, 7 }, /* #06 */ 46 /*exp*/ { 0,0,0, }, 47 }, 48 { 49 /* hiragana == latin1 */ 50 /*inp*/ { "abc", "\244\241\244\242", 13, 9 }, /* #07 */ 51 /*exp*/ { 0,0,0, }, 52 }, 53 { .is_last = 1 } 54 } 55 }, 56 { 57 { Tstrxfrm, TST_LOC_enUS }, 58 { 59 { /*inp*/ { "abcd", "abcd", 17, 17 }, /* #01 */ 60 /*exp*/ { 0,0,0, }, 61 }, 62 { /*inp*/ { "aA", "Aa", 10, 10 }, /* #02 */ 63 /*exp*/ { 0,0,0 , }, 64 }, 65 { /*inp*/ { "Aa", "aA", 10, 10 }, /* #03 */ 66 /*exp*/ { 0,0,0, }, 67 }, 68 { /*inp*/ { "abc", "", 13, 13 }, /* #04 */ 69 /*exp*/ { 0,0,0, }, 70 }, 71 { /*inp*/ { "a", "B", 7, 7 }, /* #05 */ 72 /*exp*/ { 0,0,0, }, 73 }, 74 { /*inp*/ { "B", "a", 7, 7 }, /* #06 */ 75 /*exp*/ { 0,0,0, }, 76 }, 77 #ifdef NO_WAIVER 78 { 79 /* <WAIVER> */ 80 /*inp*/ { "abc", "\244\241\244\242", 13, 9 }, /* #07 */ 81 /*exp*/ { EINVAL,0,0, }, 82 }, 83 #endif 84 { .is_last = 1 } 85 } 86 }, 87 { 88 { Tstrxfrm, TST_LOC_eucJP }, /* ??? */ 89 { 90 { 91 /* #01 */ 92 /*inp*/ { "\244\242\244\241", "\244\241\244\242", 5, 5 }, 93 /*exp*/ { 0,0,0, }, 94 }, 95 { 96 /* #02 */ 97 /*inp*/ { "\244\241\244\242", "\244\242\244\241", 5, 5 }, 98 /*exp*/ { 0,0,0, }, 99 }, 100 { 101 /* #03 */ 102 /*inp*/ { "\244\242\216\261", "\216\261\244\242", 5, 5 }, 103 /*exp*/ { 0,0,0, }, 104 }, 105 #ifdef NO_WAIVER 106 { 107 /*inp*/ { "AAA", "\216\217", 5, 5 }, /* #04 */ /* <WAIVER> */ 108 /*exp*/ { EINVAL,0,0, }, 109 }, 110 #endif 111 { .is_last = 1 } 112 } 113 }, 114 { 115 { Tstrxfrm, TST_LOC_end } 116 } 117 }; 118