You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by su...@apache.org on 2010/04/24 04:04:21 UTC
svn commit: r937577 - in /hadoop/common/trunk: ./
src/java/org/apache/hadoop/fs/permission/
src/test/core/org/apache/hadoop/fs/permission/
Author: suresh
Date: Sat Apr 24 02:04:20 2010
New Revision: 937577
URL: http://svn.apache.org/viewvc?rev=937577&view=rev
Log:
HADOOP-6710. Symbolic umask for file creation is not conformant with posix. Contributed by Suresh Srinivas.
Modified:
hadoop/common/trunk/CHANGES.txt
hadoop/common/trunk/src/java/org/apache/hadoop/fs/permission/FsPermission.java
hadoop/common/trunk/src/java/org/apache/hadoop/fs/permission/PermissionParser.java
hadoop/common/trunk/src/java/org/apache/hadoop/fs/permission/UmaskParser.java
hadoop/common/trunk/src/test/core/org/apache/hadoop/fs/permission/TestFsPermission.java
Modified: hadoop/common/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/CHANGES.txt?rev=937577&r1=937576&r2=937577&view=diff
==============================================================================
--- hadoop/common/trunk/CHANGES.txt (original)
+++ hadoop/common/trunk/CHANGES.txt Sat Apr 24 02:04:20 2010
@@ -343,6 +343,9 @@ Trunk (unreleased changes)
HADOOP-6690. FilterFileSystem correctly handles setTimes call.
(Rodrigo Schmidt via dhruba)
+ HADOOP-6710. Symbolic umask for file creation is not conformant with posix.
+ (suresh)
+
HADOOP-6719. Insert all missing methods in FilterFs.
(Rodrigo Schmidt via dhruba)
Modified: hadoop/common/trunk/src/java/org/apache/hadoop/fs/permission/FsPermission.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/src/java/org/apache/hadoop/fs/permission/FsPermission.java?rev=937577&r1=937576&r2=937577&view=diff
==============================================================================
--- hadoop/common/trunk/src/java/org/apache/hadoop/fs/permission/FsPermission.java (original)
+++ hadoop/common/trunk/src/java/org/apache/hadoop/fs/permission/FsPermission.java Sat Apr 24 02:04:20 2010
@@ -199,7 +199,20 @@ public class FsPermission implements Wri
public static final int DEFAULT_UMASK =
CommonConfigurationKeys.FS_PERMISSIONS_UMASK_DEFAULT;
- /** Get the user file creation mask (umask) */
+ /**
+ * Get the user file creation mask (umask)
+ *
+ * {@code UMASK_LABEL} config param has umask value that is either symbolic
+ * or octal.
+ *
+ * Symbolic umask is applied relative to file mode creation mask;
+ * the permission op characters '+' clears the corresponding bit in the mask,
+ * '-' sets bits in the mask.
+ *
+ * Octal umask, the specified bits are set in the file mode creation mask.
+ *
+ * {@code DEPRECATED_UMASK_LABEL} config param has umask value set to decimal.
+ */
public static FsPermission getUMask(Configuration conf) {
int umask = DEFAULT_UMASK;
Modified: hadoop/common/trunk/src/java/org/apache/hadoop/fs/permission/PermissionParser.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/src/java/org/apache/hadoop/fs/permission/PermissionParser.java?rev=937577&r1=937576&r2=937577&view=diff
==============================================================================
--- hadoop/common/trunk/src/java/org/apache/hadoop/fs/permission/PermissionParser.java (original)
+++ hadoop/common/trunk/src/java/org/apache/hadoop/fs/permission/PermissionParser.java Sat Apr 24 02:04:20 2010
@@ -26,6 +26,7 @@ import java.util.regex.Pattern;
* UmaskParser and ChmodParser classes.
*/
class PermissionParser {
+ protected boolean symbolic = false;
protected short userMode;
protected short groupMode;
protected short othersMode;
@@ -140,6 +141,7 @@ class PermissionParser {
commaSeperated = matcher.group(4).contains(",");
}
+ symbolic = true;
}
private void applyOctalPattern(String modeStr, Matcher matcher) {
Modified: hadoop/common/trunk/src/java/org/apache/hadoop/fs/permission/UmaskParser.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/src/java/org/apache/hadoop/fs/permission/UmaskParser.java?rev=937577&r1=937576&r2=937577&view=diff
==============================================================================
--- hadoop/common/trunk/src/java/org/apache/hadoop/fs/permission/UmaskParser.java (original)
+++ hadoop/common/trunk/src/java/org/apache/hadoop/fs/permission/UmaskParser.java Sat Apr 24 02:04:20 2010
@@ -30,7 +30,7 @@ class UmaskParser extends PermissionPars
private static Pattern chmodOctalPattern =
Pattern.compile("^\\s*[+]?()([0-7]{3})\\s*$"); // no leading 1 for sticky bit
private static Pattern umaskSymbolicPattern = /* not allow X or t */
- Pattern.compile("\\G\\s*([ugoa]*)([+=-]+)([rwx]+)([,\\s]*)\\s*");
+ Pattern.compile("\\G\\s*([ugoa]*)([+=-]+)([rwx]*)([,\\s]*)\\s*");
final short umaskMode;
public UmaskParser(String modeStr) throws IllegalArgumentException {
@@ -39,7 +39,21 @@ class UmaskParser extends PermissionPars
umaskMode = (short)combineModes(0, false);
}
+ /**
+ * To be used for file/directory creation only. Symbolic umask is applied
+ * relative to file mode creation mask; the permission op characters '+'
+ * results in clearing the corresponding bit in the mask, '-' results in bits
+ * for indicated permission to be set in the mask.
+ *
+ * For octal umask, the specified bits are set in the file mode creation mask.
+ *
+ * @return umask
+ */
public short getUMask() {
+ if (symbolic) {
+ // Return the complement of octal equivalent of umask that was computed
+ return (short) (~umaskMode & 0777);
+ }
return umaskMode;
}
}
Modified: hadoop/common/trunk/src/test/core/org/apache/hadoop/fs/permission/TestFsPermission.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/src/test/core/org/apache/hadoop/fs/permission/TestFsPermission.java?rev=937577&r1=937576&r2=937577&view=diff
==============================================================================
--- hadoop/common/trunk/src/test/core/org/apache/hadoop/fs/permission/TestFsPermission.java (original)
+++ hadoop/common/trunk/src/test/core/org/apache/hadoop/fs/permission/TestFsPermission.java Sat Apr 24 02:04:20 2010
@@ -133,17 +133,531 @@ public class TestFsPermission extends Te
}
}
- public void TestSymbolicUmasks() {
+ public void testSymbolicUmasks() {
Configuration conf = new Configuration();
- // Test some symbolic settings Setting Octal result
- String [] symbolic = new String [] { "a+rw", "666",
- "u=x,g=r,o=w", "142",
- "u=x", "100" };
+ // Test some symbolic to octal settings
+ // Symbolic umask list is generated in linux shell using by the command:
+ // umask 0; umask <octal number>; umask -S
+ String [][] symbolic = new String [][] {
+ {"a+rw", "111",},
+ {"u=rwx,g=rwx,o=rwx", "0",},
+ {"u=rwx,g=rwx,o=rw", "1",},
+ {"u=rwx,g=rwx,o=rx", "2",},
+ {"u=rwx,g=rwx,o=r", "3",},
+ {"u=rwx,g=rwx,o=wx", "4",},
+ {"u=rwx,g=rwx,o=w", "5",},
+ {"u=rwx,g=rwx,o=x", "6",},
+ {"u=rwx,g=rwx,o=", "7",},
+ {"u=rwx,g=rw,o=rwx", "10",},
+ {"u=rwx,g=rw,o=rw", "11",},
+ {"u=rwx,g=rw,o=rx", "12",},
+ {"u=rwx,g=rw,o=r", "13",},
+ {"u=rwx,g=rw,o=wx", "14",},
+ {"u=rwx,g=rw,o=w", "15",},
+ {"u=rwx,g=rw,o=x", "16",},
+ {"u=rwx,g=rw,o=", "17",},
+ {"u=rwx,g=rx,o=rwx", "20",},
+ {"u=rwx,g=rx,o=rw", "21",},
+ {"u=rwx,g=rx,o=rx", "22",},
+ {"u=rwx,g=rx,o=r", "23",},
+ {"u=rwx,g=rx,o=wx", "24",},
+ {"u=rwx,g=rx,o=w", "25",},
+ {"u=rwx,g=rx,o=x", "26",},
+ {"u=rwx,g=rx,o=", "27",},
+ {"u=rwx,g=r,o=rwx", "30",},
+ {"u=rwx,g=r,o=rw", "31",},
+ {"u=rwx,g=r,o=rx", "32",},
+ {"u=rwx,g=r,o=r", "33",},
+ {"u=rwx,g=r,o=wx", "34",},
+ {"u=rwx,g=r,o=w", "35",},
+ {"u=rwx,g=r,o=x", "36",},
+ {"u=rwx,g=r,o=", "37",},
+ {"u=rwx,g=wx,o=rwx", "40",},
+ {"u=rwx,g=wx,o=rw", "41",},
+ {"u=rwx,g=wx,o=rx", "42",},
+ {"u=rwx,g=wx,o=r", "43",},
+ {"u=rwx,g=wx,o=wx", "44",},
+ {"u=rwx,g=wx,o=w", "45",},
+ {"u=rwx,g=wx,o=x", "46",},
+ {"u=rwx,g=wx,o=", "47",},
+ {"u=rwx,g=w,o=rwx", "50",},
+ {"u=rwx,g=w,o=rw", "51",},
+ {"u=rwx,g=w,o=rx", "52",},
+ {"u=rwx,g=w,o=r", "53",},
+ {"u=rwx,g=w,o=wx", "54",},
+ {"u=rwx,g=w,o=w", "55",},
+ {"u=rwx,g=w,o=x", "56",},
+ {"u=rwx,g=w,o=", "57",},
+ {"u=rwx,g=x,o=rwx", "60",},
+ {"u=rwx,g=x,o=rw", "61",},
+ {"u=rwx,g=x,o=rx", "62",},
+ {"u=rwx,g=x,o=r", "63",},
+ {"u=rwx,g=x,o=wx", "64",},
+ {"u=rwx,g=x,o=w", "65",},
+ {"u=rwx,g=x,o=x", "66",},
+ {"u=rwx,g=x,o=", "67",},
+ {"u=rwx,g=,o=rwx", "70",},
+ {"u=rwx,g=,o=rw", "71",},
+ {"u=rwx,g=,o=rx", "72",},
+ {"u=rwx,g=,o=r", "73",},
+ {"u=rwx,g=,o=wx", "74",},
+ {"u=rwx,g=,o=w", "75",},
+ {"u=rwx,g=,o=x", "76",},
+ {"u=rwx,g=,o=", "77",},
+ {"u=rw,g=rwx,o=rwx", "100",},
+ {"u=rw,g=rwx,o=rw", "101",},
+ {"u=rw,g=rwx,o=rx", "102",},
+ {"u=rw,g=rwx,o=r", "103",},
+ {"u=rw,g=rwx,o=wx", "104",},
+ {"u=rw,g=rwx,o=w", "105",},
+ {"u=rw,g=rwx,o=x", "106",},
+ {"u=rw,g=rwx,o=", "107",},
+ {"u=rw,g=rw,o=rwx", "110",},
+ {"u=rw,g=rw,o=rw", "111",},
+ {"u=rw,g=rw,o=rx", "112",},
+ {"u=rw,g=rw,o=r", "113",},
+ {"u=rw,g=rw,o=wx", "114",},
+ {"u=rw,g=rw,o=w", "115",},
+ {"u=rw,g=rw,o=x", "116",},
+ {"u=rw,g=rw,o=", "117",},
+ {"u=rw,g=rx,o=rwx", "120",},
+ {"u=rw,g=rx,o=rw", "121",},
+ {"u=rw,g=rx,o=rx", "122",},
+ {"u=rw,g=rx,o=r", "123",},
+ {"u=rw,g=rx,o=wx", "124",},
+ {"u=rw,g=rx,o=w", "125",},
+ {"u=rw,g=rx,o=x", "126",},
+ {"u=rw,g=rx,o=", "127",},
+ {"u=rw,g=r,o=rwx", "130",},
+ {"u=rw,g=r,o=rw", "131",},
+ {"u=rw,g=r,o=rx", "132",},
+ {"u=rw,g=r,o=r", "133",},
+ {"u=rw,g=r,o=wx", "134",},
+ {"u=rw,g=r,o=w", "135",},
+ {"u=rw,g=r,o=x", "136",},
+ {"u=rw,g=r,o=", "137",},
+ {"u=rw,g=wx,o=rwx", "140",},
+ {"u=rw,g=wx,o=rw", "141",},
+ {"u=rw,g=wx,o=rx", "142",},
+ {"u=rw,g=wx,o=r", "143",},
+ {"u=rw,g=wx,o=wx", "144",},
+ {"u=rw,g=wx,o=w", "145",},
+ {"u=rw,g=wx,o=x", "146",},
+ {"u=rw,g=wx,o=", "147",},
+ {"u=rw,g=w,o=rwx", "150",},
+ {"u=rw,g=w,o=rw", "151",},
+ {"u=rw,g=w,o=rx", "152",},
+ {"u=rw,g=w,o=r", "153",},
+ {"u=rw,g=w,o=wx", "154",},
+ {"u=rw,g=w,o=w", "155",},
+ {"u=rw,g=w,o=x", "156",},
+ {"u=rw,g=w,o=", "157",},
+ {"u=rw,g=x,o=rwx", "160",},
+ {"u=rw,g=x,o=rw", "161",},
+ {"u=rw,g=x,o=rx", "162",},
+ {"u=rw,g=x,o=r", "163",},
+ {"u=rw,g=x,o=wx", "164",},
+ {"u=rw,g=x,o=w", "165",},
+ {"u=rw,g=x,o=x", "166",},
+ {"u=rw,g=x,o=", "167",},
+ {"u=rw,g=,o=rwx", "170",},
+ {"u=rw,g=,o=rw", "171",},
+ {"u=rw,g=,o=rx", "172",},
+ {"u=rw,g=,o=r", "173",},
+ {"u=rw,g=,o=wx", "174",},
+ {"u=rw,g=,o=w", "175",},
+ {"u=rw,g=,o=x", "176",},
+ {"u=rw,g=,o=", "177",},
+ {"u=rx,g=rwx,o=rwx", "200",},
+ {"u=rx,g=rwx,o=rw", "201",},
+ {"u=rx,g=rwx,o=rx", "202",},
+ {"u=rx,g=rwx,o=r", "203",},
+ {"u=rx,g=rwx,o=wx", "204",},
+ {"u=rx,g=rwx,o=w", "205",},
+ {"u=rx,g=rwx,o=x", "206",},
+ {"u=rx,g=rwx,o=", "207",},
+ {"u=rx,g=rw,o=rwx", "210",},
+ {"u=rx,g=rw,o=rw", "211",},
+ {"u=rx,g=rw,o=rx", "212",},
+ {"u=rx,g=rw,o=r", "213",},
+ {"u=rx,g=rw,o=wx", "214",},
+ {"u=rx,g=rw,o=w", "215",},
+ {"u=rx,g=rw,o=x", "216",},
+ {"u=rx,g=rw,o=", "217",},
+ {"u=rx,g=rx,o=rwx", "220",},
+ {"u=rx,g=rx,o=rw", "221",},
+ {"u=rx,g=rx,o=rx", "222",},
+ {"u=rx,g=rx,o=r", "223",},
+ {"u=rx,g=rx,o=wx", "224",},
+ {"u=rx,g=rx,o=w", "225",},
+ {"u=rx,g=rx,o=x", "226",},
+ {"u=rx,g=rx,o=", "227",},
+ {"u=rx,g=r,o=rwx", "230",},
+ {"u=rx,g=r,o=rw", "231",},
+ {"u=rx,g=r,o=rx", "232",},
+ {"u=rx,g=r,o=r", "233",},
+ {"u=rx,g=r,o=wx", "234",},
+ {"u=rx,g=r,o=w", "235",},
+ {"u=rx,g=r,o=x", "236",},
+ {"u=rx,g=r,o=", "237",},
+ {"u=rx,g=wx,o=rwx", "240",},
+ {"u=rx,g=wx,o=rw", "241",},
+ {"u=rx,g=wx,o=rx", "242",},
+ {"u=rx,g=wx,o=r", "243",},
+ {"u=rx,g=wx,o=wx", "244",},
+ {"u=rx,g=wx,o=w", "245",},
+ {"u=rx,g=wx,o=x", "246",},
+ {"u=rx,g=wx,o=", "247",},
+ {"u=rx,g=w,o=rwx", "250",},
+ {"u=rx,g=w,o=rw", "251",},
+ {"u=rx,g=w,o=rx", "252",},
+ {"u=rx,g=w,o=r", "253",},
+ {"u=rx,g=w,o=wx", "254",},
+ {"u=rx,g=w,o=w", "255",},
+ {"u=rx,g=w,o=x", "256",},
+ {"u=rx,g=w,o=", "257",},
+ {"u=rx,g=x,o=rwx", "260",},
+ {"u=rx,g=x,o=rw", "261",},
+ {"u=rx,g=x,o=rx", "262",},
+ {"u=rx,g=x,o=r", "263",},
+ {"u=rx,g=x,o=wx", "264",},
+ {"u=rx,g=x,o=w", "265",},
+ {"u=rx,g=x,o=x", "266",},
+ {"u=rx,g=x,o=", "267",},
+ {"u=rx,g=,o=rwx", "270",},
+ {"u=rx,g=,o=rw", "271",},
+ {"u=rx,g=,o=rx", "272",},
+ {"u=rx,g=,o=r", "273",},
+ {"u=rx,g=,o=wx", "274",},
+ {"u=rx,g=,o=w", "275",},
+ {"u=rx,g=,o=x", "276",},
+ {"u=rx,g=,o=", "277",},
+ {"u=r,g=rwx,o=rwx", "300",},
+ {"u=r,g=rwx,o=rw", "301",},
+ {"u=r,g=rwx,o=rx", "302",},
+ {"u=r,g=rwx,o=r", "303",},
+ {"u=r,g=rwx,o=wx", "304",},
+ {"u=r,g=rwx,o=w", "305",},
+ {"u=r,g=rwx,o=x", "306",},
+ {"u=r,g=rwx,o=", "307",},
+ {"u=r,g=rw,o=rwx", "310",},
+ {"u=r,g=rw,o=rw", "311",},
+ {"u=r,g=rw,o=rx", "312",},
+ {"u=r,g=rw,o=r", "313",},
+ {"u=r,g=rw,o=wx", "314",},
+ {"u=r,g=rw,o=w", "315",},
+ {"u=r,g=rw,o=x", "316",},
+ {"u=r,g=rw,o=", "317",},
+ {"u=r,g=rx,o=rwx", "320",},
+ {"u=r,g=rx,o=rw", "321",},
+ {"u=r,g=rx,o=rx", "322",},
+ {"u=r,g=rx,o=r", "323",},
+ {"u=r,g=rx,o=wx", "324",},
+ {"u=r,g=rx,o=w", "325",},
+ {"u=r,g=rx,o=x", "326",},
+ {"u=r,g=rx,o=", "327",},
+ {"u=r,g=r,o=rwx", "330",},
+ {"u=r,g=r,o=rw", "331",},
+ {"u=r,g=r,o=rx", "332",},
+ {"u=r,g=r,o=r", "333",},
+ {"u=r,g=r,o=wx", "334",},
+ {"u=r,g=r,o=w", "335",},
+ {"u=r,g=r,o=x", "336",},
+ {"u=r,g=r,o=", "337",},
+ {"u=r,g=wx,o=rwx", "340",},
+ {"u=r,g=wx,o=rw", "341",},
+ {"u=r,g=wx,o=rx", "342",},
+ {"u=r,g=wx,o=r", "343",},
+ {"u=r,g=wx,o=wx", "344",},
+ {"u=r,g=wx,o=w", "345",},
+ {"u=r,g=wx,o=x", "346",},
+ {"u=r,g=wx,o=", "347",},
+ {"u=r,g=w,o=rwx", "350",},
+ {"u=r,g=w,o=rw", "351",},
+ {"u=r,g=w,o=rx", "352",},
+ {"u=r,g=w,o=r", "353",},
+ {"u=r,g=w,o=wx", "354",},
+ {"u=r,g=w,o=w", "355",},
+ {"u=r,g=w,o=x", "356",},
+ {"u=r,g=w,o=", "357",},
+ {"u=r,g=x,o=rwx", "360",},
+ {"u=r,g=x,o=rw", "361",},
+ {"u=r,g=x,o=rx", "362",},
+ {"u=r,g=x,o=r", "363",},
+ {"u=r,g=x,o=wx", "364",},
+ {"u=r,g=x,o=w", "365",},
+ {"u=r,g=x,o=x", "366",},
+ {"u=r,g=x,o=", "367",},
+ {"u=r,g=,o=rwx", "370",},
+ {"u=r,g=,o=rw", "371",},
+ {"u=r,g=,o=rx", "372",},
+ {"u=r,g=,o=r", "373",},
+ {"u=r,g=,o=wx", "374",},
+ {"u=r,g=,o=w", "375",},
+ {"u=r,g=,o=x", "376",},
+ {"u=r,g=,o=", "377",},
+ {"u=wx,g=rwx,o=rwx", "400",},
+ {"u=wx,g=rwx,o=rw", "401",},
+ {"u=wx,g=rwx,o=rx", "402",},
+ {"u=wx,g=rwx,o=r", "403",},
+ {"u=wx,g=rwx,o=wx", "404",},
+ {"u=wx,g=rwx,o=w", "405",},
+ {"u=wx,g=rwx,o=x", "406",},
+ {"u=wx,g=rwx,o=", "407",},
+ {"u=wx,g=rw,o=rwx", "410",},
+ {"u=wx,g=rw,o=rw", "411",},
+ {"u=wx,g=rw,o=rx", "412",},
+ {"u=wx,g=rw,o=r", "413",},
+ {"u=wx,g=rw,o=wx", "414",},
+ {"u=wx,g=rw,o=w", "415",},
+ {"u=wx,g=rw,o=x", "416",},
+ {"u=wx,g=rw,o=", "417",},
+ {"u=wx,g=rx,o=rwx", "420",},
+ {"u=wx,g=rx,o=rw", "421",},
+ {"u=wx,g=rx,o=rx", "422",},
+ {"u=wx,g=rx,o=r", "423",},
+ {"u=wx,g=rx,o=wx", "424",},
+ {"u=wx,g=rx,o=w", "425",},
+ {"u=wx,g=rx,o=x", "426",},
+ {"u=wx,g=rx,o=", "427",},
+ {"u=wx,g=r,o=rwx", "430",},
+ {"u=wx,g=r,o=rw", "431",},
+ {"u=wx,g=r,o=rx", "432",},
+ {"u=wx,g=r,o=r", "433",},
+ {"u=wx,g=r,o=wx", "434",},
+ {"u=wx,g=r,o=w", "435",},
+ {"u=wx,g=r,o=x", "436",},
+ {"u=wx,g=r,o=", "437",},
+ {"u=wx,g=wx,o=rwx", "440",},
+ {"u=wx,g=wx,o=rw", "441",},
+ {"u=wx,g=wx,o=rx", "442",},
+ {"u=wx,g=wx,o=r", "443",},
+ {"u=wx,g=wx,o=wx", "444",},
+ {"u=wx,g=wx,o=w", "445",},
+ {"u=wx,g=wx,o=x", "446",},
+ {"u=wx,g=wx,o=", "447",},
+ {"u=wx,g=w,o=rwx", "450",},
+ {"u=wx,g=w,o=rw", "451",},
+ {"u=wx,g=w,o=rx", "452",},
+ {"u=wx,g=w,o=r", "453",},
+ {"u=wx,g=w,o=wx", "454",},
+ {"u=wx,g=w,o=w", "455",},
+ {"u=wx,g=w,o=x", "456",},
+ {"u=wx,g=w,o=", "457",},
+ {"u=wx,g=x,o=rwx", "460",},
+ {"u=wx,g=x,o=rw", "461",},
+ {"u=wx,g=x,o=rx", "462",},
+ {"u=wx,g=x,o=r", "463",},
+ {"u=wx,g=x,o=wx", "464",},
+ {"u=wx,g=x,o=w", "465",},
+ {"u=wx,g=x,o=x", "466",},
+ {"u=wx,g=x,o=", "467",},
+ {"u=wx,g=,o=rwx", "470",},
+ {"u=wx,g=,o=rw", "471",},
+ {"u=wx,g=,o=rx", "472",},
+ {"u=wx,g=,o=r", "473",},
+ {"u=wx,g=,o=wx", "474",},
+ {"u=wx,g=,o=w", "475",},
+ {"u=wx,g=,o=x", "476",},
+ {"u=wx,g=,o=", "477",},
+ {"u=w,g=rwx,o=rwx", "500",},
+ {"u=w,g=rwx,o=rw", "501",},
+ {"u=w,g=rwx,o=rx", "502",},
+ {"u=w,g=rwx,o=r", "503",},
+ {"u=w,g=rwx,o=wx", "504",},
+ {"u=w,g=rwx,o=w", "505",},
+ {"u=w,g=rwx,o=x", "506",},
+ {"u=w,g=rwx,o=", "507",},
+ {"u=w,g=rw,o=rwx", "510",},
+ {"u=w,g=rw,o=rw", "511",},
+ {"u=w,g=rw,o=rx", "512",},
+ {"u=w,g=rw,o=r", "513",},
+ {"u=w,g=rw,o=wx", "514",},
+ {"u=w,g=rw,o=w", "515",},
+ {"u=w,g=rw,o=x", "516",},
+ {"u=w,g=rw,o=", "517",},
+ {"u=w,g=rx,o=rwx", "520",},
+ {"u=w,g=rx,o=rw", "521",},
+ {"u=w,g=rx,o=rx", "522",},
+ {"u=w,g=rx,o=r", "523",},
+ {"u=w,g=rx,o=wx", "524",},
+ {"u=w,g=rx,o=w", "525",},
+ {"u=w,g=rx,o=x", "526",},
+ {"u=w,g=rx,o=", "527",},
+ {"u=w,g=r,o=rwx", "530",},
+ {"u=w,g=r,o=rw", "531",},
+ {"u=w,g=r,o=rx", "532",},
+ {"u=w,g=r,o=r", "533",},
+ {"u=w,g=r,o=wx", "534",},
+ {"u=w,g=r,o=w", "535",},
+ {"u=w,g=r,o=x", "536",},
+ {"u=w,g=r,o=", "537",},
+ {"u=w,g=wx,o=rwx", "540",},
+ {"u=w,g=wx,o=rw", "541",},
+ {"u=w,g=wx,o=rx", "542",},
+ {"u=w,g=wx,o=r", "543",},
+ {"u=w,g=wx,o=wx", "544",},
+ {"u=w,g=wx,o=w", "545",},
+ {"u=w,g=wx,o=x", "546",},
+ {"u=w,g=wx,o=", "547",},
+ {"u=w,g=w,o=rwx", "550",},
+ {"u=w,g=w,o=rw", "551",},
+ {"u=w,g=w,o=rx", "552",},
+ {"u=w,g=w,o=r", "553",},
+ {"u=w,g=w,o=wx", "554",},
+ {"u=w,g=w,o=w", "555",},
+ {"u=w,g=w,o=x", "556",},
+ {"u=w,g=w,o=", "557",},
+ {"u=w,g=x,o=rwx", "560",},
+ {"u=w,g=x,o=rw", "561",},
+ {"u=w,g=x,o=rx", "562",},
+ {"u=w,g=x,o=r", "563",},
+ {"u=w,g=x,o=wx", "564",},
+ {"u=w,g=x,o=w", "565",},
+ {"u=w,g=x,o=x", "566",},
+ {"u=w,g=x,o=", "567",},
+ {"u=w,g=,o=rwx", "570",},
+ {"u=w,g=,o=rw", "571",},
+ {"u=w,g=,o=rx", "572",},
+ {"u=w,g=,o=r", "573",},
+ {"u=w,g=,o=wx", "574",},
+ {"u=w,g=,o=w", "575",},
+ {"u=w,g=,o=x", "576",},
+ {"u=w,g=,o=", "577",},
+ {"u=x,g=rwx,o=rwx", "600",},
+ {"u=x,g=rwx,o=rw", "601",},
+ {"u=x,g=rwx,o=rx", "602",},
+ {"u=x,g=rwx,o=r", "603",},
+ {"u=x,g=rwx,o=wx", "604",},
+ {"u=x,g=rwx,o=w", "605",},
+ {"u=x,g=rwx,o=x", "606",},
+ {"u=x,g=rwx,o=", "607",},
+ {"u=x,g=rw,o=rwx", "610",},
+ {"u=x,g=rw,o=rw", "611",},
+ {"u=x,g=rw,o=rx", "612",},
+ {"u=x,g=rw,o=r", "613",},
+ {"u=x,g=rw,o=wx", "614",},
+ {"u=x,g=rw,o=w", "615",},
+ {"u=x,g=rw,o=x", "616",},
+ {"u=x,g=rw,o=", "617",},
+ {"u=x,g=rx,o=rwx", "620",},
+ {"u=x,g=rx,o=rw", "621",},
+ {"u=x,g=rx,o=rx", "622",},
+ {"u=x,g=rx,o=r", "623",},
+ {"u=x,g=rx,o=wx", "624",},
+ {"u=x,g=rx,o=w", "625",},
+ {"u=x,g=rx,o=x", "626",},
+ {"u=x,g=rx,o=", "627",},
+ {"u=x,g=r,o=rwx", "630",},
+ {"u=x,g=r,o=rw", "631",},
+ {"u=x,g=r,o=rx", "632",},
+ {"u=x,g=r,o=r", "633",},
+ {"u=x,g=r,o=wx", "634",},
+ {"u=x,g=r,o=w", "635",},
+ {"u=x,g=r,o=x", "636",},
+ {"u=x,g=r,o=", "637",},
+ {"u=x,g=wx,o=rwx", "640",},
+ {"u=x,g=wx,o=rw", "641",},
+ {"u=x,g=wx,o=rx", "642",},
+ {"u=x,g=wx,o=r", "643",},
+ {"u=x,g=wx,o=wx", "644",},
+ {"u=x,g=wx,o=w", "645",},
+ {"u=x,g=wx,o=x", "646",},
+ {"u=x,g=wx,o=", "647",},
+ {"u=x,g=w,o=rwx", "650",},
+ {"u=x,g=w,o=rw", "651",},
+ {"u=x,g=w,o=rx", "652",},
+ {"u=x,g=w,o=r", "653",},
+ {"u=x,g=w,o=wx", "654",},
+ {"u=x,g=w,o=w", "655",},
+ {"u=x,g=w,o=x", "656",},
+ {"u=x,g=w,o=", "657",},
+ {"u=x,g=x,o=rwx", "660",},
+ {"u=x,g=x,o=rw", "661",},
+ {"u=x,g=x,o=rx", "662",},
+ {"u=x,g=x,o=r", "663",},
+ {"u=x,g=x,o=wx", "664",},
+ {"u=x,g=x,o=w", "665",},
+ {"u=x,g=x,o=x", "666",},
+ {"u=x,g=x,o=", "667",},
+ {"u=x,g=,o=rwx", "670",},
+ {"u=x,g=,o=rw", "671",},
+ {"u=x,g=,o=rx", "672",},
+ {"u=x,g=,o=r", "673",},
+ {"u=x,g=,o=wx", "674",},
+ {"u=x,g=,o=w", "675",},
+ {"u=x,g=,o=x", "676",},
+ {"u=x,g=,o=", "677",},
+ {"u=,g=rwx,o=rwx", "700",},
+ {"u=,g=rwx,o=rw", "701",},
+ {"u=,g=rwx,o=rx", "702",},
+ {"u=,g=rwx,o=r", "703",},
+ {"u=,g=rwx,o=wx", "704",},
+ {"u=,g=rwx,o=w", "705",},
+ {"u=,g=rwx,o=x", "706",},
+ {"u=,g=rwx,o=", "707",},
+ {"u=,g=rw,o=rwx", "710",},
+ {"u=,g=rw,o=rw", "711",},
+ {"u=,g=rw,o=rx", "712",},
+ {"u=,g=rw,o=r", "713",},
+ {"u=,g=rw,o=wx", "714",},
+ {"u=,g=rw,o=w", "715",},
+ {"u=,g=rw,o=x", "716",},
+ {"u=,g=rw,o=", "717",},
+ {"u=,g=rx,o=rwx", "720",},
+ {"u=,g=rx,o=rw", "721",},
+ {"u=,g=rx,o=rx", "722",},
+ {"u=,g=rx,o=r", "723",},
+ {"u=,g=rx,o=wx", "724",},
+ {"u=,g=rx,o=w", "725",},
+ {"u=,g=rx,o=x", "726",},
+ {"u=,g=rx,o=", "727",},
+ {"u=,g=r,o=rwx", "730",},
+ {"u=,g=r,o=rw", "731",},
+ {"u=,g=r,o=rx", "732",},
+ {"u=,g=r,o=r", "733",},
+ {"u=,g=r,o=wx", "734",},
+ {"u=,g=r,o=w", "735",},
+ {"u=,g=r,o=x", "736",},
+ {"u=,g=r,o=", "737",},
+ {"u=,g=wx,o=rwx", "740",},
+ {"u=,g=wx,o=rw", "741",},
+ {"u=,g=wx,o=rx", "742",},
+ {"u=,g=wx,o=r", "743",},
+ {"u=,g=wx,o=wx", "744",},
+ {"u=,g=wx,o=w", "745",},
+ {"u=,g=wx,o=x", "746",},
+ {"u=,g=wx,o=", "747",},
+ {"u=,g=w,o=rwx", "750",},
+ {"u=,g=w,o=rw", "751",},
+ {"u=,g=w,o=rx", "752",},
+ {"u=,g=w,o=r", "753",},
+ {"u=,g=w,o=wx", "754",},
+ {"u=,g=w,o=w", "755",},
+ {"u=,g=w,o=x", "756",},
+ {"u=,g=w,o=", "757",},
+ {"u=,g=x,o=rwx", "760",},
+ {"u=,g=x,o=rw", "761",},
+ {"u=,g=x,o=rx", "762",},
+ {"u=,g=x,o=r", "763",},
+ {"u=,g=x,o=wx", "764",},
+ {"u=,g=x,o=w", "765",},
+ {"u=,g=x,o=x", "766",},
+ {"u=,g=x,o=", "767",},
+ {"u=,g=,o=rwx", "770",},
+ {"u=,g=,o=rw", "771",},
+ {"u=,g=,o=rx", "772",},
+ {"u=,g=,o=r", "773",},
+ {"u=,g=,o=wx", "774",},
+ {"u=,g=,o=w", "775",},
+ {"u=,g=,o=x", "776",},
+ {"u=,g=,o=", "777"}
+ };
for(int i = 0; i < symbolic.length; i += 2) {
- conf.set(FsPermission.UMASK_LABEL, symbolic[i]);
- short val = Short.valueOf(symbolic[i + 1], 8);
+ conf.set(FsPermission.UMASK_LABEL, symbolic[i][0]);
+ short val = Short.valueOf(symbolic[i][1], 8);
assertEquals(val, FsPermission.getUMask(conf).toShort());
}
}