summaryrefslogtreecommitdiffstats
path: root/runtime/tests/maps/setadd.c
diff options
context:
space:
mode:
authorhunt <hunt>2005-10-26 08:08:53 +0000
committerhunt <hunt>2005-10-26 08:08:53 +0000
commitd06fc47a2be5a31f770595211a719fe0e6c0cc13 (patch)
tree980f15972175169238b8f4942b261d9e72943a60 /runtime/tests/maps/setadd.c
parent1dcb36dc4ad16c1b842d0961cd6a5d8e57c97b87 (diff)
downloadsystemtap-steved-d06fc47a2be5a31f770595211a719fe0e6c0cc13.tar.gz
systemtap-steved-d06fc47a2be5a31f770595211a719fe0e6c0cc13.tar.xz
systemtap-steved-d06fc47a2be5a31f770595211a719fe0e6c0cc13.zip
2005-10-26 Martin Hunt <hunt@redhat.com>
* maps/map.test: Update with results for new tests. * maps/*2.c: Tests for the new API. * maps/ist.c: Renamed isx.c. * maps/setadd.c: New test of adding and setting.
Diffstat (limited to 'runtime/tests/maps/setadd.c')
-rw-r--r--runtime/tests/maps/setadd.c213
1 files changed, 213 insertions, 0 deletions
diff --git a/runtime/tests/maps/setadd.c b/runtime/tests/maps/setadd.c
new file mode 100644
index 00000000..44687528
--- /dev/null
+++ b/runtime/tests/maps/setadd.c
@@ -0,0 +1,213 @@
+#include "runtime.h"
+
+/* verify correct set and add behavior */
+#define VALUE_TYPE INT64
+#define KEY1_TYPE INT64
+#define STP_MAP_II
+#include "map-gen.c"
+
+#define VALUE_TYPE STRING
+#define KEY1_TYPE INT64
+#include "map-gen.c"
+
+#define VALUE_TYPE STAT
+#define KEY1_TYPE INT64
+#include "map-gen.c"
+
+#include "map.c"
+
+int main ()
+{
+ int i, res;
+ MAP mapi = _stp_map_new_ii(4);
+ MAP maps = _stp_map_new_is(4);
+ MAP mapx = _stp_map_new_ix(4, HIST_NONE);
+
+ /* use add to set initial values */
+ for (i = 1; i < 5; i++)
+ {
+ res = _stp_map_add_ii (mapi, i, i*i);
+ if (res)
+ printf("ERROR: got result of %d when expected 0\n", res);
+ }
+ _stp_map_print(mapi,"mapi[%1d] = %d");
+
+ for (i = 1; i < 5; i++)
+ {
+ char buf[32];
+ sprintf(buf, "value of %d", i);
+ res = _stp_map_add_is (maps, i, buf);
+ if (res)
+ printf("ERROR: got result of %d when expected 0\n", res);
+ }
+ _stp_map_print(maps,"maps[%1d] = %s");
+
+ for (i = 1; i < 5; i++)
+ {
+ res = _stp_map_add_ix (mapx, i, i);
+ if (res)
+ printf("ERROR: got result of %d when expected 0\n", res);
+ }
+ _stp_map_print (mapx, "mapx[%1d] = count:%C sum:%S avg:%A min:%m max:%M");
+
+ /*************** now add some values *******************/
+
+ for (i = 1; i < 5; i++)
+ {
+ res = _stp_map_add_ii (mapi, i, i*i);
+ if (res)
+ printf("ERROR: got result of %d when expected 0\n", res);
+ }
+ _stp_map_print(mapi,"mapi[%1d] = %d");
+
+ for (i = 1; i < 5; i++)
+ {
+ char buf[32];
+ sprintf(buf, "*****", i);
+ res = _stp_map_add_is (maps, i, buf);
+ if (res)
+ printf("ERROR: got result of %d when expected 0\n", res);
+ }
+ _stp_map_print(maps,"maps[%1d] = %s");
+
+ for (i = 1; i < 5; i++)
+ {
+ res = _stp_map_add_ix (mapx, i, i+i);
+ if (res)
+ printf("ERROR: got result of %d when expected 0\n", res);
+ }
+ _stp_map_print (mapx, "mapx[%1d] = count:%C sum:%S avg:%A min:%m max:%M");
+
+ /*************** now add 0 *******************/
+ printf ("Adding 0\n");
+ for (i = 1; i < 5; i++)
+ {
+ res = _stp_map_add_ii (mapi, i, 0);
+ if (res)
+ printf("ERROR: got result of %d when expected 0\n", res);
+ }
+ _stp_map_print(mapi,"mapi[%1d] = %d");
+
+ for (i = 1; i < 5; i++)
+ {
+ res = _stp_map_add_is (maps, i, "");
+ if (res)
+ printf("ERROR: got result of %d when expected 0\n", res);
+ }
+ for (i = 1; i < 5; i++)
+ {
+ res = _stp_map_add_is (maps, i, 0);
+ if (res)
+ printf("ERROR: got result of %d when expected 0\n", res);
+ }
+ _stp_map_print(maps,"maps[%1d] = %s");
+
+ for (i = 1; i < 5; i++)
+ {
+ res = _stp_map_add_ix (mapx, i, 0);
+ if (res)
+ printf("ERROR: got result of %d when expected 0\n", res);
+ }
+ _stp_map_print (mapx, "mapx[%1d] = count:%C sum:%S avg:%A min:%m max:%M");
+
+ /*************** now set to 0 (clear) *******************/
+ printf ("setting everything to 0\n");
+ for (i = 1; i < 5; i++)
+ {
+ res = _stp_map_set_ii (mapi, i, 0);
+ if (res)
+ printf("ERROR: got result of %d when expected 0\n", res);
+ }
+ _stp_map_print(mapi,"mapi[%1d] = %d");
+
+ for (i = 1; i < 5; i++)
+ {
+ res = _stp_map_set_is (maps, i, 0);
+ if (res)
+ printf("ERROR: got result of %d when expected 0\n", res);
+ }
+ _stp_map_print(maps,"maps[%1d] = %s");
+
+ for (i = 1; i < 5; i++)
+ {
+ res = _stp_map_set_ix (mapx, i, 0);
+ if (res)
+ printf("ERROR: got result of %d when expected 0\n", res);
+ }
+ _stp_map_print (mapx, "mapx[%1d] = count:%C sum:%S avg:%A min:%m max:%M");
+
+ /*************** now add 0 *******************/
+ printf ("Adding 0\n");
+ for (i = 1; i < 5; i++)
+ {
+ res = _stp_map_add_ii (mapi, i, 0);
+ if (res)
+ printf("ERROR: got result of %d when expected 0\n", res);
+ }
+ _stp_map_print(mapi,"mapi[%1d] = %d");
+
+ for (i = 1; i < 5; i++)
+ {
+ res = _stp_map_add_is (maps, i, 0);
+ if (res)
+ printf("ERROR: got result of %d when expected 0\n", res);
+ }
+ for (i = 1; i < 5; i++)
+ {
+ res = _stp_map_add_is (maps, i, 0);
+ if (res)
+ printf("ERROR: got result of %d when expected 0\n", res);
+ }
+ _stp_map_print(maps,"maps[%1d] = %s");
+
+ for (i = 1; i < 5; i++)
+ {
+ res = _stp_map_add_ix (mapx, i, 0);
+ if (res)
+ printf("ERROR: got result of %d when expected 0\n", res);
+ }
+ _stp_map_print (mapx, "mapx[%1d] = count:%C sum:%S avg:%A min:%m max:%M");
+
+
+ /*************** now set to -1 *******************/
+ printf ("setting everything to -1\n");
+ for (i = 1; i < 5; i++)
+ {
+ res = _stp_map_set_ii (mapi, i, -1);
+ if (res)
+ printf("ERROR: got result of %d when expected 0\n", res);
+ }
+ _stp_map_print(mapi,"mapi[%1d] = %d");
+
+ for (i = 1; i < 5; i++)
+ {
+ res = _stp_map_set_ix (mapx, i, -1);
+ if (res)
+ printf("ERROR: got result of %d when expected 0\n", res);
+ }
+ _stp_map_print (mapx, "mapx[%1d] = count:%C sum:%S avg:%A min:%m max:%M");
+
+ /*************** now add -1 *******************/
+ printf ("adding -1\n");
+ for (i = 1; i < 5; i++)
+ {
+ res = _stp_map_add_ii (mapi, i, -1);
+ if (res)
+ printf("ERROR: got result of %d when expected 0\n", res);
+ }
+ _stp_map_print(mapi,"mapi[%1d] = %d");
+
+ for (i = 1; i < 5; i++)
+ {
+ res = _stp_map_add_ix (mapx, i, -1);
+ if (res)
+ printf("ERROR: got result of %d when expected 0\n", res);
+ }
+ _stp_map_print (mapx, "mapx[%1d] = count:%C sum:%S avg:%A min:%m max:%M");
+
+
+ _stp_map_del (mapi);
+ _stp_map_del (maps);
+ _stp_map_del (mapx);
+ return 0;
+}