# Copyright (C) 1992, 1994 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ # Please email any bugs, comments, and/or additions to this file to: # bug-gdb@prep.ai.mit.edu # This file was written by Fred Fish. (fnf@cygnus.com) if $tracelevel then { strace $tracelevel } set prms_id 0 set bug_id 0 set binfile "printcmds" set srcfile $binfile.c if ![file exists $objdir/$subdir/$binfile] then { perror "$objdir/$subdir/$binfile does not exist" continue } # Set the current language to C. This counts as a test. If it # fails, then we skip the other tests. proc set_lang_c {} { global prompt send "set language c\n" expect { -re ".*$prompt $" {} timeout { fail "set language c (timeout)" ; return 0 } } send "show language\n" expect { -re ".* source language is \"c\".*$prompt $" { pass "set language to \"c\"" return 1 } -re ".*$prompt $" { fail "setting language to \"c\"" return 0 } timeout { fail "can't show language (timeout)" return 0 } } } proc test_integer_literals_accepted {} { global prompt # Test various decimal values. test_print_accept "p 123" "123" test_print_accept "p -123" "-123" test_print_accept "p/d 123" "123" # Test various octal values. test_print_accept "p 0123" "83" test_print_accept "p 00123" "83" test_print_accept "p -0123" "-83" test_print_accept "p/o 0123" "0123" # Test various hexadecimal values. test_print_accept "p 0x123" "291" test_print_accept "p -0x123" "-291" test_print_accept "p 0x0123" "291" test_print_accept "p -0x0123" "-291" test_print_accept "p 0xABCDEF" "11259375" test_print_accept "p 0xabcdef" "11259375" test_print_accept "p 0xAbCdEf" "11259375" test_print_accept "p/x 0x123" "0x123" } proc test_character_literals_accepted {} { global prompt test_print_accept "p 'a'" "97 'a'" test_print_accept "p/c 'a'" "97 'a'" test_print_accept "p/x 'a'" "0x61" test_print_accept "p/d 'a'" "97" test_print_accept "p/t 'a'" "1100001" test_print_accept "p '\\141'" "97 'a'" test_print_accept "p/x '\\377'" "0xff" # Note "p '\''" => "= 39 '\''" test_print_accept "p '''" "39 '\[\\'\]+'" # Note "p '\\'" => "= 92 '\\'" test_print_accept "p '\\\\'" "92 '\\\\\\\\'" } proc test_integer_literals_rejected {} { global prompt test_print_reject "p 0x" test_print_reject "p ''" test_print_reject "p '\'" # Note that this turns into "p '\\\'" at gdb's input. test_print_reject "p '\\\\\\'" # Test various decimal values. test_print_reject "p DEADBEEF" # Gdb currently fails this test for all configurations. The C # lexer thinks that 123DEADBEEF is a floating point number, but # then fails to notice that atof() only eats the 123 part. # FIXME: This should be put into PRMS. setup_xfail "*-*-*" test_print_reject "p 123DEADBEEF" # Test various octal values. test_print_reject "p 09" test_print_reject "p 079" # Test various hexadecimal values. test_print_reject "p 0xG" test_print_reject "p 0xAG" } proc test_print_all_chars {} { global prompt test_print_accept "p ctable1\[0\]" "0 '\\\\000'" test_print_accept "p ctable1\[1\]" "1 '\\\\001'" test_print_accept "p ctable1\[2\]" "2 '\\\\002'" test_print_accept "p ctable1\[3\]" "3 '\\\\003'" test_print_accept "p ctable1\[4\]" "4 '\\\\004'" test_print_accept "p ctable1\[5\]" "5 '\\\\005'" test_print_accept "p ctable1\[6\]" "6 '\\\\006'" test_print_accept "p ctable1\[7\]" "7 '\\\\a'" test_print_accept "p ctable1\[8\]" "8 '\\\\b'" test_print_accept "p ctable1\[9\]" "9 '\\\\t'" test_print_accept "p ctable1\[10\]" "10 '\\\\n'" test_print_accept "p ctable1\[11\]" "11 '\\\\013'" test_print_accept "p ctable1\[12\]" "12 '\\\\f'" test_print_accept "p ctable1\[13\]" "13 '\\\\r'" test_print_accept "p ctable1\[14\]" "14 '\\\\016'" test_print_accept "p ctable1\[15\]" "15 '\\\\017'" test_print_accept "p ctable1\[16\]" "16 '\\\\020'" test_print_accept "p ctable1\[17\]" "17 '\\\\021'" test_print_accept "p ctable1\[18\]" "18 '\\\\022'" test_print_accept "p ctable1\[19\]" "19 '\\\\023'" test_print_accept "p ctable1\[20\]" "20 '\\\\024'" test_print_accept "p ctable1\[21\]" "21 '\\\\025'" test_print_accept "p ctable1\[22\]" "22 '\\\\026'" test_print_accept "p ctable1\[23\]" "23 '\\\\027'" test_print_accept "p ctable1\[24\]" "24 '\\\\030'" test_print_accept "p ctable1\[25\]" "25 '\\\\031'" test_print_accept "p ctable1\[26\]" "26 '\\\\032'" test_print_accept "p ctable1\[27\]" "27 '\\\\e'" test_print_accept "p ctable1\[28\]" "28 '\\\\034'" test_print_accept "p ctable1\[29\]" "29 '\\\\035'" test_print_accept "p ctable1\[30\]" "30 '\\\\036'" test_print_accept "p ctable1\[31\]" "31 '\\\\037'" test_print_accept "p ctable1\[32\]" "32 ' '" test_print_accept "p ctable1\[33\]" "33 '!'" test_print_accept "p ctable1\[34\]" "34 '\"'" test_print_accept "p ctable1\[35\]" "35 '#'" test_print_accept "p ctable1\[36\]" "36 '\\\$'" test_print_accept "p ctable1\[37\]" "37 '%'" test_print_accept "p ctable1\[38\]" "38 '&'" test_print_accept "p ctable1\[39\]" "39 '\\\\''" test_print_accept "p ctable1\[40\]" "40 '\[(\]+'" test_print_accept "p ctable1\[41\]" "41 '\[)\]+'" test_print_accept "p ctable1\[42\]" "42 '\[*\]+'" test_print_accept "p ctable1\[43\]" "43 '\[+\]+'" test_print_accept "p ctable1\[44\]" "44 ','" test_print_accept "p ctable1\[45\]" "45 '-'" test_print_accept "p ctable1\[46\]" "46 '.'" test_print_accept "p ctable1\[47\]" "47 '/'" test_print_accept "p ctable1\[48\]" "48 '0'" test_print_accept "p ctable1\[49\]" "49 '1'" test_print_accept "p ctable1\[50\]" "50 '2'" test_print_accept "p ctable1\[51\]" "51 '3'" test_print_accept "p ctable1\[52\]" "52 '4'" test_print_accept "p ctable1\[53\]" "53 '5'" test_print_accept "p ctable1\[54\]" "54 '6'" test_print_accept "p ctable1\[55\]" "55 '7'" test_print_accept "p ctable1\[56\]" "56 '8'" test_print_accept "p ctable1\[57\]" "57 '9'" test_print_accept "p ctable1\[58\]" "58 ':'" test_print_accept "p ctable1\[59\]" "59 ';'" test_print_accept "p ctable1\[60\]" "60 '<'" test_print_accept "p ctable1\[61\]" "61 '='" test_print_accept "p ctable1\[62\]" "62 '>'" test_print_accept "p ctable1\[63\]" "63 '\\?'" test_print_accept "p ctable1\[64\]" "64 '@'" test_print_accept "p ctable1\[65\]" "65 'A'" test_print_accept "p ctable1\[66\]" "66 'B'" test_print_accept "p ctable1\[67\]" "67 'C'" test_print_accept "p ctable1\[68\]" "68 'D'" test_print_accept "p ctable1\[69\]" "69 'E'" test_print_accept "p ctable1\[70\]" "70 'F'" test_print_accept "p ctable1\[71\]" "71 'G'" test_print_accept "p ctable1\[72\]" "72 'H'" test_print_accept "p ctable1\[73\]" "73 'I'" test_print_accept "p ctable1\[74\]" "74 'J'" test_print_accept "p ctable1\[75\]" "75 'K'" test_print_accept "p ctable1\[76\]" "76 'L'" test_print_accept "p ctable1\[77\]" "77 'M'" test_print_accept "p ctable1\[78\]" "78 'N'" test_print_accept "p ctable1\[79\]" "79 'O'" test_print_accept "p ctable1\[80\]" "80 'P'" test_print_accept "p ctable1\[81\]" "81 'Q'" test_print_accept "p ctable1\[82\]" "82 'R'" test_print_accept "p ctable1\[83\]" "83 'S'" test_print_accept "p ctable1\[84\]" "84 'T'" test_print_accept "p ctable1\[85\]" "85 'U'" test_print_accept "p ctable1\[86\]" "86 'V'" test_print_accept "p ctable1\[87\]" "87 'W'" test_print_accept "p ctable1\[88\]" "88 'X'" test_print_accept "p ctable1\[89\]" "89 'Y'" test_print_accept "p ctable1\[90\]" "90 'Z'" test_print_accept "p ctable1\[91\]" "91 '\\\['" test_print_accept "p ctable1\[92\]" "92 '\\\\\\\\'" test_print_accept "p ctable1\[93\]" "93 '\\\]'" test_print_accept "p ctable1\[94\]" "94 '\\^'" test_print_accept "p ctable1\[95\]" "95 '_'" test_print_accept "p ctable1\[96\]" "96 '`'" test_print_accept "p ctable1\[97\]" "97 'a'" test_print_accept "p ctable1\[98\]" "98 'b'" test_print_accept "p ctable1\[99\]" "99 'c'" test_print_accept "p ctable1\[100\]" "100 'd'" test_print_accept "p ctable1\[101\]" "101 'e'" test_print_accept "p ctable1\[102\]" "102 'f'" test_print_accept "p ctable1\[103\]" "103 'g'" test_print_accept "p ctable1\[104\]" "104 'h'" test_print_accept "p ctable1\[105\]" "105 'i'" test_print_accept "p ctable1\[106\]" "106 'j'" test_print_accept "p ctable1\[107\]" "107 'k'" test_print_accept "p ctable1\[108\]" "108 'l'" test_print_accept "p ctable1\[109\]" "109 'm'" test_print_accept "p ctable1\[110\]" "110 'n'" test_print_accept "p ctable1\[111\]" "111 'o'" test_print_accept "p ctable1\[112\]" "112 'p'" test_print_accept "p ctable1\[113\]" "113 'q'" test_print_accept "p ctable1\[114\]" "114 'r'" test_print_accept "p ctable1\[115\]" "115 's'" test_print_accept "p ctable1\[116\]" "116 't'" test_print_accept "p ctable1\[117\]" "117 'u'" test_print_accept "p ctable1\[118\]" "118 'v'" test_print_accept "p ctable1\[119\]" "119 'w'" test_print_accept "p ctable1\[120\]" "120 'x'" test_print_accept "p ctable1\[121\]" "121 'y'" test_print_accept "p ctable1\[122\]" "122 'z'" test_print_accept "p ctable1\[123\]" "123 '\[{\]+'" test_print_accept "p ctable1\[124\]" "124 '\[|\]+'" test_print_accept "p ctable1\[125\]" "125 '\[}\]+'" test_print_accept "p ctable1\[126\]" "126 '\[~\]'" test_print_accept "p ctable1\[127\]" "127 '\\\\177'" test_print_accept "p ctable1\[128\]" "128 '\\\\200'" test_print_accept "p ctable1\[129\]" "129 '\\\\201'" test_print_accept "p ctable1\[130\]" "130 '\\\\202'" test_print_accept "p ctable1\[131\]" "131 '\\\\203'" test_print_accept "p ctable1\[132\]" "132 '\\\\204'" test_print_accept "p ctable1\[133\]" "133 '\\\\205'" test_print_accept "p ctable1\[134\]" "134 '\\\\206'" test_print_accept "p ctable1\[135\]" "135 '\\\\207'" test_print_accept "p ctable1\[136\]" "136 '\\\\210'" test_print_accept "p ctable1\[137\]" "137 '\\\\211'" test_print_accept "p ctable1\[138\]" "138 '\\\\212'" test_print_accept "p ctable1\[139\]" "139 '\\\\213'" test_print_accept "p ctable1\[140\]" "140 '\\\\214'" test_print_accept "p ctable1\[141\]" "141 '\\\\215'" test_print_accept "p ctable1\[142\]" "142 '\\\\216'" test_print_accept "p ctable1\[143\]" "143 '\\\\217'" test_print_accept "p ctable1\[144\]" "144 '\\\\220'" test_print_accept "p ctable1\[145\]" "145 '\\\\221'" test_print_accept "p ctable1\[146\]" "146 '\\\\222'" test_print_accept "p ctable1\[147\]" "147 '\\\\223'" test_print_accept "p ctable1\[148\]" "148 '\\\\224'" test_print_accept "p ctable1\[149\]" "149 '\\\\225'" test_print_accept "p ctable1\[150\]" "150 '\\\\226'" test_print_accept "p ctable1\[151\]" "151 '\\\\227'" test_print_accept "p ctable1\[152\]" "152 '\\\\230'" test_print_accept "p ctable1\[153\]" "153 '\\\\231'" test_print_accept "p ctable1\[154\]" "154 '\\\\232'" test_print_accept "p ctable1\[155\]" "155 '\\\\233'" test_print_accept "p ctable1\[156\]" "156 '\\\\234'" test_print_accept "p ctable1\[157\]" "157 '\\\\235'" test_print_accept "p ctable1\[158\]" "158 '\\\\236'" test_print_accept "p ctable1\[159\]" "159 '\\\\237'" test_print_accept "p ctable1\[160\]" "160 '\\\\240'" test_print_accept "p ctable1\[161\]" "161 '\\\\241'" test_print_accept "p ctable1\[162\]" "162 '\\\\242'" test_print_accept "p ctable1\[163\]" "163 '\\\\243'" test_print_accept "p ctable1\[164\]" "164 '\\\\244'" test_print_accept "p ctable1\[165\]" "165 '\\\\245'" test_print_accept "p ctable1\[166\]" "166 '\\\\246'" test_print_accept "p ctable1\[167\]" "167 '\\\\247'" test_print_accept "p ctable1\[168\]" "168 '\\\\250'" test_print_accept "p ctable1\[169\]" "169 '\\\\251'" test_print_accept "p ctable1\[170\]" "170 '\\\\252'" test_print_accept "p ctable1\[171\]" "171 '\\\\253'" test_print_accept "p ctable1\[172\]" "172 '\\\\254'" test_print_accept "p ctable1\[173\]" "173 '\\\\255'" test_print_accept "p ctable1\[174\]" "174 '\\\\256'" test_print_accept "p ctable1\[175\]" "175 '\\\\257'" test_print_accept "p ctable1\[176\]" "176 '\\\\260'" test_print_accept "p ctable1\[177\]" "177 '\\\\261'" test_print_accept "p ctable1\[178\]" "178 '\\\\262'" test_print_accept "p ctable1\[179\]" "179 '\\\\263'" test_print_accept "p ctable1\[180\]" "180 '\\\\264'" test_print_accept "p ctable1\[181\]" "181 '\\\\265'" test_print_accept "p ctable1\[182\]" "182 '\\\\266'" test_print_accept "p ctable1\[183\]" "183 '\\\\267'" test_print_accept "p ctable1\[184\]" "184 '\\\\270'" test_print_accept "p ctable1\[185\]" "185 '\\\\271'" test_print_accept "p ctable1\[186\]" "186 '\\\\272'" test_print_accept "p ctable1\[187\]" "187 '\\\\273'" test_print_accept "p ctable1\[188\]" "188 '\\\\274'" test_print_accept "p ctable1\[189\]" "189 '\\\\275'" test_print_accept "p ctable1\[190\]" "190 '\\\\276'" test_print_accept "p ctable1\[191\]" "191 '\\\\277'" test_print_accept "p ctable1\[192\]" "192 '\\\\300'" test_print_accept "p ctable1\[193\]" "193 '\\\\301'" test_print_accept "p ctable1\[194\]" "194 '\\\\302'" test_print_accept "p ctable1\[195\]" "195 '\\\\303'" test_print_accept "p ctable1\[196\]" "196 '\\\\304'" test_print_accept "p ctable1\[197\]" "197 '\\\\305'" test_print_accept "p ctable1\[198\]" "198 '\\\\306'" test_print_accept "p ctable1\[199\]" "199 '\\\\307'" test_print_accept "p ctable1\[200\]" "200 '\\\\310'" test_print_accept "p ctable1\[201\]" "201 '\\\\311'" test_print_accept "p ctable1\[202\]" "202 '\\\\312'" test_print_accept "p ctable1\[203\]" "203 '\\\\313'" test_print_accept "p ctable1\[204\]" "204 '\\\\314'" test_print_accept "p ctable1\[205\]" "205 '\\\\315'" test_print_accept "p ctable1\[206\]" "206 '\\\\316'" test_print_accept "p ctable1\[207\]" "207 '\\\\317'" test_print_accept "p ctable1\[208\]" "208 '\\\\320'" test_print_accept "p ctable1\[209\]" "209 '\\\\321'" test_print_accept "p ctable1\[210\]" "210 '\\\\322'" test_print_accept "p ctable1\[211\]" "211 '\\\\323'" test_print_accept "p ctable1\[212\]" "212 '\\\\324'" test_print_accept "p ctable1\[213\]" "213 '\\\\325'" test_print_accept "p ctable1\[214\]" "214 '\\\\326'" test_print_accept "p ctable1\[215\]" "215 '\\\\327'" test_print_accept "p ctable1\[216\]" "216 '\\\\330'" test_print_accept "p ctable1\[217\]" "217 '\\\\331'" test_print_accept "p ctable1\[218\]" "218 '\\\\332'" test_print_accept "p ctable1\[219\]" "219 '\\\\333'" test_print_accept "p ctable1\[220\]" "220 '\\\\334'" test_print_accept "p ctable1\[221\]" "221 '\\\\335'" test_print_accept "p ctable1\[222\]" "222 '\\\\336'" test_print_accept "p ctable1\[223\]" "223 '\\\\337'" test_print_accept "p ctable1\[224\]" "224 '\\\\340'" test_print_accept "p ctable1\[225\]" "225 '\\\\341'" test_print_accept "p ctable1\[226\]" "226 '\\\\342'" test_print_accept "p ctable1\[227\]" "227 '\\\\343'" test_print_accept "p ctable1\[228\]" "228 '\\\\344'" test_print_accept "p ctable1\[229\]" "229 '\\\\345'" test_print_accept "p ctable1\[230\]" "230 '\\\\346'" test_print_accept "p ctable1\[231\]" "231 '\\\\347'" test_print_accept "p ctable1\[232\]" "232 '\\\\350'" test_print_accept "p ctable1\[233\]" "233 '\\\\351'" test_print_accept "p ctable1\[234\]" "234 '\\\\352'" test_print_accept "p ctable1\[235\]" "235 '\\\\353'" test_print_accept "p ctable1\[236\]" "236 '\\\\354'" test_print_accept "p ctable1\[237\]" "237 '\\\\355'" test_print_accept "p ctable1\[238\]" "238 '\\\\356'" test_print_accept "p ctable1\[239\]" "239 '\\\\357'" test_print_accept "p ctable1\[240\]" "240 '\\\\360'" test_print_accept "p ctable1\[241\]" "241 '\\\\361'" test_print_accept "p ctable1\[242\]" "242 '\\\\362'" test_print_accept "p ctable1\[243\]" "243 '\\\\363'" test_print_accept "p ctable1\[244\]" "244 '\\\\364'" test_print_accept "p ctable1\[245\]" "245 '\\\\365'" test_print_accept "p ctable1\[246\]" "246 '\\\\366'" test_print_accept "p ctable1\[247\]" "247 '\\\\367'" test_print_accept "p ctable1\[248\]" "248 '\\\\370'" test_print_accept "p ctable1\[249\]" "249 '\\\\371'" test_print_accept "p ctable1\[250\]" "250 '\\\\372'" test_print_accept "p ctable1\[251\]" "251 '\\\\373'" test_print_accept "p ctable1\[252\]" "252 '\\\\374'" test_print_accept "p ctable1\[253\]" "253 '\\\\375'" test_print_accept "p ctable1\[254\]" "254 '\\\\376'" test_print_accept "p ctable1\[255\]" "255 '\\\\377'" } # Test interaction of the number of print elements to print and the # repeat count, set to the default of 10. proc test_print_repeats_10 {} { global prompt send "set print elements 1\n" ; expect -re "$prompt $" test_print_accept "p &ctable2\[0*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"a\"..." test_print_accept "p &ctable2\[1*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"a\"..." test_print_accept "p &ctable2\[2*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"a\"..." test_print_accept "p &ctable2\[3*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"a\"..." test_print_accept "p &ctable2\[4*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"a\"..." test_print_accept "p &ctable2\[5*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"a\"..." test_print_accept "p &ctable2\[6*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"a\"..." test_print_accept "p &ctable2\[7*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"a\"..." test_print_accept "p &ctable2\[8*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"a\"..." test_print_accept "p &ctable2\[9*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"a\"..." test_print_accept "p &ctable2\[10*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"a\"..." test_print_accept "p &ctable2\[11*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"a\"..." test_print_accept "p &ctable2\[12*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"a\"..." test_print_accept "p &ctable2\[13*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"a\"..." test_print_accept "p &ctable2\[14*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"a\"..." test_print_accept "p &ctable2\[15*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"a\"..." send "set print elements 2\n" ; expect -re "$prompt $" test_print_accept "p &ctable2\[0*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aX\"..." test_print_accept "p &ctable2\[1*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aa\"..." test_print_accept "p &ctable2\[2*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aa\"..." test_print_accept "p &ctable2\[3*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aa\"..." test_print_accept "p &ctable2\[4*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aa\"..." test_print_accept "p &ctable2\[5*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aa\"..." test_print_accept "p &ctable2\[6*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aa\"..." test_print_accept "p &ctable2\[7*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aa\"..." test_print_accept "p &ctable2\[8*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aa\"..." test_print_accept "p &ctable2\[9*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aa\"..." test_print_accept "p &ctable2\[10*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aa\"..." test_print_accept "p &ctable2\[11*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aa\"..." test_print_accept "p &ctable2\[12*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aa\"..." test_print_accept "p &ctable2\[13*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aa\"..." test_print_accept "p &ctable2\[14*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aa\"..." test_print_accept "p &ctable2\[15*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aa\"..." send "set print elements 3\n" ; expect -re "$prompt $" test_print_accept "p &ctable2\[0*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aXX\"..." test_print_accept "p &ctable2\[1*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaX\"..." test_print_accept "p &ctable2\[2*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaa\"..." test_print_accept "p &ctable2\[3*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaa\"..." test_print_accept "p &ctable2\[4*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaa\"..." test_print_accept "p &ctable2\[5*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaa\"..." test_print_accept "p &ctable2\[6*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaa\"..." test_print_accept "p &ctable2\[7*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaa\"..." test_print_accept "p &ctable2\[8*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaa\"..." test_print_accept "p &ctable2\[9*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaa\"..." test_print_accept "p &ctable2\[10*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaa\"..." test_print_accept "p &ctable2\[11*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaa\"..." test_print_accept "p &ctable2\[12*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaa\"..." test_print_accept "p &ctable2\[13*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaa\"..." test_print_accept "p &ctable2\[14*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaa\"..." test_print_accept "p &ctable2\[15*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaa\"..." send "set print elements 4\n" ; expect -re "$prompt $" test_print_accept "p &ctable2\[0*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aXXX\"..." test_print_accept "p &ctable2\[1*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaXX\"..." test_print_accept "p &ctable2\[2*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaX\"..." test_print_accept "p &ctable2\[3*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaa\"..." test_print_accept "p &ctable2\[4*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaa\"..." test_print_accept "p &ctable2\[5*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaa\"..." test_print_accept "p &ctable2\[6*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaa\"..." test_print_accept "p &ctable2\[7*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaa\"..." test_print_accept "p &ctable2\[8*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaa\"..." test_print_accept "p &ctable2\[9*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaa\"..." test_print_accept "p &ctable2\[10*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaa\"..." test_print_accept "p &ctable2\[11*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaa\"..." test_print_accept "p &ctable2\[12*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaa\"..." test_print_accept "p &ctable2\[13*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaa\"..." test_print_accept "p &ctable2\[14*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaa\"..." test_print_accept "p &ctable2\[15*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaa\"..." send "set print elements 5\n" ; expect -re "$prompt $" test_print_accept "p &ctable2\[0*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aXXXX\"..." test_print_accept "p &ctable2\[1*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaXXX\"..." test_print_accept "p &ctable2\[2*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaXX\"..." test_print_accept "p &ctable2\[3*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaX\"..." test_print_accept "p &ctable2\[4*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaa\"..." test_print_accept "p &ctable2\[5*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaa\"..." test_print_accept "p &ctable2\[6*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaa\"..." test_print_accept "p &ctable2\[7*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaa\"..." test_print_accept "p &ctable2\[8*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaa\"..." test_print_accept "p &ctable2\[9*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaa\"..." test_print_accept "p &ctable2\[10*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaa\"..." test_print_accept "p &ctable2\[11*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaa\"..." test_print_accept "p &ctable2\[12*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaa\"..." test_print_accept "p &ctable2\[13*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaa\"..." test_print_accept "p &ctable2\[14*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaa\"..." test_print_accept "p &ctable2\[15*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaa\"..." send "set print elements 6\n" ; expect -re "$prompt $" test_print_accept "p &ctable2\[0*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aXXXXX\"..." test_print_accept "p &ctable2\[1*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaXXXX\"..." test_print_accept "p &ctable2\[2*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaXXX\"..." test_print_accept "p &ctable2\[3*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaXX\"..." test_print_accept "p &ctable2\[4*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaX\"..." test_print_accept "p &ctable2\[5*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaa\"..." test_print_accept "p &ctable2\[6*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaa\"..." test_print_accept "p &ctable2\[7*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaa\"..." test_print_accept "p &ctable2\[8*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaa\"..." test_print_accept "p &ctable2\[9*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaa\"..." test_print_accept "p &ctable2\[10*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaa\"..." test_print_accept "p &ctable2\[11*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaa\"..." test_print_accept "p &ctable2\[12*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaa\"..." test_print_accept "p &ctable2\[13*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaa\"..." test_print_accept "p &ctable2\[14*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaa\"..." test_print_accept "p &ctable2\[15*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaa\"..." send "set print elements 7\n" ; expect -re "$prompt $" test_print_accept "p &ctable2\[0*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aXXXXXX\"..." test_print_accept "p &ctable2\[1*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaXXXXX\"..." test_print_accept "p &ctable2\[2*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaXXXX\"..." test_print_accept "p &ctable2\[3*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaXXX\"..." test_print_accept "p &ctable2\[4*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaXX\"..." test_print_accept "p &ctable2\[5*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaX\"..." test_print_accept "p &ctable2\[6*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaa\"..." test_print_accept "p &ctable2\[7*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaa\"..." test_print_accept "p &ctable2\[8*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaa\"..." test_print_accept "p &ctable2\[9*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaa\"..." test_print_accept "p &ctable2\[10*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaa\"..." test_print_accept "p &ctable2\[11*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaa\"..." test_print_accept "p &ctable2\[12*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaa\"..." test_print_accept "p &ctable2\[13*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaa\"..." test_print_accept "p &ctable2\[14*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaa\"..." test_print_accept "p &ctable2\[15*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaa\"..." send "set print elements 8\n" ; expect -re "$prompt $" test_print_accept "p &ctable2\[0*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aXXXXXXX\"..." test_print_accept "p &ctable2\[1*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaXXXXXX\"..." test_print_accept "p &ctable2\[2*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaXXXXX\"..." test_print_accept "p &ctable2\[3*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaXXXX\"..." test_print_accept "p &ctable2\[4*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaXXX\"..." test_print_accept "p &ctable2\[5*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaXX\"..." test_print_accept "p &ctable2\[6*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaX\"..." test_print_accept "p &ctable2\[7*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaa\"..." test_print_accept "p &ctable2\[8*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaa\"..." test_print_accept "p &ctable2\[9*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaa\"..." test_print_accept "p &ctable2\[10*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaa\"..." test_print_accept "p &ctable2\[11*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaa\"..." test_print_accept "p &ctable2\[12*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaa\"..." test_print_accept "p &ctable2\[13*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaa\"..." test_print_accept "p &ctable2\[14*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaa\"..." test_print_accept "p &ctable2\[15*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaa\"..." send "set print elements 9\n" ; expect -re "$prompt $" test_print_accept "p &ctable2\[0*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aXXXXXXXX\"..." test_print_accept "p &ctable2\[1*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaXXXXXXX\"..." test_print_accept "p &ctable2\[2*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaXXXXXX\"..." test_print_accept "p &ctable2\[3*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaXXXXX\"..." test_print_accept "p &ctable2\[4*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaXXXX\"..." test_print_accept "p &ctable2\[5*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaXXX\"..." test_print_accept "p &ctable2\[6*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaXX\"..." test_print_accept "p &ctable2\[7*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaaX\"..." test_print_accept "p &ctable2\[8*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaaa\"..." test_print_accept "p &ctable2\[9*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaaa\"..." test_print_accept "p &ctable2\[10*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaaa\"..." test_print_accept "p &ctable2\[11*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaaa\"..." test_print_accept "p &ctable2\[12*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaaa\"..." test_print_accept "p &ctable2\[13*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaaa\"..." test_print_accept "p &ctable2\[14*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaaa\"..." test_print_accept "p &ctable2\[15*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaaa\"..." send "set print elements 10\n" ; expect -re "$prompt $" test_print_accept "p &ctable2\[0*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aXXXXXXXXX\"..." test_print_accept "p &ctable2\[1*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaXXXXXXXX\"..." test_print_accept "p &ctable2\[2*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaXXXXXXX\"..." test_print_accept "p &ctable2\[3*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaXXXXXX\"..." test_print_accept "p &ctable2\[4*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaXXXXX\"..." test_print_accept "p &ctable2\[5*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaXXXX\"..." test_print_accept "p &ctable2\[6*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaXXX\"..." test_print_accept "p &ctable2\[7*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaaXX\"..." test_print_accept "p &ctable2\[8*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaaaX\"..." test_print_accept "p &ctable2\[9*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaaaa\"..." test_print_accept "p &ctable2\[10*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaaaa\"..." test_print_accept "p &ctable2\[11*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaaaa\"..." test_print_accept "p &ctable2\[12*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaaaa\"..." test_print_accept "p &ctable2\[13*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaaaa\"..." test_print_accept "p &ctable2\[14*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaaaa\"..." test_print_accept "p &ctable2\[15*16\]" "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaaaa\"..." send "set print elements 11\n" ; expect -re "$prompt $" test_print_accept "p &ctable2\[0*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aXXXXXXXXXX\"..." test_print_accept "p &ctable2\[1*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaXXXXXXXXX\"..." test_print_accept "p &ctable2\[2*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaXXXXXXXX\"..." test_print_accept "p &ctable2\[3*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaXXXXXXX\"..." test_print_accept "p &ctable2\[4*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaXXXXXX\"..." test_print_accept "p &ctable2\[5*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaXXXXX\"..." test_print_accept "p &ctable2\[6*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaXXXX\"..." test_print_accept "p &ctable2\[7*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaaXXX\"..." test_print_accept "p &ctable2\[8*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaaaXX\"..." test_print_accept "p &ctable2\[9*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaaaaX\"..." test_print_accept "p &ctable2\[10*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ 'a' ..." test_print_accept "p &ctable2\[11*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ 'a' ..." test_print_accept "p &ctable2\[12*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ 'a' ..." test_print_accept "p &ctable2\[13*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ 'a' ..." test_print_accept "p &ctable2\[14*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ 'a' ..." test_print_accept "p &ctable2\[15*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ 'a' ..." send "set print elements 12\n" ; expect -re "$prompt $" test_print_accept "p &ctable2\[0*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"a\", 'X' ..." test_print_accept "p &ctable2\[1*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaXXXXXXXXXX\"..." test_print_accept "p &ctable2\[2*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaXXXXXXXXX\"..." test_print_accept "p &ctable2\[3*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaXXXXXXXX\"..." test_print_accept "p &ctable2\[4*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaXXXXXXX\"..." test_print_accept "p &ctable2\[5*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaXXXXXX\"..." test_print_accept "p &ctable2\[6*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaXXXXX\"..." test_print_accept "p &ctable2\[7*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaaXXXX\"..." test_print_accept "p &ctable2\[8*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaaaXXX\"..." test_print_accept "p &ctable2\[9*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaaaaXX\"..." test_print_accept "p &ctable2\[10*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ 'a' , \"X\"..." test_print_accept "p &ctable2\[11*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ 'a' ..." test_print_accept "p &ctable2\[12*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ 'a' ..." test_print_accept "p &ctable2\[13*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ 'a' ..." test_print_accept "p &ctable2\[14*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ 'a' ..." test_print_accept "p &ctable2\[15*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ 'a' ..." send "set print elements 13\n" ; expect -re "$prompt $" test_print_accept "p &ctable2\[0*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"a\", 'X' ..." test_print_accept "p &ctable2\[1*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aa\", 'X' ..." test_print_accept "p &ctable2\[2*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaXXXXXXXXXX\"..." test_print_accept "p &ctable2\[3*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaXXXXXXXXX\"..." test_print_accept "p &ctable2\[4*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaXXXXXXXX\"..." test_print_accept "p &ctable2\[5*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaXXXXXXX\"..." test_print_accept "p &ctable2\[6*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaXXXXXX\"..." test_print_accept "p &ctable2\[7*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaaXXXXX\"..." test_print_accept "p &ctable2\[8*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaaaXXXX\"..." test_print_accept "p &ctable2\[9*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaaaaXXX\"..." test_print_accept "p &ctable2\[10*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ 'a' , \"XX\"..." test_print_accept "p &ctable2\[11*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ 'a' , \"X\"..." test_print_accept "p &ctable2\[12*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ 'a' ..." test_print_accept "p &ctable2\[13*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ 'a' ..." test_print_accept "p &ctable2\[14*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ 'a' ..." test_print_accept "p &ctable2\[15*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ 'a' ..." send "set print elements 14\n" ; expect -re "$prompt $" test_print_accept "p &ctable2\[0*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"a\", 'X' ..." test_print_accept "p &ctable2\[1*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aa\", 'X' ..." test_print_accept "p &ctable2\[2*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaa\", 'X' ..." test_print_accept "p &ctable2\[3*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaXXXXXXXXXX\"..." test_print_accept "p &ctable2\[4*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaXXXXXXXXX\"..." test_print_accept "p &ctable2\[5*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaXXXXXXXX\"..." test_print_accept "p &ctable2\[6*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaXXXXXXX\"..." test_print_accept "p &ctable2\[7*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaaXXXXXX\"..." test_print_accept "p &ctable2\[8*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaaaXXXXX\"..." test_print_accept "p &ctable2\[9*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaaaaXXXX\"..." test_print_accept "p &ctable2\[10*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ 'a' , \"XXX\"..." test_print_accept "p &ctable2\[11*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ 'a' , \"XX\"..." test_print_accept "p &ctable2\[12*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ 'a' , \"X\"..." test_print_accept "p &ctable2\[13*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ 'a' ..." test_print_accept "p &ctable2\[14*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ 'a' ..." test_print_accept "p &ctable2\[15*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ 'a' ..." send "set print elements 15\n" ; expect -re "$prompt $" test_print_accept "p &ctable2\[0*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"a\", 'X' ..." test_print_accept "p &ctable2\[1*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aa\", 'X' ..." test_print_accept "p &ctable2\[2*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaa\", 'X' ..." test_print_accept "p &ctable2\[3*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaa\", 'X' ..." test_print_accept "p &ctable2\[4*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaXXXXXXXXXX\"..." test_print_accept "p &ctable2\[5*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaXXXXXXXXX\"..." test_print_accept "p &ctable2\[6*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaXXXXXXXX\"..." test_print_accept "p &ctable2\[7*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaaXXXXXXX\"..." test_print_accept "p &ctable2\[8*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaaaXXXXXX\"..." test_print_accept "p &ctable2\[9*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaaaaXXXXX\"..." test_print_accept "p &ctable2\[10*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ 'a' , \"XXXX\"..." test_print_accept "p &ctable2\[11*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ 'a' , \"XXX\"..." test_print_accept "p &ctable2\[12*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ 'a' , \"XX\"..." test_print_accept "p &ctable2\[13*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ 'a' , \"X\"..." test_print_accept "p &ctable2\[14*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ 'a' ..." test_print_accept "p &ctable2\[15*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ 'a' ..." send "set print elements 16\n" ; expect -re "$prompt $" test_print_accept "p &ctable2\[0*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"a\", 'X' ..." test_print_accept "p &ctable2\[1*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aa\", 'X' ..." test_print_accept "p &ctable2\[2*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaa\", 'X' ..." test_print_accept "p &ctable2\[3*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaa\", 'X' ..." test_print_accept "p &ctable2\[4*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaa\", 'X' ..." test_print_accept "p &ctable2\[5*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaXXXXXXXXXX\"..." test_print_accept "p &ctable2\[6*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaXXXXXXXXX\"..." test_print_accept "p &ctable2\[7*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaaXXXXXXXX\"..." test_print_accept "p &ctable2\[8*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaaaXXXXXXX\"..." test_print_accept "p &ctable2\[9*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"aaaaaaaaaaXXXXXX\"..." test_print_accept "p &ctable2\[10*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ 'a' , \"XXXXX\"..." test_print_accept "p &ctable2\[11*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ 'a' , \"XXXX\"..." test_print_accept "p &ctable2\[12*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ 'a' , \"XXX\"..." test_print_accept "p &ctable2\[13*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ 'a' , \"XX\"..." test_print_accept "p &ctable2\[14*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ 'a' , \"X\"..." test_print_accept "p &ctable2\[15*16\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ 'a' " } proc test_print_strings {} { global prompt # We accept "(unsigned char *) " before the string. char vs. unsigned char # is already tested elsewhere. # Test that setting print elements unlimited doesn't completely suppress # printing; this was a bug in older gdb's. send "set print elements 0\n" ; expect -re "$prompt $" gdb_test "p teststring" \ " = (.unsigned char .. )?\"teststring contents\"\r\n" send "set print elements 1\n" ; expect -re "$prompt $" gdb_test "p teststring" \ " = (.unsigned char .. )?\"t\"...\r\n" send "set print elements 5\n" ; expect -re "$prompt $" gdb_test "p teststring" \ " = (.unsigned char .. )?\"tests\"...\r\n" send "set print elements 19\n" ; expect -re "$prompt $" gdb_test "p teststring" \ " = (.unsigned char .. )?\"teststring contents\"\r\n" send "set print elements 20\n" ; expect -re "$prompt $" gdb_test "p teststring" \ " = (.unsigned char .. )?\"teststring contents\"\r\n" send "set print elements 8\n" ; expect -re "$prompt $" test_print_accept "p &ctable1\[0\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"\"" test_print_accept "p &ctable1\[1\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"\\\\001\\\\002\\\\003\\\\004\\\\005\\\\006\\\\a\\\\b\"..." test_print_accept "p &ctable1\[1*8\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"\\\\b\\\\t\\\\n\\\\013\\\\f\\\\r\\\\016\\\\017\"..." test_print_accept "p &ctable1\[2*8\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"\\\\020\\\\021\\\\022\\\\023\\\\024\\\\025\\\\026\\\\027\"..." test_print_accept "p &ctable1\[3*8\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"\\\\030\\\\031\\\\032\\\\e\\\\034\\\\035\\\\036\\\\037\"..." test_print_accept "p &ctable1\[4*8\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \" !\\\\\"#\\\$%&'\"..." test_print_accept "p &ctable1\[5*8\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"\[(\]+\[)\]+\[*\]+\\+,-./\"..." test_print_accept "p &ctable1\[6*8\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"01234567\"..." test_print_accept "p &ctable1\[7*8\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"89:;<=>\\?\"..." test_print_accept "p &ctable1\[8*8\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"@ABCDEFG\"..." test_print_accept "p &ctable1\[9*8\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"HIJKLMNO\"..." test_print_accept "p &ctable1\[10*8\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"PQRSTUVW\"..." test_print_accept "p &ctable1\[11*8\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"XYZ\\\[\\\\\\\\\\\]\\^_\"..." test_print_accept "p &ctable1\[12*8\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"`abcdefg\"..." test_print_accept "p &ctable1\[13*8\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"hijklmno\"..." test_print_accept "p &ctable1\[14*8\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"pqrstuvw\"..." test_print_accept "p &ctable1\[15*8\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"xyz\[{|}\]+\\~\\\\177\"..." test_print_accept "p &ctable1\[16*8\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"\\\\200\\\\201\\\\202\\\\203\\\\204\\\\205\\\\206\\\\207\"..." test_print_accept "p &ctable1\[17*8\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"\\\\210\\\\211\\\\212\\\\213\\\\214\\\\215\\\\216\\\\217\"..." test_print_accept "p &ctable1\[18*8\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"\\\\220\\\\221\\\\222\\\\223\\\\224\\\\225\\\\226\\\\227\"..." test_print_accept "p &ctable1\[19*8\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"\\\\230\\\\231\\\\232\\\\233\\\\234\\\\235\\\\236\\\\237\"..." test_print_accept "p &ctable1\[20*8\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"\\\\240\\\\241\\\\242\\\\243\\\\244\\\\245\\\\246\\\\247\"..." test_print_accept "p &ctable1\[21*8\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"\\\\250\\\\251\\\\252\\\\253\\\\254\\\\255\\\\256\\\\257\"..." test_print_accept "p &ctable1\[22*8\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"\\\\260\\\\261\\\\262\\\\263\\\\264\\\\265\\\\266\\\\267\"..." test_print_accept "p &ctable1\[23*8\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"\\\\270\\\\271\\\\272\\\\273\\\\274\\\\275\\\\276\\\\277\"..." test_print_accept "p &ctable1\[24*8\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"\\\\300\\\\301\\\\302\\\\303\\\\304\\\\305\\\\306\\\\307\"..." test_print_accept "p &ctable1\[25*8\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"\\\\310\\\\311\\\\312\\\\313\\\\314\\\\315\\\\316\\\\317\"..." test_print_accept "p &ctable1\[26*8\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"\\\\320\\\\321\\\\322\\\\323\\\\324\\\\325\\\\326\\\\327\"..." test_print_accept "p &ctable1\[27*8\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"\\\\330\\\\331\\\\332\\\\333\\\\334\\\\335\\\\336\\\\337\"..." test_print_accept "p &ctable1\[28*8\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"\\\\340\\\\341\\\\342\\\\343\\\\344\\\\345\\\\346\\\\347\"..." test_print_accept "p &ctable1\[29*8\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"\\\\350\\\\351\\\\352\\\\353\\\\354\\\\355\\\\356\\\\357\"..." test_print_accept "p &ctable1\[30*8\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"\\\\360\\\\361\\\\362\\\\363\\\\364\\\\365\\\\366\\\\367\"..." test_print_accept "p &ctable1\[31*8\]" \ "\[(\]+unsigned char \[*\]+\[)\]+ \"\\\\370\\\\371\\\\372\\\\373\\\\374\\\\375\\\\376\\\\377\"..." } proc test_print_int_arrays {} { global prompt send "set print elements 24\n" ; expect -re "$prompt $" test_print_accept "p int1dim" \ "{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}" test_print_accept "p int2dim" \ "{{0, 1, 2, 3}, {4, 5, 6, 7}, {8, 9, 10, 11}}" test_print_accept "p int3dim" \ "{{{0, 1}, {2, 3}, {4, 5}}, {{6, 7}, {8, 9}, {10, 11}}}" test_print_accept "p int4dim" \ "{{{{0, 1}, {2, 3}, {4, 5}}, {{6, 7}, {8, 9}, {10, 11}}}}" } proc test_print_char_arrays {} { global prompt global hex send "set print elements 24\n" ; expect -re "$prompt $" send "set print address on\n" ; expect -re "$prompt $" test_print_accept "p arrays" \ "{array1 = \"abc\", array2 = \"d\", array3 = \"e\", array4 = \"fg\", array5 = \"hij\"}" test_print_accept "p parrays" "\[(\]+struct some_arrays \[*\]+\[)\]+ $hex" test_print_accept "p parrays->array1" "\"abc\"" test_print_accept "p &parrays->array1" "\[(\]+unsigned char \[*\]+\[)\]+ $hex \"abc\"" test_print_accept "p parrays->array2" "\"d\"" test_print_accept "p &parrays->array2" "\[(\]+unsigned char \[*\]+\[)\]+ $hex \"defghij\"" test_print_accept "p parrays->array3" "\"e\"" test_print_accept "p &parrays->array3" "\[(\]+unsigned char \[*\]+\[)\]+ $hex \"efghij\"" test_print_accept "p parrays->array4" "\"fg\"" test_print_accept "p &parrays->array4" "\[(\]+unsigned char \[*\]+\[)\]+ $hex \"fghij\"" test_print_accept "p parrays->array5" "\"hij\"" test_print_accept "p &parrays->array5" "\[(\]+unsigned char \[*\]+\[)\]+ $hex \"hij\"" send "set print address off\n" ; expect -re "$prompt $" } proc test_print_string_constants {} { global prompt global timeout set otimeout $timeout set timeout 120 send "set print elements 50\n" ; expect -re "$prompt $" setup_xfail "a29k-*-udi" 2416 test_print_accept "p \"a string\"" "\"a string\"" setup_xfail "a29k-*-udi" 2416 test_print_accept "p \"embedded \\000 null\"" "\"embedded \\\\000 null\"" setup_xfail "a29k-*-udi" 2416 test_print_accept "p \"abcd\"\[2\]" "99 'c'" setup_xfail "a29k-*-udi" 2416 test_print_accept "p sizeof (\"abcdef\")" "7" setup_xfail "a29k-*-udi" 2416 test_print_accept "ptype \"foo\"" "char \\\[4\\\]" setup_xfail "a29k-*-udi" 2416 test_print_accept "p *\"foo\"" "102 'f'" setup_xfail "a29k-*-udi" 2416 test_print_accept "ptype *\"foo\"" "char" setup_xfail "a29k-*-udi" 2416 test_print_accept "p &*\"foo\"" "\"foo\"" setup_xfail "*-*-*" test_print_accept "ptype &*\"foo\"" "char \[*\]+" setup_xfail "a29k-*-udi" 2416 test_print_accept "p (char *)\"foo\"" "\"foo\"" set timeout $otimeout } proc test_print_array_constants {} { global timeout set otimeout $timeout set timeout 120 setup_xfail "a29k-*-udi" 2416 gdb_test "print {'a','b','c'}" " = \"abc\"" setup_xfail "a29k-*-udi" 2416 gdb_test "print {0,1,2}" " = {0, 1, 2}" setup_xfail "a29k-*-udi" 2416 gdb_test "print {(long)0,(long)1,(long)2}" " = {0, 1, 2}" setup_xfail "a29k-*-udi" 2416 gdb_test "print {{0,1,2},{3,4,5}}" " = {{0, 1, 2}, {3, 4, 5}}" setup_xfail "a29k-*-udi" 2416 gdb_test "print {4,5,6}\\\[2\\\]" " = 6" setup_xfail "a29k-*-udi" 2416 gdb_test "print *&{4,5,6}\\\[1\\\]" " = 5" set timeout $otimeout } proc test_printf {} { gdb_test "printf \\\"x=%d,y=%d,z=%d\\\\n\\\", 5, 6, 7" "x=5,y=6,z=7" gdb_test "printf \\\"string=%.4sxx\\\\n\\\", teststring" "string=testxx" gdb_test "printf \\\"string=%sxx\\\\n\\\", teststring" \ "string=teststring contentsxx" gdb_test "printf \\\"%f is fun\\\\n\\\", 1.0" "1\.0+ is fun" # Test mixing args of different sizes. gdb_test "printf \\\"x=%d,y=%f,z=%d\\\\n\\\", 5, 6.0, 7" "x=5,y=6\.0+,z=7" gdb_test "printf \\\"%x %f, %c %x, %x, %f\\\\n\\\", 0xbad, -99.541, 'z',\ 0xfeedface, 0xdeadbeef, 5.0" "bad -99.5410+, z feedface, deadbeef, 5.0+" } # Start with a fresh gdb. gdb_exit gdb_start gdb_reinitialize_dir $srcdir/$subdir gdb_test "print \\\$pc" "No registers" # FIXME: should also test "print $pc" when there is an execfile but no # remote debugging target, process or corefile. gdb_load $objdir/$subdir/$binfile send "set print sevenbit-strings\n" ; expect -re "$prompt $" send "set print address off\n" ; expect -re "$prompt $" send "set width 0\n" ; expect -re "$prompt $" if [set_lang_c] then { # On AIX, we can't print variables before we run the program. This is because # the data segment and text segment are in the same address space until # they are relocated. Ick. setup_xfail "rs6000-*-aix*" gdb_test "p ctable1\\\[120\\\]" "120 'x'" if [runto main] then { test_integer_literals_accepted test_integer_literals_rejected test_character_literals_accepted test_print_all_chars test_print_repeats_10 test_print_strings test_print_int_arrays test_print_char_arrays # We used to do the runto main here. test_print_string_constants test_print_array_constants test_printf } } else { fail "C print command tests suppressed" }