diff options
author | hunt <hunt> | 2005-11-09 06:55:42 +0000 |
---|---|---|
committer | hunt <hunt> | 2005-11-09 06:55:42 +0000 |
commit | df27664107205cccec6eacb890d6800db7ee95cc (patch) | |
tree | f297ed4ad7011eeca4da1f58474d27cb151484f2 /runtime/tests/maps/is.c | |
parent | fa3f3d4d2e3d173750685ff89a0f53f8c8a2310c (diff) | |
download | systemtap-steved-df27664107205cccec6eacb890d6800db7ee95cc.tar.gz systemtap-steved-df27664107205cccec6eacb890d6800db7ee95cc.tar.xz systemtap-steved-df27664107205cccec6eacb890d6800db7ee95cc.zip |
2005-11-08 Martin Hunt <hunt@redhat.com>
* maps/map.test: Remove old map API tests.
* maps/ii2.c: Renamed ii.c.
* maps/iiss2.c: Renamed iiss.c.
* maps/is2.c: Renamed is.c.
* maps/issii2.c: Renamed issii.c.
* maps/isx2.c: Renamed isx.c.
* maps/map_format2.c: Renamed map_format.c.
* maps/si2.c: Renamed si.c.
* maps/keys.c: Deleted
* maps/test_list_int64.c: Deleted.
* maps/test_list_string.c: Deleted.
* maps/sort.c: Update to use new map API.
Diffstat (limited to 'runtime/tests/maps/is.c')
-rw-r--r-- | runtime/tests/maps/is.c | 104 |
1 files changed, 58 insertions, 46 deletions
diff --git a/runtime/tests/maps/is.c b/runtime/tests/maps/is.c index 6b4f22b7..3008f702 100644 --- a/runtime/tests/maps/is.c +++ b/runtime/tests/maps/is.c @@ -1,66 +1,56 @@ #include "runtime.h" /* test of maps with keys of int64 and value of string */ -#define NEED_STRING_VALS #define KEY1_TYPE INT64 -#include "map-keys.c" +#define VALUE_TYPE STRING +#include "map-gen.c" #include "map.c" int main () { - MAP map = _stp_map_new_int64(4, STRING); + MAP map = _stp_map_new_is(4); map->wrap = 1; /* map[1] = one */ - _stp_map_key_int64 (map, 1); - _stp_map_set_str (map, "one"); - printf ("map[%lld]=%s\n", key1int(map->key), _stp_map_get_str(map)); + _stp_map_set_is (map, 1, "one"); + + printf ("map[1]=%s\n", _stp_map_get_is(map,1)); _stp_map_print(map,"map[%1d] = %s"); /* map[3] = "three" */ - /* try it with macros this time */ - _stp_map_key (map, 3); - _stp_map_set (map, "three"); + _stp_map_set_is (map, 3, "three"); _stp_map_print(map,"map[%1d] = %s"); - /* now try to confuse things */ /* These won't do anything useful, but shouldn't crash */ - _stp_map_key_int64 (map, 0); - _stp_map_key_del (map); - _stp_map_key_int64 (map, 77); - _stp_map_key_del (map); - _stp_map_key_del (map); - _stp_map_set_str (map,"1000000"); - + _stp_map_set_is(0,1,"foobar"); + _stp_map_set_is(map,0,0); + _stp_map_set_is(map,100,0); _stp_map_print(map,"map[%1d] = %s"); /* create and delete a key */ - _stp_map_key_int64 (map, 1024); - _stp_map_set_str (map, "2048"); - _stp_map_key_int64 (map, 1024); - _stp_map_key_del (map); - + _stp_map_set_is (map, 1024, "2048"); + _stp_map_set_is (map, 1024, 0); _stp_map_print(map,"map[%1d] = %s"); /* create and delete a key again*/ - _stp_map_key_int64 (map, 1024); - _stp_map_set_str (map, "2048"); - _stp_map_key_del (map); - + _stp_map_set_is (map, 1024, "2048"); + _stp_map_print(map,"map[%1d] = %s"); + _stp_map_set_is (map, 1024, 0); _stp_map_print(map,"map[%1d] = %s"); - /* check that unset values are 0 */ - _stp_map_key_int64 (map, 5); - printf ("map[%lld]=%ld\n", key1int(map->key), (long)_stp_map_get_str(map)); + + /* check that unset values are "" */ + if (*_stp_map_get_is(map, 5)) + printf("ERROR: unset key has nonempty value\n"); /* map[5] = "five" */ - _stp_map_set (map, "five"); + _stp_map_set_is (map, 5, "five"); _stp_map_print(map,"map[%1d] = %s"); - /* test empty string */ - _stp_map_set (map, ""); + /* test empty string (should delete)*/ + _stp_map_set_is (map, 5, ""); _stp_map_print(map,"map[%1d] = %s"); @@ -70,38 +60,60 @@ int main () { char buf[32]; sprintf(buf, "value of %d", i); - _stp_map_key_int64 (map, i); - _stp_map_set_str (map, buf); + _stp_map_set_is (map, i, buf); } - _stp_map_print(map,"map[%1d] = %s"); /* 5, 382, 526, and 903 all hash to the same value (23) */ /* use them to test the hash chain */ - _stp_map_key_int64 (map, 5); _stp_map_set_str (map, "1005"); - _stp_map_key_int64 (map, 382); _stp_map_set_str (map, "1382"); - _stp_map_key_int64 (map, 526); _stp_map_set_str (map, "1526"); - _stp_map_key_int64 (map, 903); _stp_map_set_str (map, "1903"); + _stp_map_set_is (map, 5, "1005"); + _stp_map_set_is (map, 382, "1382"); + _stp_map_set_is (map, 526, "1526"); + _stp_map_set_is (map, 903, "1903"); _stp_map_print(map,"map[%1d] = %s"); /* now delete all 4 nodes, one by one */ - _stp_map_key_int64 (map, 382); _stp_map_key_del (map); - + _stp_map_set_is (map, 382, 0); _stp_map_print(map,"map[%1d] = %s"); - _stp_map_key_int64 (map, 5); _stp_map_key_del (map); - + _stp_map_set_is (map, 5, 0); _stp_map_print(map,"map[%1d] = %s"); - _stp_map_key_int64 (map, 903); _stp_map_key_del (map); + _stp_map_set_is (map, 903, 0); + _stp_map_print(map,"map[%1d] = %s"); + _stp_map_set_is (map, 526, 0); _stp_map_print(map,"map[%1d] = %s"); - _stp_map_key_int64 (map, 526); _stp_map_key_del (map); + /* test overflow errors */ + map->wrap = 0; + for (i = 6; i < 10; i++) + { + char buf[32]; + sprintf(buf, "value of %d", i); + _stp_map_set_is (map, i, buf); + } + for (i = 6; i < 10; i++) + { + char buf[32]; + int res; + sprintf(buf, "new value of %d", i); + res = _stp_map_set_is (map, i, buf); + if (res) + printf("WARNING: During wrap test, got result of %d when expected 0\n", res); + } + for (i = 16; i < 20; i++) + { + char buf[32]; + int res; + sprintf(buf, "BAD value of %d", i); + res = _stp_map_set_is (map, i, buf); + if (res != -1) + printf("WARNING: During wrap test, got result of %d when expected -1\n", res); + } _stp_map_print(map,"map[%1d] = %s"); - _stp_map_del (map); return 0; } |