1 /*** 2 This file is part of avahi. 3 4 avahi is free software; you can redistribute it and/or modify it 5 under the terms of the GNU Lesser General Public License as 6 published by the Free Software Foundation; either version 2.1 of the 7 License, or (at your option) any later version. 8 9 avahi is distributed in the hope that it will be useful, but WITHOUT 10 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 11 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General 12 Public License for more details. 13 14 You should have received a copy of the GNU Lesser General Public 15 License along with avahi; if not, write to the Free Software 16 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 17 USA. 18 ***/ 19 20 #ifdef HAVE_CONFIG_H 21 #include <config.h> 22 #endif 23 24 #include <stdio.h> 25 26 #include "alternative.h" 27 #include "avahi-malloc.h" 28 #include "domain.h" 29 30 int main(AVAHI_GCC_UNUSED int argc, AVAHI_GCC_UNUSED char *argv[]) { 31 const char* const test_strings[] = { 32 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 33 "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 34 "gurke", 35 "-", 36 " #", 37 "1", 38 "#0", 39 " #0", 40 " #1", 41 "#-1", 42 " #-1", 43 "-0", 44 "--0", 45 "-1", 46 "--1", 47 "-2", 48 "gurke1", 49 "gurke0", 50 "gurke-2", 51 "gurke #0", 52 "gurke #1", 53 "gurke #", 54 "gurke#1", 55 "gurke-", 56 "gurke---", 57 "gurke #", 58 "gurke ###", 59 NULL 60 }; 61 62 char *r = NULL; 63 int i, j, k; 64 65 for (k = 0; test_strings[k]; k++) { 66 67 printf(">>>>>%s<<<<\n", test_strings[k]); 68 69 for (j = 0; j < 2; j++) { 70 71 for (i = 0; i <= 100; i++) { 72 char *n; 73 74 n = i == 0 ? avahi_strdup(test_strings[k]) : (j ? avahi_alternative_service_name(r) : avahi_alternative_host_name(r)); 75 avahi_free(r); 76 r = n; 77 78 if (j) 79 assert(avahi_is_valid_service_name(n)); 80 else 81 assert(avahi_is_valid_host_name(n)); 82 83 printf("%s\n", r); 84 } 85 } 86 } 87 88 avahi_free(r); 89 return 0; 90 } 91