diff options
Diffstat (limited to 'runtime/tests/agg/count.c')
-rw-r--r-- | runtime/tests/agg/count.c | 72 |
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; +} |