@@ -1528,50 +1528,50 @@ def TestMasks():
15281528
15291529 want_tree = {
15301530 '.' : {'ino' : 1 , 'mode' : 'drwxr-xr-x' , 'nlink' : 24 },
1531- 'Dir000' : {'mode' : 'd---------' },
1532- 'Dir001' : {'mode' : 'd--------x' },
1533- 'Dir002' : {'mode' : 'd-------w -' },
1534- 'Dir003' : {'mode' : 'd-------wx ' },
1535- 'Dir004' : {'mode' : 'd------r--' },
1536- 'Dir005' : {'mode' : 'd------r-x' },
1537- 'Dir006' : {'mode' : 'd------rw -' },
1538- 'Dir007' : {'mode' : 'd------rwx ' },
1539- 'Dir010' : {'mode' : 'd-----x---' },
1540- 'Dir020' : {'mode' : 'd----w ----' },
1541- 'Dir030' : {'mode' : 'd----wx ---' },
1542- 'Dir040' : {'mode' : 'd---r-----' },
1543- 'Dir050' : {'mode' : 'd---r-x---' },
1544- 'Dir060' : {'mode' : 'd---rw ----' },
1545- 'Dir070' : {'mode' : 'd---rwx ---' },
1546- 'Dir100' : {'mode' : 'd--x------' },
1547- 'Dir200' : {'mode' : 'd-w-------' },
1548- 'Dir300' : {'mode' : 'd-wx------' },
1549- 'Dir400' : {'mode' : 'dr--------' },
1550- 'Dir500' : {'mode' : 'dr-x------' },
1551- 'Dir600' : {'mode' : 'drw-------' },
1552- 'Dir700' : {'mode' : 'drwx------' },
1553- 'File000' : {'mode' : '----------' },
1554- 'File001' : {'mode' : '---------x' },
1555- 'File002' : {'mode' : '--------w -' },
1556- 'File003' : {'mode' : '--------wx ' },
1557- 'File004' : {'mode' : '-------r--' },
1558- 'File005' : {'mode' : '-------r-x' },
1559- 'File006' : {'mode' : '-------rw -' },
1560- 'File007' : {'mode' : '-------rwx ' },
1561- 'File010' : {'mode' : '------x---' },
1562- 'File020' : {'mode' : '-----w ----' },
1563- 'File030' : {'mode' : '-----wx ---' },
1564- 'File040' : {'mode' : '----r-----' },
1565- 'File050' : {'mode' : '----r-x---' },
1566- 'File060' : {'mode' : '----rw ----' },
1567- 'File070' : {'mode' : '----rwx ---' },
1568- 'File100' : {'mode' : '---x------' },
1569- 'File200' : {'mode' : '--w-------' },
1570- 'File300' : {'mode' : '--wx------' },
1571- 'File400' : {'mode' : '-r--------' },
1572- 'File500' : {'mode' : '-r-x------' },
1573- 'File600' : {'mode' : '-rw-------' },
1574- 'File700' : {'mode' : '-rwx------' },
1531+ 'Dir000' : {'uid' : 270632 , 'gid' : 89939 , ' mode' : 'd---------' },
1532+ 'Dir001' : {'uid' : 270632 , 'gid' : 89939 , ' mode' : 'd--------x' },
1533+ 'Dir002' : {'uid' : 270632 , 'gid' : 89939 , ' mode' : 'd-------- -' },
1534+ 'Dir003' : {'uid' : 270632 , 'gid' : 89939 , ' mode' : 'd--------x ' },
1535+ 'Dir004' : {'uid' : 270632 , 'gid' : 89939 , ' mode' : 'd------r--' },
1536+ 'Dir005' : {'uid' : 270632 , 'gid' : 89939 , ' mode' : 'd------r-x' },
1537+ 'Dir006' : {'uid' : 270632 , 'gid' : 89939 , ' mode' : 'd------r- -' },
1538+ 'Dir007' : {'uid' : 270632 , 'gid' : 89939 , ' mode' : 'd------r-x ' },
1539+ 'Dir010' : {'uid' : 270632 , 'gid' : 89939 , ' mode' : 'd-----x---' },
1540+ 'Dir020' : {'uid' : 270632 , 'gid' : 89939 , ' mode' : 'd----- ----' },
1541+ 'Dir030' : {'uid' : 270632 , 'gid' : 89939 , ' mode' : 'd-----x ---' },
1542+ 'Dir040' : {'uid' : 270632 , 'gid' : 89939 , ' mode' : 'd---r-----' },
1543+ 'Dir050' : {'uid' : 270632 , 'gid' : 89939 , ' mode' : 'd---r-x---' },
1544+ 'Dir060' : {'uid' : 270632 , 'gid' : 89939 , ' mode' : 'd---r- ----' },
1545+ 'Dir070' : {'uid' : 270632 , 'gid' : 89939 , ' mode' : 'd---r-x ---' },
1546+ 'Dir100' : {'uid' : 270632 , 'gid' : 89939 , ' mode' : 'd--x------' },
1547+ 'Dir200' : {'uid' : 270632 , 'gid' : 89939 , ' mode' : 'd-w-------' },
1548+ 'Dir300' : {'uid' : 270632 , 'gid' : 89939 , ' mode' : 'd-wx------' },
1549+ 'Dir400' : {'uid' : 270632 , 'gid' : 89939 , ' mode' : 'dr--------' },
1550+ 'Dir500' : {'uid' : 270632 , 'gid' : 89939 , ' mode' : 'dr-x------' },
1551+ 'Dir600' : {'uid' : 270632 , 'gid' : 89939 , ' mode' : 'drw-------' },
1552+ 'Dir700' : {'uid' : 270632 , 'gid' : 89939 , ' mode' : 'drwx------' },
1553+ 'File000' : {'uid' : 270632 , 'gid' : 89939 , ' mode' : '----------' },
1554+ 'File001' : {'uid' : 270632 , 'gid' : 89939 , ' mode' : '---------x' },
1555+ 'File002' : {'uid' : 270632 , 'gid' : 89939 , ' mode' : '--------- -' },
1556+ 'File003' : {'uid' : 270632 , 'gid' : 89939 , ' mode' : '---------x ' },
1557+ 'File004' : {'uid' : 270632 , 'gid' : 89939 , ' mode' : '-------r--' },
1558+ 'File005' : {'uid' : 270632 , 'gid' : 89939 , ' mode' : '-------r-x' },
1559+ 'File006' : {'uid' : 270632 , 'gid' : 89939 , ' mode' : '-------r- -' },
1560+ 'File007' : {'uid' : 270632 , 'gid' : 89939 , ' mode' : '-------r-x ' },
1561+ 'File010' : {'uid' : 270632 , 'gid' : 89939 , ' mode' : '------x---' },
1562+ 'File020' : {'uid' : 270632 , 'gid' : 89939 , ' mode' : '------ ----' },
1563+ 'File030' : {'uid' : 270632 , 'gid' : 89939 , ' mode' : '------x ---' },
1564+ 'File040' : {'uid' : 270632 , 'gid' : 89939 , ' mode' : '----r-----' },
1565+ 'File050' : {'uid' : 270632 , 'gid' : 89939 , ' mode' : '----r-x---' },
1566+ 'File060' : {'uid' : 270632 , 'gid' : 89939 , ' mode' : '----r- ----' },
1567+ 'File070' : {'uid' : 270632 , 'gid' : 89939 , ' mode' : '----r-x ---' },
1568+ 'File100' : {'uid' : 270632 , 'gid' : 89939 , ' mode' : '---x------' },
1569+ 'File200' : {'uid' : 270632 , 'gid' : 89939 , ' mode' : '--w-------' },
1570+ 'File300' : {'uid' : 270632 , 'gid' : 89939 , ' mode' : '--wx------' },
1571+ 'File400' : {'uid' : 270632 , 'gid' : 89939 , ' mode' : '-r--------' },
1572+ 'File500' : {'uid' : 270632 , 'gid' : 89939 , ' mode' : '-r-x------' },
1573+ 'File600' : {'uid' : 270632 , 'gid' : 89939 , ' mode' : '-rw-------' },
1574+ 'File700' : {'uid' : 270632 , 'gid' : 89939 , ' mode' : '-rwx------' },
15751575 }
15761576
15771577 MountZipAndCheckTree (
@@ -1581,6 +1581,61 @@ def TestMasks():
15811581 options = ['-o' , 'default_permissions' ],
15821582 )
15831583
1584+ want_tree = {
1585+ '.' : {'ino' : 1 , 'mode' : 'drwxr-xr-x' , 'nlink' : 24 },
1586+ 'Dir000' : {'uid' : 270632 , 'gid' : 89939 , 'mode' : 'd---------' },
1587+ 'Dir001' : {'uid' : 270632 , 'gid' : 89939 , 'mode' : 'd--------x' },
1588+ 'Dir002' : {'uid' : 270632 , 'gid' : 89939 , 'mode' : 'd-------w-' },
1589+ 'Dir003' : {'uid' : 270632 , 'gid' : 89939 , 'mode' : 'd-------wx' },
1590+ 'Dir004' : {'uid' : 270632 , 'gid' : 89939 , 'mode' : 'd------r--' },
1591+ 'Dir005' : {'uid' : 270632 , 'gid' : 89939 , 'mode' : 'd------r-x' },
1592+ 'Dir006' : {'uid' : 270632 , 'gid' : 89939 , 'mode' : 'd------rw-' },
1593+ 'Dir007' : {'uid' : 270632 , 'gid' : 89939 , 'mode' : 'd------rwx' },
1594+ 'Dir010' : {'uid' : 270632 , 'gid' : 89939 , 'mode' : 'd-----x---' },
1595+ 'Dir020' : {'uid' : 270632 , 'gid' : 89939 , 'mode' : 'd----w----' },
1596+ 'Dir030' : {'uid' : 270632 , 'gid' : 89939 , 'mode' : 'd----wx---' },
1597+ 'Dir040' : {'uid' : 270632 , 'gid' : 89939 , 'mode' : 'd---r-----' },
1598+ 'Dir050' : {'uid' : 270632 , 'gid' : 89939 , 'mode' : 'd---r-x---' },
1599+ 'Dir060' : {'uid' : 270632 , 'gid' : 89939 , 'mode' : 'd---rw----' },
1600+ 'Dir070' : {'uid' : 270632 , 'gid' : 89939 , 'mode' : 'd---rwx---' },
1601+ 'Dir100' : {'uid' : 270632 , 'gid' : 89939 , 'mode' : 'd--x------' },
1602+ 'Dir200' : {'uid' : 270632 , 'gid' : 89939 , 'mode' : 'd-w-------' },
1603+ 'Dir300' : {'uid' : 270632 , 'gid' : 89939 , 'mode' : 'd-wx------' },
1604+ 'Dir400' : {'uid' : 270632 , 'gid' : 89939 , 'mode' : 'dr--------' },
1605+ 'Dir500' : {'uid' : 270632 , 'gid' : 89939 , 'mode' : 'dr-x------' },
1606+ 'Dir600' : {'uid' : 270632 , 'gid' : 89939 , 'mode' : 'drw-------' },
1607+ 'Dir700' : {'uid' : 270632 , 'gid' : 89939 , 'mode' : 'drwx------' },
1608+ 'File000' : {'uid' : 270632 , 'gid' : 89939 , 'mode' : '----------' },
1609+ 'File001' : {'uid' : 270632 , 'gid' : 89939 , 'mode' : '---------x' },
1610+ 'File002' : {'uid' : 270632 , 'gid' : 89939 , 'mode' : '--------w-' },
1611+ 'File003' : {'uid' : 270632 , 'gid' : 89939 , 'mode' : '--------wx' },
1612+ 'File004' : {'uid' : 270632 , 'gid' : 89939 , 'mode' : '-------r--' },
1613+ 'File005' : {'uid' : 270632 , 'gid' : 89939 , 'mode' : '-------r-x' },
1614+ 'File006' : {'uid' : 270632 , 'gid' : 89939 , 'mode' : '-------rw-' },
1615+ 'File007' : {'uid' : 270632 , 'gid' : 89939 , 'mode' : '-------rwx' },
1616+ 'File010' : {'uid' : 270632 , 'gid' : 89939 , 'mode' : '------x---' },
1617+ 'File020' : {'uid' : 270632 , 'gid' : 89939 , 'mode' : '-----w----' },
1618+ 'File030' : {'uid' : 270632 , 'gid' : 89939 , 'mode' : '-----wx---' },
1619+ 'File040' : {'uid' : 270632 , 'gid' : 89939 , 'mode' : '----r-----' },
1620+ 'File050' : {'uid' : 270632 , 'gid' : 89939 , 'mode' : '----r-x---' },
1621+ 'File060' : {'uid' : 270632 , 'gid' : 89939 , 'mode' : '----rw----' },
1622+ 'File070' : {'uid' : 270632 , 'gid' : 89939 , 'mode' : '----rwx---' },
1623+ 'File100' : {'uid' : 270632 , 'gid' : 89939 , 'mode' : '---x------' },
1624+ 'File200' : {'uid' : 270632 , 'gid' : 89939 , 'mode' : '--w-------' },
1625+ 'File300' : {'uid' : 270632 , 'gid' : 89939 , 'mode' : '--wx------' },
1626+ 'File400' : {'uid' : 270632 , 'gid' : 89939 , 'mode' : '-r--------' },
1627+ 'File500' : {'uid' : 270632 , 'gid' : 89939 , 'mode' : '-r-x------' },
1628+ 'File600' : {'uid' : 270632 , 'gid' : 89939 , 'mode' : '-rw-------' },
1629+ 'File700' : {'uid' : 270632 , 'gid' : 89939 , 'mode' : '-rwx------' },
1630+ }
1631+
1632+ MountZipAndCheckTree (
1633+ 'permissions.zip' ,
1634+ want_tree ,
1635+ use_md5 = False ,
1636+ options = ['-o' , 'default_permissions,dmask=0,fmask=0' ],
1637+ )
1638+
15841639
15851640# Tests the ZIP with lots of files.
15861641def TestZipWithManyFiles ():
@@ -2387,6 +2442,105 @@ def TestZipWithSpecialFiles():
23872442 )
23882443
23892444 # Tests -o default_permissions
2445+ want_tree = {
2446+ '.' : {'ino' : 1 , 'mode' : 'drwxr-xr-x' , 'nlink' : 2 },
2447+ 'z-hardlink2' : {
2448+ 'mode' : '-rw-r--r--' ,
2449+ 'uid' : 1000 ,
2450+ 'gid' : 1000 ,
2451+ 'nlink' : 3 ,
2452+ 'size' : 32 ,
2453+ 'md5' : '456e611a5420b7dd09bae143a7b2deb0' ,
2454+ },
2455+ 'z-hardlink1' : {
2456+ 'mode' : '-rw-r--r--' ,
2457+ 'uid' : 1000 ,
2458+ 'gid' : 1000 ,
2459+ 'nlink' : 3 ,
2460+ 'size' : 32 ,
2461+ 'md5' : '456e611a5420b7dd09bae143a7b2deb0' ,
2462+ },
2463+ 'z-hardlink-symlink' : {
2464+ 'mode' : 'lrwxrwxrwx' ,
2465+ 'uid' : 1000 ,
2466+ 'gid' : 1000 ,
2467+ 'target' : 'regular' ,
2468+ },
2469+ 'symlink' : {
2470+ 'mode' : 'lrwxrwxrwx' ,
2471+ 'uid' : 1000 ,
2472+ 'gid' : 1000 ,
2473+ 'target' : 'regular' ,
2474+ },
2475+ 'z-hardlink-socket' : {
2476+ 'mode' : 'srw-------' ,
2477+ 'uid' : 1000 ,
2478+ 'gid' : 1000 ,
2479+ },
2480+ 'z-hardlink-fifo' : {
2481+ 'mode' : 'prw-r--r--' ,
2482+ 'uid' : 1000 ,
2483+ 'gid' : 1000 ,
2484+ },
2485+ 'z-hardlink-char' : {
2486+ 'mode' : 'crw-------' ,
2487+ 'uid' : 0 ,
2488+ 'gid' : 5 ,
2489+ 'rdev' : 1024 ,
2490+ },
2491+ 'z-hardlink-block' : {
2492+ 'mode' : 'brw-r-----' ,
2493+ 'uid' : 0 ,
2494+ 'gid' : 6 ,
2495+ 'rdev' : 2049 ,
2496+ },
2497+ 'symlink2' : {
2498+ 'mode' : 'lrwxrwxrwx' ,
2499+ 'target' : 'regular' ,
2500+ 'uid' : 1000 ,
2501+ 'gid' : 1000 ,
2502+ },
2503+ 'socket' : {
2504+ 'mode' : 'srw-------' ,
2505+ 'uid' : 1000 ,
2506+ 'gid' : 1000 ,
2507+ },
2508+ 'regular' : {
2509+ 'mode' : '-rw-r--r--' ,
2510+ 'uid' : 1000 ,
2511+ 'gid' : 1000 ,
2512+ 'nlink' : 3 ,
2513+ 'size' : 32 ,
2514+ 'md5' : '456e611a5420b7dd09bae143a7b2deb0' ,
2515+ },
2516+ 'fifo' : {
2517+ 'mode' : 'prw-r--r--' ,
2518+ 'uid' : 1000 ,
2519+ 'gid' : 1000 ,
2520+ },
2521+ 'char' : {
2522+ 'mode' : 'crw-------' ,
2523+ 'uid' : 0 ,
2524+ 'gid' : 5 ,
2525+ 'rdev' : 1024 ,
2526+ },
2527+ 'block' : {
2528+ 'mode' : 'brw-r-----' ,
2529+ 'uid' : 0 ,
2530+ 'gid' : 6 ,
2531+ 'rdev' : 2049 ,
2532+ },
2533+ }
2534+
2535+ MountZipAndCheckTree (
2536+ zip_name ,
2537+ want_tree ,
2538+ want_blocks = 19 ,
2539+ want_inodes = 15 ,
2540+ options = ['-o' , 'default_permissions' ],
2541+ )
2542+
2543+ # Tests -o default_permissions,fmask=0
23902544 want_tree = {
23912545 '.' : {'ino' : 1 , 'mode' : 'drwxr-xr-x' , 'nlink' : 2 },
23922546 'z-hardlink2' : {
@@ -2482,7 +2636,7 @@ def TestZipWithSpecialFiles():
24822636 want_tree ,
24832637 want_blocks = 19 ,
24842638 want_inodes = 15 ,
2485- options = ['-o' , 'default_permissions' ],
2639+ options = ['-o' , 'default_permissions,fmask=0 ' ],
24862640 )
24872641
24882642
0 commit comments