package require tcltest namespace import -force tcltest::* cd $tcltest::testsDirectory set CFLAGS "-Os" set KPATH "/lib/modules/[exec uname -r]/build/include" set MPATH "/lib/modules/[exec uname -r]/build/include/asm/mach-default" set PATH "../../user" test ii {Test of int64 keys and int64 values} -setup { exec gcc $CFLAGS -I $KPATH -I $PATH -I $MPATH -o test ii.c } -body { exec ./test } -result {map[1]=2 map[1] = 2 map[1] = 2 map[3] = 4 map[1] = 2 map[3] = 4 map[1] = 2 map[3] = 4 map[1] = 2 map[3] = 4 map[0]=0 map[1] = 2 map[3] = 4 map[5] = 6 map[6] = 106 map[7] = 107 map[8] = 108 map[9] = 109 map[5] = 1005 map[382] = 1382 map[526] = 1526 map[903] = 1903 map[5] = 1005 map[526] = 1526 map[903] = 1903 map[526] = 1526 map[903] = 1903 map[526] = 1526 } test is {Test of int64 keys and string values} -setup { exec gcc $CFLAGS -I $KPATH -I $PATH -I $MPATH -o test is.c } -body { exec ./test } -result {map[1]=one map[1] = one map[1] = one map[3] = three map[1] = one map[3] = three map[1] = one map[3] = three map[1] = one map[3] = three map[0]=0 map[1] = one map[3] = three map[5] = five map[1] = one map[3] = three map[5] = map[6] = value of 6 map[7] = value of 7 map[8] = value of 8 map[9] = value of 9 map[5] = 1005 map[382] = 1382 map[526] = 1526 map[903] = 1903 map[5] = 1005 map[526] = 1526 map[903] = 1903 map[526] = 1526 map[903] = 1903 map[526] = 1526 } test si {Test of string keys and int64 values} -setup { exec gcc $CFLAGS -I $KPATH -I $PATH -I $MPATH -o test si.c } -body { exec ./test } -result {map[Ohio]=1 map[Ohio] = 1 map[Ohio] = 1 map[Washington] = 2 map[Ohio] = 1 map[Washington] = 2 map[Ohio] = 1 map[Washington] = 2 map[Ohio] = 1 map[Washington] = 2 map[0]=0 map[Ohio] = 1 map[Washington] = 2 map[California] = 3 map[Ohio] = 1 map[Washington] = 2 map[California] = 3 map[] = 7777 map[Ohio] = 1 map[Washington] = 2 map[California] = 3 map[] = 8888 map[String 6] = 106 map[String 7] = 107 map[String 8] = 108 map[String 9] = 109 map[5] = 1005 map[382] = 1382 map[526] = 1526 map[903] = 1903 map[5] = 1005 map[526] = 1526 map[903] = 1903 map[526] = 1526 map[903] = 1903 map[526] = 1526 } test ist {Test of int64 keys and stat values} -setup { exec gcc $CFLAGS -I $KPATH -I $PATH -I $MPATH -o test ist.c } -body { exec ./test } -result {map[3] = count:49600 sum:3288450 avg:66 min:0 max:99 value |-------------------------------------------------- count 0 |@@ 460 10 |@@@@@@@ 1460 20 |@@@@@@@@@@@@ 2460 30 |@@@@@@@@@@@@@@@@@@ 3460 40 |@@@@@@@@@@@@@@@@@@@@@@@ 4460 50 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5460 60 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6460 70 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 7460 80 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 8460 90 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 9460 map[2] = count:100 sum:2025 avg:20 min:0 max:81 value |-------------------------------------------------- count 0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 42 10 |@@@@@@@@@@@@@@@@@ 17 20 |@@@@@@@@@@@@@ 13 30 |@@@@@@@@@ 9 40 |@@@@@@@@@ 9 50 |@@@@ 4 60 |@@@ 3 70 |@@ 2 80 |@ 1 90 | 0 map[1] = count:45 sum:2850 avg:63 min:10 max:90 value |-------------------------------------------------- count 0 | 0 10 |@ 1 20 |@@ 2 30 |@@@ 3 40 |@@@@ 4 50 |@@@@@ 5 60 |@@@@@@ 6 70 |@@@@@@@ 7 80 |@@@@@@@@ 8 90 |@@@@@@@@@ 9 map2[1] = count:16384 sum:1040384 avg:63 min:0 max:127 value |-------------------------------------------------- count 0 | 128 1 | 128 2 |@ 256 4 |@@@ 512 8 |@@@@@@ 1024 16 |@@@@@@@@@@@@ 2048 32 |@@@@@@@@@@@@@@@@@@@@@@@@ 4096 64 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 8192 128 | 0 256 | 0 512 | 0 map2[2] = count:1048576 sum:536346624 avg:511 min:0 max:1023 value |-------------------------------------------------- count 0 | 1024 1 | 1024 2 | 2048 4 | 4096 8 | 8192 16 |@ 16384 32 |@@@ 32768 64 |@@@@@@ 65536 128 |@@@@@@@@@@@@ 131072 256 |@@@@@@@@@@@@@@@@@@@@@@@@ 262144 512 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 524288 } test iiss {Test of int64,int64,string keys and string values} -setup { exec gcc $CFLAGS -I $KPATH -I $PATH -I $MPATH -o test iiss.c } -body { exec ./test } -result {map[1, 2, Ohio] = Columbus map[3, 4, California] = Sacramento map[5, 6, Washington] = Seattle map[7, 8, Oregon] = Salem map[3, 4, California] = Sacramento map[5, 6, Washington] = Seattle map[7, 8, Oregon] = Salem map[-9, -10, Nevada] = Carson City map[3, 4, California] = Sacramento map[5, 6, Washington] = Olymp map[7, 8, Oregon] = Salem map[-9, -10, Nevada] = Carson City map[3, 4, California] = Sacramento map[5, 6, Washington] = Olympia map[7, 8, Oregon] = Salem map[-9, -10, Nevada] = Carson City map[3, 4, California] = Sacramento map[5, 6, Washington] = Olympia map[7, 8, Oregon] = Salem map[3, 4, California] = Sacramento map[5, 6, Washington] = Olympia map[7, 8, Oregon] = Salem map[0, 0, ] = XX } test test_list_int64 {Test of lists of int64s} -setup { exec gcc $CFLAGS -I $KPATH -I $PATH -I $MPATH -o test test_list_int64.c } -body { exec ./test } -result {list[0] = 0 list[1] = 1 list[2] = 2 list[3] = 3 list[4] = 4 list[5] = 5 list[6] = 6 list[7] = 7 list[8] = 8 list[9] = 9 size is 10 list[0] = 0 list[1] = 1 list[2] = 2 list[3] = 3 list[4] = 4 list[5] = 5 list[6] = 6 list[7] = 7 list[8] = 8 list[9] = 9 newlist[0] = 50 newlist[1] = 51 newlist[2] = 52 newlist[3] = 53 newlist[4] = 54 } test test_list_string {Test of lists of strings} -setup { exec gcc $CFLAGS -I $KPATH -I $PATH -I $MPATH -o test test_list_string.c } -body { exec ./test } -result {list[0] = Item0 list[1] = Item1 list[2] = Item2 list[3] = Item3 list[4] = Item4 list[5] = Item5 list[6] = Item6 list[7] = Item7 list[8] = Item8 list[9] = Item9 size is 10 list[0] = Item0 list[1] = Item1 list[2] = Item2 list[3] = Item3 list[4] = Item4 list[5] = Item5 list[6] = Item6 list[7] = Item7 list[8] = Item8 list[9] = Item9 newlist[0] = Item50 newlist[1] = Item51 newlist[2] = Item52 newlist[3] = Item53 newlist[4] = Item54 } test map_format {Torture test of map formatting} -setup { exec gcc $CFLAGS -I $KPATH -I $PATH -I $MPATH -o test map_format.c } -body { exec ./test } -result {Columbus -> mapiis 1 2 Ohio Sacramento -> mapiis 3 4 California Olympia -> mapiis 5 6 Washington Salem -> mapiis 7 8 Oregon Columbus % Ohio Sacramento % California Olympia % Washington Salem % Oregon Columbus -> mapiis Sacramento -> mapiis Olympia -> mapiis Salem -> mapiis The capitol of Riga is Latvia and the nerd population is 212063400820736 The capitol of Sofia is Bulgaria and the nerd population is -2400999087387945352 The capitol of Valletta is Malta and the nerd population is 1 The capitol of Nicosia is Cyprus and the nerd population is -1 The capitol of Riga is Latvia and the nerd population is c0dedbad0000 The capitol of Sofia is Bulgaria and the nerd population is deadf00d12345678 The capitol of Valletta is Malta and the nerd population is 1 The capitol of Nicosia is Cyprus and the nerd population is ffffffffffffffff The capitol of Riga is Latvia and the nerd population is C0DEDBAD0000 The capitol of Sofia is Bulgaria and the nerd population is DEADF00D12345678 The capitol of Valletta is Malta and the nerd population is 1 The capitol of Nicosia is Cyprus and the nerd population is FFFFFFFFFFFFFFFF Bogons per packet for Riga count:49600 sum:3288450 avg:66 min:0 max:99 value |-------------------------------------------------- count 0 |@@ 460 10 |@@@@@@@ 1460 20 |@@@@@@@@@@@@ 2460 30 |@@@@@@@@@@@@@@@@@@ 3460 40 |@@@@@@@@@@@@@@@@@@@@@@@ 4460 50 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 5460 60 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 6460 70 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 7460 80 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 8460 90 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 9460 Bogons per packet for Sofia count:100 sum:2025 avg:20 min:0 max:81 value |-------------------------------------------------- count 0 |@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 42 10 |@@@@@@@@@@@@@@@@@ 17 20 |@@@@@@@@@@@@@ 13 30 |@@@@@@@@@ 9 40 |@@@@@@@@@ 9 50 |@@@@ 4 60 |@@@ 3 70 |@@ 2 80 |@ 1 90 | 0 Bogons per packet for Valletta count:45 sum:2850 avg:63 min:10 max:90 value |-------------------------------------------------- count 0 | 0 10 |@ 1 20 |@@ 2 30 |@@@ 3 40 |@@@@ 4 50 |@@@@@ 5 60 |@@@@@@ 6 70 |@@@@@@@ 7 80 |@@@@@@@@ 8 90 |@@@@@@@@@ 9 49600 was the count for Riga, Latvia 100 was the count for Sofia, Bulgaria 45 was the count for Valletta, Malta mapsst[ Riga, Latvia] = 322D82 mapsst[ Sofia, Bulgaria] = 7E9 mapsst[ Valletta, Malta] = B22} test map_issii {Test of int64,string,string,int64 keys and int64 values} -setup { exec gcc $CFLAGS -I $KPATH -I $PATH -I $MPATH -o test issii.c } -body { exec ./test } -result {map[1, Boston, MA, 1970] = 5224303 map[2, Boston, MA, 2000] = 6057826 map[3, Chicago, IL, 2000] = 8272768 1. The population of Boston, MA in 1970 was 5224303 2. The population of Boston, MA in 2000 was 6057826 3. The population of Chicago, IL in 2000 was 8272768 } exec rm test cleanupTests