-#!/bin/bash
+#!/usr/bin/env bash
# This script does some sanity testing of the 'imagex' program, specifically
# checking the NTFS capture and apply features.
# remain mounted.
set -e
-srcdir=${srcdir:-.}
-srcdir=`realpath $srcdir`
cd tests
+srcdir="${srcdir:-.}/.."
+srcdir="$(cd $srcdir; pwd)"
imagex() {
../imagex $@ > /dev/null
}
__do_unmount() {
- if ! fusermount -u $1; then
+ if ! fusermount -z -u $1; then
error "Failed to unmount \"$1\""
fi
__do_mount() {
options="$3"
- if ! ntfs-3g ${options:+-o $options} $1 $2; then
- error "Could not mount NTFS volume \"$1\" on \"$2\". Make sure ntfs-3g is installed."
+ if [ -z "$options" ]; then
+ options="no_def_opts,silent"
+ else
+ options="$options,no_def_opts,silent"
+ fi
+ if ! ntfs-3g -o $options $1 $2; then
+ error "Could not mount NTFS volume \"$1\" on \"$2\"! Make sure ntfs-3g is "\
+ "installed, and that you are either running the tests as root or have ntfs-3g "\
+ "installed setuid root, so that we can mount a NTFS volume."
fi
}
do_mkntfs() {
if ! mkntfs --force --fast $1 &> /dev/null; then
- error "Could not create NTFS volume on \"$1\". Make sure ntfs-3g / ntfsprogs are installed"
+ error "Could not create NTFS volume \"$1\"! Make sure ntfsprogs are installed."
fi
}
error() {
echo "****************************************************************"
echo " Test failure "
- echo $*
+ while [ $# -gt 0 ]; do
+ echo $1
+ shift
+ done
echo "****************************************************************"
exit 1
}
setfattr -n user.aa -v 1111 file;
setfattr -n user.aaa -v 1111 file;
setfattr -n user.aaaa -v 1111 file;'
-
+
msg "file with named data streams with same contents as other file"
do_test 'echo -n > file;
setfattr -n user.a -v 1111 file;
touch file2;
setfattr -n system.ntfs_acl -v 0s`cat $srcdir/tests/security_descriptor_1.base64` file
setfattr -n system.ntfs_acl -v 0s`cat $srcdir/tests/security_descriptor_2.base64` file'
-
+
msg "files with different security descriptors and some with the same security descriptor"
do_test 'touch file;
touch file2;