Changeset 707:e387d5c6b6f5 in freeDiameter for tests/testostr.c
- Timestamp:
- Feb 9, 2011, 6:08:54 PM (13 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
tests/testostr.c
r706 r707 38 38 #define TEST_STR (os0_t)"This is my test string (with extra unused data)" 39 39 40 /* The following string contains UTF-8 encoded characters (Chinese characters) */ 41 #define TEST_IDN_UTF8 "freeDiameter.中国" 42 #define TEST_IDN_CONV "freeDiameter.xn--fiqs8s" 43 40 44 /* Main test routine */ 41 45 int main(int argc, char *argv[]) … … 67 71 CHECK( hash, fd_os_hash(buf + 1, CONSTSTRLEN(TEST_STR)) ); 68 72 } 73 74 /* Check the Diameter Identity functions */ 75 { 76 char * res; 77 size_t len; 78 79 /* A valid ASCII domain name */ 80 res = TEST_IDN_CONV; 81 CHECK( 0, fd_os_validate_DiameterIdentity(&res, &len, 1) ); 82 CHECK( 0, strcasecmp(res, TEST_IDN_CONV) ); /* the function does not change a valid DN */ 83 CHECK( 0, fd_os_validate_DiameterIdentity(&res, &len, 0) ); 84 CHECK( 0, strcasecmp(res, TEST_IDN_CONV) ); 85 CHECK( CONSTSTRLEN(TEST_IDN_CONV), len ); 86 free(res); 87 88 /* Now, an invalid string */ 89 res = TEST_IDN_UTF8; 90 91 #ifdef DIAMID_IDNA_IGNORE 92 93 /* The UTF-8 chars are considered valid */ 94 CHECK( 1, fd_os_is_valid_DiameterIdentity((os0_t)TEST_IDN_UTF8, CONSTSTRLEN(TEST_IDN_UTF8) ); 95 96 /* The string should be passed unmodified */ 97 CHECK( 0, fd_os_validate_DiameterIdentity(&res, &len, 1) ); 98 CHECK( 0, strcasecmp(res, TEST_IDN_UTF8) ); 99 CHECK( 0, fd_os_cmp(res, len, TEST_IDN_UTF8, CONSTSTRLEN(TEST_IDN_UTF8)) ); 100 CHECK( 0, fd_os_almostcasecmp(res, len, TEST_IDN_UTF8, CONSTSTRLEN(TEST_IDN_UTF8)) ); 101 CHECK( 0, fd_os_validate_DiameterIdentity(&res, &len, 0) ); 102 CHECK( 0, strcasecmp(res, TEST_IDN_UTF8) ); 103 CHECK( CONSTSTRLEN(TEST_IDN_UTF8), len ); 104 free(res); 105 106 #else /* DIAMID_IDNA_IGNORE */ 107 108 /* The UTF-8 chars are recognized as invalid DiameterIdentity */ 109 CHECK( 0, fd_os_is_valid_DiameterIdentity((os0_t)TEST_IDN_UTF8, CONSTSTRLEN(TEST_IDN_UTF8) )); 110 111 # ifdef DIAMID_IDNA_REJECT 112 113 /* The string must be rejected */ 114 CHECK( EINVAL, fd_os_validate_DiameterIdentity(&res, &len, 1) ); 115 116 # else /* DIAMID_IDNA_REJECT */ 117 118 /* The string should be transformed into TEST_IDN_CONV */ 119 CHECK( 0, fd_os_validate_DiameterIdentity(&res, &len, 1) ); 120 CHECK( 0, strcasecmp(res, TEST_IDN_CONV) ); 121 CHECK( CONSTSTRLEN(TEST_IDN_CONV), len ); 122 free(res); 123 124 # endif /* DIAMID_IDNA_REJECT */ 125 #endif /* DIAMID_IDNA_IGNORE */ 69 126 127 } 128 70 129 /* That's all for the tests yet */ 71 130 PASSTEST();
Note: See TracChangeset
for help on using the changeset viewer.