Fix: tests: don't assume sequential cpuids
[lttng-tools.git] / tests / regression / tools / tracefile-limits / test_tracefile_count
index 5ca10ac231bc6e407a94983f4a56e7162d473200..5f114af044e25b696907b832b5aa427f65d5ce17 100755 (executable)
@@ -17,16 +17,37 @@ TESTAPP_BIN="$TESTAPP_PATH/$TESTAPP_NAME/$TESTAPP_NAME"
 STATS_BIN="$TESTDIR/utils/babelstats.pl"
 NUM_TESTS=74
 
-NUM_CPUS=$(nproc)
 PAGE_SIZE=$(getconf PAGE_SIZE)
 TRACEFILE_SIZE=$PAGE_SIZE
 
 source "$TESTDIR"/utils/utils.sh
 
+NUM_CPUS=$(conf_proc_count)
+
 if [ ! -x "$TESTAPP_BIN" ]; then
        BAIL_OUT "No UST events binary detected."
 fi
 
+function pick_random_cpuid ()
+{
+        local cpuid=0
+
+        # On Linux pick a random available cpuid from sysfs
+        if [ -d "/sys/devices/system/cpu" ]; then
+                local cpuids=()
+
+                for i in /sys/devices/system/cpu/cpu[0-9]*; do
+                        cpuids+=("${i#/sys/devices/system/cpu/cpu}")
+                done
+
+                cpuid=${cpuids[ $RANDOM % ${#cpuids[@]} ]}
+        else
+                cpuid=$((RANDOM % NUM_CPUS))
+        fi
+
+        echo $cpuid
+}
+
 function enable_lttng_channel_count_limit ()
 {
        sess_name="$1"
@@ -82,7 +103,7 @@ function test_tracefile_count_limit ()
        local count_limit="$1"
 
        local channel_name="channel"
-       local cpuno=$((RANDOM % NUM_CPUS))
+       local cpuno=$(pick_random_cpuid)
        local event_name="tp:tptest"
        local expected_size=$((count_limit * TRACEFILE_SIZE))
        local num_iter=100000
This page took 0.023584 seconds and 4 git commands to generate.