summaryrefslogtreecommitdiffstats
path: root/runtime/tests/agg/count.c
diff options
context:
space:
mode:
authorhunt <hunt>2005-06-18 07:12:41 +0000
committerhunt <hunt>2005-06-18 07:12:41 +0000
commitef0e92b0335077884edd5ac9997a203bec1839b0 (patch)
tree8247b545c18d83a3b580744b8689a3227a1a364d /runtime/tests/agg/count.c
parent96124157d812d71cbdfd018e984dc42bed17d072 (diff)
downloadsystemtap-steved-ef0e92b0335077884edd5ac9997a203bec1839b0.tar.gz
systemtap-steved-ef0e92b0335077884edd5ac9997a203bec1839b0.tar.xz
systemtap-steved-ef0e92b0335077884edd5ac9997a203bec1839b0.zip
Added aggregation tests. Fixed other for latest runtime changes.
Diffstat (limited to 'runtime/tests/agg/count.c')
-rw-r--r--runtime/tests/agg/count.c72
1 files changed, 72 insertions, 0 deletions
diff --git a/runtime/tests/agg/count.c b/runtime/tests/agg/count.c
new file mode 100644
index 00000000..8e674d1e
--- /dev/null
+++ b/runtime/tests/agg/count.c
@@ -0,0 +1,72 @@
+#include "runtime.h"
+
+/* test of Counters */
+#include "counter.c"
+
+int main ()
+{
+ int i;
+ Counter cnt1 = _stp_counter_init();
+ Counter cnt2 = _stp_counter_init();
+
+ /* testing _stp_counter_add(). These will only be correct if _stp_counter_init() */
+ /* set all values to 0 and add works properly. */
+ for (_processor_number = 0; _processor_number < NR_CPUS; _processor_number++) {
+ _stp_counter_add (cnt1, _processor_number + 1);
+ _stp_counter_add (cnt2, _processor_number + 10);
+ }
+
+ /* testing _stp_counter_get_cpu() */
+ for (i = 0; i < NR_CPUS; i++) {
+ printf ("cnt1[%d] = %lld\n", i, _stp_counter_get_cpu(cnt1, i, 0));
+ printf ("cnt2[%d] = %lld\n", i, _stp_counter_get_cpu(cnt2, i, 0));
+ }
+
+ /* testing _stp_counter_get() */
+ printf ("cnt1 = %d\n", _stp_counter_get(cnt1, 0));
+ printf ("cnt2 = %d\n", _stp_counter_get(cnt2, 0));
+ printf ("--------------------\n");
+
+ /* testing _stp_counter_add() */
+ for (_processor_number = 0; _processor_number < NR_CPUS; _processor_number++) {
+ _stp_counter_add (cnt1, _processor_number + 1);
+ _stp_counter_add (cnt2, _processor_number + 10);
+ }
+
+ for (i = 0; i < NR_CPUS; i++) {
+ printf ("cnt1[%d] = %lld\n", i, _stp_counter_get_cpu(cnt1, i, 0));
+ printf ("cnt2[%d] = %lld\n", i, _stp_counter_get_cpu(cnt2, i, 0));
+ }
+ printf ("cnt1 = %d\n", _stp_counter_get(cnt1, 1));
+ printf ("cnt2 = %d\n", _stp_counter_get(cnt2, 1));
+
+ printf ("--------------------\n");
+
+ for (_processor_number = 0; _processor_number < NR_CPUS; _processor_number++) {
+ _stp_counter_add (cnt1, _processor_number * _processor_number);
+ _stp_counter_add (cnt2, _processor_number * _processor_number * _processor_number);
+ }
+
+ printf ("cnt1 = %d\n", _stp_counter_get(cnt1, 1));
+ printf ("cnt2 = %d\n", _stp_counter_get(cnt2, 1));
+ printf ("cnt1 = %d\n", _stp_counter_get(cnt1, 0));
+ printf ("cnt2 = %d\n", _stp_counter_get(cnt2, 0));
+ printf ("--------------------\n");
+
+
+ for (_processor_number = 0; _processor_number < NR_CPUS; _processor_number++) {
+ _stp_counter_add (cnt1, _processor_number * _processor_number);
+ _stp_counter_add (cnt2, _processor_number * _processor_number * _processor_number);
+ }
+
+ for (i = 0; i < NR_CPUS; i++) {
+ printf ("cnt1[%d] = %lld\n", i, _stp_counter_get_cpu(cnt1, i, 0));
+ printf ("cnt2[%d] = %lld\n", i, _stp_counter_get_cpu(cnt2, i, 0));
+ }
+ printf ("cnt1 = %d\n", _stp_counter_get(cnt1, 0));
+ printf ("cnt2 = %d\n", _stp_counter_get(cnt2, 0));
+
+ _stp_counter_free (cnt1);
+ _stp_counter_free (cnt2);
+ return 0;
+}