Merge pull request #54 from gioele/tests-unify-sudo

test: Move calculation of sudo path to a shared function
diff --git a/test/54-assert-10-assert_character_exists.bats b/test/54-assert-10-assert_character_exists.bats
index e613ba9..c92a1a3 100644
--- a/test/54-assert-10-assert_character_exists.bats
+++ b/test/54-assert-10-assert_character_exists.bats
@@ -4,7 +4,7 @@
 fixtures 'exist'
 
 setup () {
- sudo mknod ${TEST_FIXTURE_ROOT}/dir/test_device c 89 1
+  bats_sudo mknod ${TEST_FIXTURE_ROOT}/dir/test_device c 89 1
 }
 teardown () {
     rm -f ${TEST_FIXTURE_ROOT}/dir/test_device
diff --git a/test/54-assert-11-assert_character_not_exists.bats b/test/54-assert-11-assert_character_not_exists.bats
index b75e703..6586a7f 100644
--- a/test/54-assert-11-assert_character_not_exists.bats
+++ b/test/54-assert-11-assert_character_not_exists.bats
@@ -4,7 +4,7 @@
 fixtures 'exist'
 
 setup () {
- sudo mknod ${TEST_FIXTURE_ROOT}/dir/test_device c 89 1
+  bats_sudo mknod ${TEST_FIXTURE_ROOT}/dir/test_device c 89 1
 }
 teardown () {
     rm -f ${TEST_FIXTURE_ROOT}/dir/test_device
diff --git a/test/55-assert-10-assert_block_exists.bats b/test/55-assert-10-assert_block_exists.bats
index d3e8357..2211a3b 100644
--- a/test/55-assert-10-assert_block_exists.bats
+++ b/test/55-assert-10-assert_block_exists.bats
@@ -3,7 +3,7 @@
 fixtures 'exist'
 
 setup () {
- sudo mknod ${TEST_FIXTURE_ROOT}/dir/blockfile b 89 1
+  bats_sudo mknod ${TEST_FIXTURE_ROOT}/dir/blockfile b 89 1
 }
 teardown () {
     rm -f ${TEST_FIXTURE_ROOT}/dir/blockfile
@@ -59,4 +59,4 @@
   [ "${lines[0]}" == '-- block special file does not exist --' ]
   [ "${lines[1]}" == "path : ${TEST_FIXTURE_ROOT}/.." ]
   [ "${lines[2]}" == '--' ]
-}
\ No newline at end of file
+}
diff --git a/test/55-assert-11-assert_block_not_exists.bats b/test/55-assert-11-assert_block_not_exists.bats
index d469f1a..9bff904 100644
--- a/test/55-assert-11-assert_block_not_exists.bats
+++ b/test/55-assert-11-assert_block_not_exists.bats
@@ -4,7 +4,7 @@
 fixtures 'exist'
 
 setup () {
- sudo mknod ${TEST_FIXTURE_ROOT}/dir/blockfile b 89 1
+  bats_sudo mknod ${TEST_FIXTURE_ROOT}/dir/blockfile b 89 1
 }
 teardown () {
     rm -f ${TEST_FIXTURE_ROOT}/dir/blockfile
diff --git a/test/59-assert-10-assert_file_owner.bats b/test/59-assert-10-assert_file_owner.bats
index ec24089..f1a2f35 100644
--- a/test/59-assert-10-assert_file_owner.bats
+++ b/test/59-assert-10-assert_file_owner.bats
@@ -5,27 +5,15 @@
 
 setup () {
   touch ${TEST_FIXTURE_ROOT}/dir/owner ${TEST_FIXTURE_ROOT}/dir/notowner
-  sudo_path=$(command -v sudo 2>/dev/null)
   # There is PATH addition to /usr/sbin which won't come by default on bash3
   # on macOS
   chown_path=$(PATH="$PATH:/usr/sbin" command -v chown 2>/dev/null)
-  if [[ "$(whoami)" != 'root' ]] && [ -x "$sudo_path" ]; then
-    __cmd="$sudo_path $chown_path"
-  else
-    __cmd="$chown_path"
-  fi
-  $__cmd root ${TEST_FIXTURE_ROOT}/dir/owner
-  $__cmd daemon ${TEST_FIXTURE_ROOT}/dir/notowner
+  bats_sudo "$chown_path" root ${TEST_FIXTURE_ROOT}/dir/owner
+  bats_sudo "$chown_path" daemon ${TEST_FIXTURE_ROOT}/dir/notowner
 }
 
 teardown () {
-  sudo_path=$(command -v sudo 2>/dev/null)
-  if [[ "$(whoami)" != 'root' ]] && [ -x "$sudo_path" ]; then
-    __cmd="$sudo_path rm -f"
-  else
-    __cmd="rm -f"
-  fi
-  $__cmd ${TEST_FIXTURE_ROOT}/dir/owner ${TEST_FIXTURE_ROOT}/dir/notowner
+  bats_sudo rm -f ${TEST_FIXTURE_ROOT}/dir/owner ${TEST_FIXTURE_ROOT}/dir/notowner
 }
 
 # Correctness
diff --git a/test/59-assert-11-assert_not_file_owner.bats b/test/59-assert-11-assert_not_file_owner.bats
index 8c3b3d6..5518941 100644
--- a/test/59-assert-11-assert_not_file_owner.bats
+++ b/test/59-assert-11-assert_not_file_owner.bats
@@ -5,27 +5,15 @@
 
 setup () {
   touch ${TEST_FIXTURE_ROOT}/dir/owner ${TEST_FIXTURE_ROOT}/dir/notowner
-  sudo_path=$(command -v sudo 2>/dev/null)
   # There is PATH addition to /usr/sbin which won't come by default on bash3
   # on macOS
   chown_path=$(PATH="$PATH:/usr/sbin" command -v chown 2>/dev/null)
-  if [[ "$(whoami)" != 'root' ]] && [ -x "$sudo_path" ]; then
-    __cmd="$sudo_path $chown_path"
-  else
-    __cmd="$chown_path"
-  fi
-  $__cmd root ${TEST_FIXTURE_ROOT}/dir/owner
-  $__cmd daemon ${TEST_FIXTURE_ROOT}/dir/notowner
+  bats_sudo "$chown_path" root ${TEST_FIXTURE_ROOT}/dir/owner
+  bats_sudo "$chown_path" daemon ${TEST_FIXTURE_ROOT}/dir/notowner
 }
 
 teardown () {
-  sudo_path=$(command -v sudo 2>/dev/null)
-  if [[ "$(whoami)" != 'root' ]] && [ -x "$sudo_path" ]; then
-    __cmd="$sudo_path rm -f"
-  else
-    __cmd="rm -f"
-  fi
-  $__cmd ${TEST_FIXTURE_ROOT}/dir/owner ${TEST_FIXTURE_ROOT}/dir/notowner
+  bats_sudo rm -f ${TEST_FIXTURE_ROOT}/dir/owner ${TEST_FIXTURE_ROOT}/dir/notowner
 }
 
 # Correctness
diff --git a/test/test_helper.bash b/test/test_helper.bash
index bc90b0a..890c7ad 100644
--- a/test/test_helper.bash
+++ b/test/test_helper.bash
@@ -13,6 +13,15 @@
   TEST_RELATIVE_FIXTURE_ROOT=$(bats_trim_filename "${TEST_FIXTURE_ROOT}" TEST_RELATIVE_FIXTURE_ROOT)
 }
 
+bats_sudo() {
+  local sudo_path=$(command -v sudo 2>/dev/null)
+  if [[ "$(whoami)" != 'root' ]] && [ -x "$sudo_path" ]; then
+    "$sudo_path" "$@"
+  else
+    "$@"
+  fi
+}
+
 export TEST_MAIN_DIR="${BATS_TEST_DIRNAME}/.."
 export TEST_DEPS_DIR="${TEST_DEPS_DIR-${TEST_MAIN_DIR}/..}"