#!/bin/bash

cvmfs_test_name="Adjust OOM score"
cvmfs_test_suites="quick"

cvmfs_run_test() {
  logfile=$1

  echo "*** set oom_score_adj to -1000"
  cvmfs_mount lhcb.cern.ch "CVMFS_OOM_SCORE_ADJ=-1000" || return 1
  local pid_fuse=$(get_xattr pid /cvmfs/lhcb.cern.ch)
  echo "*** PID of Fuse module is $pid_fuse"
  local pid_watchdog=$(sudo cvmfs_talk -i lhcb.cern.ch pid watchdog)
  echo "*** PID of watchdog is $pid_watchdog"
  local pid_cachemgr=$(sudo cvmfs_talk -i lhcb.cern.ch pid cachemgr)
  echo "*** PID of cache manager is $pid_cachemgr"

  local oom_score_adj_fuse=$(cat /proc/$pid_fuse/oom_score_adj)
  echo "*** OOM score adjustment of Fuse module is $oom_score_adj_fuse"
  local oom_score_adj_watchdog=$(cat /proc/$pid_watchdog/oom_score_adj)
  echo "*** OOM score adjustment of watchdog is $oom_score_adj_watchdog"
  local oom_score_adj_cachemgr=$(cat /proc/$pid_cachemgr/oom_score_adj)
  echo "*** OOM score adjustment of cache manager is $oom_score_adj_cachemgr"

  [ "x$oom_score_adj_fuse" != "x-1000" ] && return 10
  [ "x$oom_score_adj_watchdog" != "x-1000" ] && return 11
  [ "x$oom_score_adj_cachemgr" != "x-1000" ] && return 12

  return 0
}

