private static ImmutableMap<String, FsAction> fsActionMap() { ImmutableMap.Builder<String, FsAction> b = ImmutableMap.builder(); for (FsAction v : FsAction.values()) b.put(v.SYMBOL, v); return b.build(); }
/** AND operation. */ public FsAction and(FsAction that) { return values()[this.INDEX & that.INDEX]; } /** OR operation. */
/** OR operation. */ public FsAction or(FsAction that) { return values()[this.INDEX | that.INDEX]; } /** NOT operation. */
/** NOT operation. */ public FsAction not() { return values()[7 - INDEX]; } }
private static ImmutableMap<String, FsAction> fsActionMap() { ImmutableMap.Builder<String, FsAction> b = ImmutableMap.builder(); for (FsAction v : FsAction.values()) b.put(v.SYMBOL, v); return b.build(); }
static FsAction getPermission(int aclEntry) { int ordinal = (int) PERMISSION.BITS.retrieve(aclEntry); return FsAction.values()[ordinal]; }
static FsAction getPermission(int aclEntry) { int ordinal = (int) PERMISSION.BITS.retrieve(aclEntry); return FsAction.values()[ordinal]; }
public void fromShort(short n) { FsAction[] v = FsAction.values(); set(v[(n >>> 6) & 7], v[(n >>> 3) & 7], v[n & 7]); }
public void fromShort(short n) { FsAction[] v = FsAction.values(); set(v[(n >>> 6) & 7], v[(n >>> 3) & 7], v[n & 7]); }
public void testUMaskParser() throws IOException { Configuration conf = new Configuration(); // Ensure that we get the right octal values back for all legal values for(FsAction u : FsAction.values()) { for(FsAction g : FsAction.values()) { for(FsAction o : FsAction.values()) { FsPermission f = new FsPermission(u, g, o); String asOctal = String.format("%1$03o", f.toShort()); conf.set(FsPermission.UMASK_LABEL, asOctal); FsPermission fromConf = FsPermission.getUMask(conf); assertEquals(f, fromConf); } } } }
@Parameterized.Parameters(name = "{0}") public static Collection abfsCreateNonRecursiveTestData() throws Exception { /* Test Data File/Folder name, User permission, Group permission, Other Permission, Parent already exist shouldCreateSucceed, expectedExceptionIfFileCreateFails */ final Collection<Object[]> datas = new ArrayList<>(); for (FsAction g : FsAction.values()) { for (FsAction o : FsAction.values()) { datas.add(new Object[] {new FsPermission(FsAction.ALL, g, o)}); } } return datas; }
private static ImmutableMap<String, FsAction> fsActionMap() { ImmutableMap.Builder<String, FsAction> b = ImmutableMap.builder(); for (FsAction v : FsAction.values()) b.put(v.SYMBOL, v); return b.build(); }
public void testUMaskParser() throws IOException { Configuration conf = new Configuration(); // Ensure that we get the right octal values back for all legal values for(FsAction u : FsAction.values()) { for(FsAction g : FsAction.values()) { for(FsAction o : FsAction.values()) { FsPermission f = new FsPermission(u, g, o); String asOctal = String.format("%1$03o", f.toShort()); conf.set(FsPermission.UMASK_LABEL, asOctal); FsPermission fromConf = FsPermission.getUMask(conf); assertEquals(f, fromConf); } } } }
public void testUMaskParser() throws IOException { Configuration conf = new Configuration(); // Ensure that we get the right octal values back for all legal values for(FsAction u : FsAction.values()) { for(FsAction g : FsAction.values()) { for(FsAction o : FsAction.values()) { FsPermission f = new FsPermission(u, g, o); String asOctal = String.format("%1$03o", f.toShort()); conf.set(FsPermission.UMASK_LABEL, asOctal); FsPermission fromConf = FsPermission.getUMask(conf); assertEquals(f, fromConf); } } } }
public void testStickyBitToString() { // Check that every permission has its sticky bit represented correctly for(boolean sb : new boolean [] { false, true }) { for(FsAction u : FsAction.values()) { for(FsAction g : FsAction.values()) { for(FsAction o : FsAction.values()) { FsPermission f = new FsPermission(u, g, o, sb); if(f.getStickyBit() && f.getOtherAction().implies(EXECUTE)) assertEquals('t', f.toString().charAt(8)); else if(f.getStickyBit() && !f.getOtherAction().implies(EXECUTE)) assertEquals('T', f.toString().charAt(8)); else if(!f.getStickyBit() && f.getOtherAction().implies(EXECUTE)) assertEquals('x', f.toString().charAt(8)); else assertEquals('-', f.toString().charAt(8)); } } } } }
/** * Ensure that when manually specifying permission modes we get * the expected values back out for all combinations */ public void testConvertingPermissions() { for(short s = 0; s <= 01777; s++) { assertEquals(s, new FsPermission(s).toShort()); } short s = 0; for(boolean sb : new boolean [] { false, true }) { for(FsAction u : FsAction.values()) { for(FsAction g : FsAction.values()) { for(FsAction o : FsAction.values()) { // Cover constructor with sticky bit. FsPermission f = new FsPermission(u, g, o, sb); assertEquals(s, f.toShort()); FsPermission f2 = new FsPermission(f); assertEquals(s, f2.toShort()); s++; } } } } }
public void testFsAction() { //implies for(FsAction a : FsAction.values()) { assertTrue(ALL.implies(a)); } for(FsAction a : FsAction.values()) { assertTrue(a == NONE? NONE.implies(a): !NONE.implies(a)); } for(FsAction a : FsAction.values()) { assertTrue(a == READ_EXECUTE || a == READ || a == EXECUTE || a == NONE? READ_EXECUTE.implies(a): !READ_EXECUTE.implies(a)); } //masks assertEquals(EXECUTE, EXECUTE.and(READ_EXECUTE)); assertEquals(READ, READ.and(READ_EXECUTE)); assertEquals(NONE, WRITE.and(READ_EXECUTE)); assertEquals(READ, READ_EXECUTE.and(READ_WRITE)); assertEquals(NONE, READ_EXECUTE.and(WRITE)); assertEquals(WRITE_EXECUTE, ALL.and(WRITE_EXECUTE)); }
public void testFsAction() { //implies for(FsAction a : FsAction.values()) { assertTrue(ALL.implies(a)); } for(FsAction a : FsAction.values()) { assertTrue(a == NONE? NONE.implies(a): !NONE.implies(a)); } for(FsAction a : FsAction.values()) { assertTrue(a == READ_EXECUTE || a == READ || a == EXECUTE || a == NONE? READ_EXECUTE.implies(a): !READ_EXECUTE.implies(a)); } //masks assertEquals(EXECUTE, EXECUTE.and(READ_EXECUTE)); assertEquals(READ, READ.and(READ_EXECUTE)); assertEquals(NONE, WRITE.and(READ_EXECUTE)); assertEquals(READ, READ_EXECUTE.and(READ_WRITE)); assertEquals(NONE, READ_EXECUTE.and(WRITE)); assertEquals(WRITE_EXECUTE, ALL.and(WRITE_EXECUTE)); }
public void testFsAction() { //implies for(FsAction a : FsAction.values()) { assertTrue(ALL.implies(a)); } for(FsAction a : FsAction.values()) { assertTrue(a == NONE? NONE.implies(a): !NONE.implies(a)); } for(FsAction a : FsAction.values()) { assertTrue(a == READ_EXECUTE || a == READ || a == EXECUTE || a == NONE? READ_EXECUTE.implies(a): !READ_EXECUTE.implies(a)); } //masks assertEquals(EXECUTE, EXECUTE.and(READ_EXECUTE)); assertEquals(READ, READ.and(READ_EXECUTE)); assertEquals(NONE, WRITE.and(READ_EXECUTE)); assertEquals(READ, READ_EXECUTE.and(READ_WRITE)); assertEquals(NONE, READ_EXECUTE.and(WRITE)); assertEquals(WRITE_EXECUTE, ALL.and(WRITE_EXECUTE)); }