case HIST_NONE:
pmap = _stp_pmap_new_hstat (max_entries, wrap,
sizeof(struct KEYSYM(map_node)));
- if (pmap) {
- pmap->bit_shift = bit_shift;
- pmap->stat_ops = stat_ops;
- }
break;
case HIST_LOG:
pmap = _stp_pmap_new_hstat_log (max_entries, wrap,
pmap = NULL;
}
+ if (pmap) {
+ pmap->bit_shift = bit_shift;
+ pmap->stat_ops = stat_ops;
+ }
return pmap;
}
--- /dev/null
+set test "PR31740"
+set testpath "$srcdir/$subdir"
+set work_dir [pwd]
+
+if {! [installtest_p]} { untested $test; return }
+
+# --- TEST 1 ---
+
+set subtest1 "TEST 1: PR31740: hist_log"
+foreach runtime [get_runtime_list] {
+ if {$runtime eq ""} {
+ set runtime "kernel"
+ }
+ set test_name "$test: $subtest1 ($runtime)"
+ set cmd "stap --runtime=$runtime '$srcdir/$subdir/${test}_1.stp'"
+ set exit_code [run_cmd_2way $cmd out stderr]
+ set exp_out "variance = 1\n"
+ is "${test_name}: stdout" $out $exp_out
+ is "${test_name}: exit code" $exit_code 0
+ if {$stderr ne ""} {
+ send_log "stderr:\n$stderr"
+ }
+}
+
+# --- TEST 2 ---
+
+set subtest2 "TEST 2: PR31740: hist_linear"
+foreach runtime [get_runtime_list] {
+ if {$runtime eq ""} {
+ set runtime "kernel"
+ }
+ set test_name "$test: $subtest2 ($runtime)"
+ set cmd "stap --runtime=$runtime '$srcdir/$subdir/${test}_2.stp'"
+ set exit_code [run_cmd_2way $cmd out stderr]
+ set exp_out "variance = 1\n"
+ is "${test_name}: stdout" $out $exp_out
+ is "${test_name}: exit code" $exit_code 0
+ if {$stderr ne ""} {
+ send_log "stderr:\n$stderr"
+ }
+}
--- /dev/null
+global stats;
+
+probe oneshot {
+ stats["k"] <<< 1;
+ stats["k"] <<< 2;
+ stats["k"] <<< 3;
+ printf("variance = %d\n", @variance(stats["k"], 7));
+}
+
+probe never {
+ print(@hist_linear(stats["k"], 0, 4, 1));
+}