jjb: lttng-ivc: urcu is now handled by lttng-ivc
[lttng-ci.git] / scripts / lttng-tools / build.sh
index caa48f5c8f6476b901eb99eced5497100e9d0b2a..84f12a2201fd371c49212863430c56283a921bf8 100755 (executable)
@@ -82,6 +82,24 @@ failed_configure() {
     exit 1
 }
 
+set_execute_traversal_bit()
+{
+    path=$1
+
+    level="$path"
+    if [ ! -d "$path" ]; then
+        fail "Path is not a directory"
+    fi
+    while level="$(dirname "$level")"
+    do
+        if [ "$level" = / ]; then
+            break
+        fi
+        chmod a+x "$level"
+    done
+    chmod a+x "$path"
+}
+
 # Required variables
 WORKSPACE=${WORKSPACE:-}
 
@@ -442,6 +460,21 @@ if [ "$RUN_TESTS" = "yes" ] && [ "$conf" != "no-ust" ]; then
 
     # Run 'unit_tests', 2.8 and up has a new test suite
     if vergte "$PACKAGE_VERSION" "2.8"; then
+       # It is implied that tests depending on LTTNG_ENABLE_DESTRUCTIVE_TESTS
+       # only run for the root user. Note that here `destructive` means that
+       # operations are performed at the host level (add user etc.) that
+       # effectively modify the host. Running those tests are acceptable on our
+       # CI and root jobs since we always run root tests against a `snapshot`
+       # of the host.
+       if [ "$(id -u)" == "0" ]; then
+               # Allow the traversal of all directories leading to the
+               # DEPS_LIBS directory to enable test app run by temp users to
+               # access lttng-ust.
+               set_execute_traversal_bit "$DEPS_LIB"
+               # Allow `all` to interact with all deps libs.
+               chmod a+rwx -R "$DEPS_LIB"
+               export LTTNG_ENABLE_DESTRUCTIVE_TESTS="will-break-my-system"
+       fi
         make --keep-going check || failed_tests=1
         rsync -a --exclude 'test-suite.log' --include '*/' --include '*.log' --exclude='*' tests/ "$TAPDIR"
     else
This page took 0.022595 seconds and 4 git commands to generate.