summaryrefslogtreecommitdiff
path: root/tests/kernel/lp-926292.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tests/kernel/lp-926292.sh')
-rwxr-xr-xtests/kernel/lp-926292.sh53
1 files changed, 53 insertions, 0 deletions
diff --git a/tests/kernel/lp-926292.sh b/tests/kernel/lp-926292.sh
new file mode 100755
index 0000000..4585e29
--- /dev/null
+++ b/tests/kernel/lp-926292.sh
@@ -0,0 +1,53 @@
+#!/bin/bash
+#
+# lp-926292.sh: Test for https://launchpad.net/bugs/926292
+# Author: Tyler Hicks <tyhicks@canonical.com>
+#
+# Copyright (C) 2012 Canonical Ltd.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation version 2
+# of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+
+test_script_dir=$(dirname $0)
+rc=1
+
+. ${test_script_dir}/../lib/etl_funcs.sh
+
+test_cleanup()
+{
+ etl_remove_test_dir $test_dir
+ etl_umount
+ etl_lumount
+ etl_unlink_keys
+ exit $rc
+}
+trap test_cleanup 0 1 2 3 15
+
+etl_add_keys || exit
+etl_lmount || exit
+etl_mount_i || exit
+test_dir=$(etl_create_test_dir) || exit
+dir="${test_dir}/foo"
+
+# This won't work for regular files because they have a special
+# ecryptfs_getattr() function which will mask the stale inode
+# attributes. eCryptfs directory inode don't have a special ->getattr()
+mkdir --mode=700 $dir || exit
+setfacl -m u::rx $dir || exit
+st=$(stat -c %a $dir) || exit
+if [ $st = "500" ]; then
+ rc=0
+fi
+
+exit