mirror of
https://github.com/fergalmoran/ladybird.git
synced 2026-01-06 16:45:03 +00:00
LibCore: Restore support for multiple symbolic classes
Reverts recent change introduced to support implicit symbolic permission which broke the parser when multiple classes are specified. The state machine must assume it's dealing with classes until an operation character is consumed.
This commit is contained in:
committed by
Brian Gianforcaro
parent
c839ff574a
commit
30f58de800
@@ -44,6 +44,13 @@ TEST_CASE(file_permission_mask_from_symbolic_notation)
|
||||
EXPECT_EQ(mask.value().apply(0), 0555);
|
||||
EXPECT_EQ(mask.value().apply(0664), 0555);
|
||||
|
||||
mask = Core::FilePermissionsMask::from_symbolic_notation("ugo=rx"sv);
|
||||
EXPECT(!mask.is_error());
|
||||
EXPECT_EQ(mask.value().clear_mask(), 0777);
|
||||
EXPECT_EQ(mask.value().write_mask(), 0555);
|
||||
EXPECT_EQ(mask.value().apply(0), 0555);
|
||||
EXPECT_EQ(mask.value().apply(0664), 0555);
|
||||
|
||||
mask = Core::FilePermissionsMask::from_symbolic_notation("u+rw,g=rx,o-rwx"sv);
|
||||
EXPECT(!mask.is_error());
|
||||
EXPECT_EQ(mask.value().clear_mask(), 0077);
|
||||
@@ -51,6 +58,20 @@ TEST_CASE(file_permission_mask_from_symbolic_notation)
|
||||
EXPECT_EQ(mask.value().apply(0), 0650);
|
||||
EXPECT_EQ(mask.value().apply(0177), 0750);
|
||||
|
||||
mask = Core::FilePermissionsMask::from_symbolic_notation("+r"sv);
|
||||
EXPECT(!mask.is_error());
|
||||
EXPECT_EQ(mask.value().clear_mask(), 0);
|
||||
EXPECT_EQ(mask.value().write_mask(), 0444);
|
||||
EXPECT_EQ(mask.value().apply(0), 0444);
|
||||
EXPECT_EQ(mask.value().apply(0123), 0567);
|
||||
|
||||
mask = Core::FilePermissionsMask::from_symbolic_notation("=rx"sv);
|
||||
EXPECT(!mask.is_error());
|
||||
EXPECT_EQ(mask.value().clear_mask(), 0777);
|
||||
EXPECT_EQ(mask.value().write_mask(), 0555);
|
||||
EXPECT_EQ(mask.value().apply(0), 0555);
|
||||
EXPECT_EQ(mask.value().apply(0664), 0555);
|
||||
|
||||
mask = Core::FilePermissionsMask::from_symbolic_notation("z+rw"sv);
|
||||
EXPECT(mask.is_error());
|
||||
|
||||
|
||||
Reference in New Issue
Block a user