summaryrefslogtreecommitdiffstats
path: root/runtime/tests/maps/map.test
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/tests/maps/map.test')
-rw-r--r--runtime/tests/maps/map.test461
1 files changed, 458 insertions, 3 deletions
diff --git a/runtime/tests/maps/map.test b/runtime/tests/maps/map.test
index 118cb75e..d827a207 100644
--- a/runtime/tests/maps/map.test
+++ b/runtime/tests/maps/map.test
@@ -9,6 +9,7 @@ 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 {
+ puts "gcc $CFLAGS -I $KPATH -I $PATH -I $MPATH -o test ii.c"
exec gcc $CFLAGS -I $KPATH -I $PATH -I $MPATH -o test ii.c
} -body {
exec ./test
@@ -165,8 +166,81 @@ 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
+test isx {Test of int64 keys and stat values} -setup {
+ exec gcc $CFLAGS -I $KPATH -I $PATH -I $MPATH -o test isx.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 isx2 {Test of int64 keys and stat values} -setup {
+ exec gcc $CFLAGS -I $KPATH -I $PATH -I $MPATH -o test isx2.c
} -body {
exec ./test
} -result {map[3] = count:49600 sum:3288450 avg:66 min:0 max:99
@@ -431,6 +505,91 @@ mapsst[ Riga, Latvia] = 322D82
mapsst[ Sofia, Bulgaria] = 7E9
mapsst[ Valletta, Malta] = B22}
+test map_format2 {Torture test of map formatting} -setup {
+ exec gcc $CFLAGS -I $KPATH -I $PATH -I $MPATH -o test map_format2.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
@@ -591,6 +750,302 @@ Valletta is the capitol of Malta and the nerd population is 1
Nicosia is the capitol of Cyprus and the nerd population is -1
}
-exec rm test
+test ii2 {Test of int64 keys and int64 values} -setup {
+ exec gcc $CFLAGS -I $KPATH -I $PATH -I $MPATH -o test ii2.c
+} -body {
+ exec ./test
+} -result {map[1]=2
+map[1] = 2
+map[3] = 4
+
+map[1] = 2
+map[3] = 4
+
+0 (should be 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
+
+
+map[33] = 3333
+map[44] = 4444
+map[55] = 5555
+map[66] = 6666
+
+
+map[1970] = 1799
+}
+
+test is2 {Test of int64 keys and string values} -setup {
+ exec gcc $CFLAGS -I $KPATH -I $PATH -I $MPATH -o test is2.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[1024] = 2048
+
+map[1] = one
+map[3] = three
+
+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
+
+
+map[6] = new value of 6
+map[7] = new value of 7
+map[8] = new value of 8
+map[9] = new value of 9
+}
+
+test si2 {Test of string keys and int64 values} -setup {
+ exec gcc $CFLAGS -I $KPATH -I $PATH -I $MPATH -o test si2.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[1024] = 2048
+
+map[Ohio] = 1
+map[Washington] = 2
+
+map[Ohio] = 1
+map[Washington] = 2
+map[1024] = 2048
+
+map[Ohio] = 1
+map[Washington] = 2
+
+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[Ohio] = 1
+map[Washington] = 2
+map[California] = 3
+
+map[String 6] = 106
+map[String 7] = 107
+map[String 8] = 108
+map[String 9] = 109
+
+map[String 6] = 106
+map[String 7] = 107
+map[String 8] = 108
+map[String 9] = 109
+
+map[String 6] = 6106
+map[String 7] = 7107
+map[String 8] = 8108
+map[String 9] = 9109
+
+map[String 6] = 6
+map[String 7] = 7
+map[String 8] = 8
+map[String 9] = 9
+
+}
+
+test iiss2 {Test of int64,int64,string keys and string values} -setup {
+ exec gcc $CFLAGS -I $KPATH -I $PATH -I $MPATH -o test iiss2.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] = Olympis
+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, ] =
+}
+
+test setadd {Test of setting and adding values} -setup {
+ exec gcc $CFLAGS -I $KPATH -I $PATH -I $MPATH -o test setadd.c
+} -body {
+ exec ./test
+} -result {mapi[1] = 1
+mapi[2] = 4
+mapi[3] = 9
+mapi[4] = 16
+
+maps[1] = value of 1
+maps[2] = value of 2
+maps[3] = value of 3
+maps[4] = value of 4
+
+mapx[1] = count:1 sum:1 avg:1 min:1 max:1
+mapx[2] = count:1 sum:2 avg:2 min:2 max:2
+mapx[3] = count:1 sum:3 avg:3 min:3 max:3
+mapx[4] = count:1 sum:4 avg:4 min:4 max:4
+
+mapi[1] = 2
+mapi[2] = 8
+mapi[3] = 18
+mapi[4] = 32
+
+maps[1] = value of 1*****
+maps[2] = value of 2*****
+maps[3] = value of 3*****
+maps[4] = value of 4*****
+
+mapx[1] = count:2 sum:3 avg:1 min:1 max:2
+mapx[2] = count:2 sum:6 avg:3 min:2 max:4
+mapx[3] = count:2 sum:9 avg:4 min:3 max:6
+mapx[4] = count:2 sum:12 avg:6 min:4 max:8
+
+Adding 0
+mapi[1] = 2
+mapi[2] = 8
+mapi[3] = 18
+mapi[4] = 32
+
+maps[1] = value of 1*****
+maps[2] = value of 2*****
+maps[3] = value of 3*****
+maps[4] = value of 4*****
+
+mapx[1] = count:3 sum:3 avg:1 min:0 max:2
+mapx[2] = count:3 sum:6 avg:2 min:0 max:4
+mapx[3] = count:3 sum:9 avg:3 min:0 max:6
+mapx[4] = count:3 sum:12 avg:4 min:0 max:8
+
+setting everything to 0
+
+
+
+Adding 0
+
+
+mapx[1] = count:1 sum:0 avg:0 min:0 max:0
+mapx[2] = count:1 sum:0 avg:0 min:0 max:0
+mapx[3] = count:1 sum:0 avg:0 min:0 max:0
+mapx[4] = count:1 sum:0 avg:0 min:0 max:0
+
+setting everything to -1
+mapi[1] = -1
+mapi[2] = -1
+mapi[3] = -1
+mapi[4] = -1
+
+mapx[1] = count:1 sum:-1 avg:-1 min:-1 max:-1
+mapx[2] = count:1 sum:-1 avg:-1 min:-1 max:-1
+mapx[3] = count:1 sum:-1 avg:-1 min:-1 max:-1
+mapx[4] = count:1 sum:-1 avg:-1 min:-1 max:-1
+
+adding -1
+mapi[1] = -2
+mapi[2] = -2
+mapi[3] = -2
+mapi[4] = -2
+
+mapx[1] = count:2 sum:-2 avg:-1 min:-1 max:-1
+mapx[2] = count:2 sum:-2 avg:-1 min:-1 max:-1
+mapx[3] = count:2 sum:-2 avg:-1 min:-1 max:-1
+mapx[4] = count:2 sum:-2 avg:-1 min:-1 max:-1
+}
+
+
+
+
+catch {exec rm test}
cleanupTests