mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 13:12:46 +00:00 
			
		
		
		
	Tests: Prefer TRY_OR_FAIL() and MUST() over EXPECT(!.is_error())
Note that in some cases (in particular SQL::Result and PDFErrorOr), there is no Formatter defined for the error type, hence TRY_OR_FAIL cannot work as-is. Furthermore, this commit leaves untouched the places where MUST could be replaced by TRY_OR_FAIL. Inspired by: https://github.com/SerenityOS/serenity/pull/18710#discussion_r1186892445
This commit is contained in:
		
							parent
							
								
									87a7299078
								
							
						
					
					
						commit
						f890b70eae
					
				
					 23 changed files with 415 additions and 742 deletions
				
			
		|  | @ -9,106 +9,96 @@ | |||
| 
 | ||||
| TEST_CASE(file_permission_mask_from_symbolic_notation) | ||||
| { | ||||
|     auto mask = Core::FilePermissionsMask::from_symbolic_notation(""sv); | ||||
|     EXPECT(!mask.is_error()); | ||||
|     EXPECT_EQ(mask.value().clear_mask(), 0); | ||||
|     EXPECT_EQ(mask.value().write_mask(), 0); | ||||
|     EXPECT_EQ(mask.value().apply(0), 0); | ||||
|     EXPECT_EQ(mask.value().apply(0664), 0664); | ||||
|     auto mask = TRY_OR_FAIL(Core::FilePermissionsMask::from_symbolic_notation(""sv)); | ||||
|     EXPECT_EQ(mask.clear_mask(), 0); | ||||
|     EXPECT_EQ(mask.write_mask(), 0); | ||||
|     EXPECT_EQ(mask.apply(0), 0); | ||||
|     EXPECT_EQ(mask.apply(0664), 0664); | ||||
| 
 | ||||
|     mask = Core::FilePermissionsMask::from_symbolic_notation("u+rwx"sv); | ||||
|     EXPECT(!mask.is_error()); | ||||
|     EXPECT_EQ(mask.value().clear_mask(), 0); | ||||
|     EXPECT_EQ(mask.value().write_mask(), 0700); | ||||
|     EXPECT_EQ(mask.value().apply(0), 0700); | ||||
|     EXPECT_EQ(mask.value().apply(0664), 0764); | ||||
|     mask = TRY_OR_FAIL(Core::FilePermissionsMask::from_symbolic_notation("u+rwx"sv)); | ||||
|     EXPECT_EQ(mask.clear_mask(), 0); | ||||
|     EXPECT_EQ(mask.write_mask(), 0700); | ||||
|     EXPECT_EQ(mask.apply(0), 0700); | ||||
|     EXPECT_EQ(mask.apply(0664), 0764); | ||||
| 
 | ||||
|     mask = Core::FilePermissionsMask::from_symbolic_notation("g+rwx"sv); | ||||
|     EXPECT(!mask.is_error()); | ||||
|     EXPECT_EQ(mask.value().clear_mask(), 0); | ||||
|     EXPECT_EQ(mask.value().write_mask(), 0070); | ||||
|     EXPECT_EQ(mask.value().apply(0), 0070); | ||||
|     EXPECT_EQ(mask.value().apply(0664), 0674); | ||||
|     mask = TRY_OR_FAIL(Core::FilePermissionsMask::from_symbolic_notation("g+rwx"sv)); | ||||
|     EXPECT_EQ(mask.clear_mask(), 0); | ||||
|     EXPECT_EQ(mask.write_mask(), 0070); | ||||
|     EXPECT_EQ(mask.apply(0), 0070); | ||||
|     EXPECT_EQ(mask.apply(0664), 0674); | ||||
| 
 | ||||
|     mask = Core::FilePermissionsMask::from_symbolic_notation("o+rwx"sv); | ||||
|     EXPECT(!mask.is_error()); | ||||
|     EXPECT_EQ(mask.value().clear_mask(), 0); | ||||
|     EXPECT_EQ(mask.value().write_mask(), 0007); | ||||
|     EXPECT_EQ(mask.value().apply(0), 0007); | ||||
|     EXPECT_EQ(mask.value().apply(0664), 0667); | ||||
|     mask = TRY_OR_FAIL(Core::FilePermissionsMask::from_symbolic_notation("o+rwx"sv)); | ||||
|     EXPECT_EQ(mask.clear_mask(), 0); | ||||
|     EXPECT_EQ(mask.write_mask(), 0007); | ||||
|     EXPECT_EQ(mask.apply(0), 0007); | ||||
|     EXPECT_EQ(mask.apply(0664), 0667); | ||||
| 
 | ||||
|     mask = Core::FilePermissionsMask::from_symbolic_notation("a=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 = TRY_OR_FAIL(Core::FilePermissionsMask::from_symbolic_notation("a=rx"sv)); | ||||
|     EXPECT_EQ(mask.clear_mask(), 0777); | ||||
|     EXPECT_EQ(mask.write_mask(), 0555); | ||||
|     EXPECT_EQ(mask.apply(0), 0555); | ||||
|     EXPECT_EQ(mask.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 = TRY_OR_FAIL(Core::FilePermissionsMask::from_symbolic_notation("ugo=rx"sv)); | ||||
|     EXPECT_EQ(mask.clear_mask(), 0777); | ||||
|     EXPECT_EQ(mask.write_mask(), 0555); | ||||
|     EXPECT_EQ(mask.apply(0), 0555); | ||||
|     EXPECT_EQ(mask.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); | ||||
|     EXPECT_EQ(mask.value().write_mask(), 0650); | ||||
|     EXPECT_EQ(mask.value().apply(0), 0650); | ||||
|     EXPECT_EQ(mask.value().apply(0177), 0750); | ||||
|     mask = TRY_OR_FAIL(Core::FilePermissionsMask::from_symbolic_notation("u+rw,g=rx,o-rwx"sv)); | ||||
|     EXPECT_EQ(mask.clear_mask(), 0077); | ||||
|     EXPECT_EQ(mask.write_mask(), 0650); | ||||
|     EXPECT_EQ(mask.apply(0), 0650); | ||||
|     EXPECT_EQ(mask.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 = TRY_OR_FAIL(Core::FilePermissionsMask::from_symbolic_notation("+r"sv)); | ||||
|     EXPECT_EQ(mask.clear_mask(), 0); | ||||
|     EXPECT_EQ(mask.write_mask(), 0444); | ||||
|     EXPECT_EQ(mask.apply(0), 0444); | ||||
|     EXPECT_EQ(mask.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 = TRY_OR_FAIL(Core::FilePermissionsMask::from_symbolic_notation("=rx"sv)); | ||||
|     EXPECT_EQ(mask.clear_mask(), 0777); | ||||
|     EXPECT_EQ(mask.write_mask(), 0555); | ||||
|     EXPECT_EQ(mask.apply(0), 0555); | ||||
|     EXPECT_EQ(mask.apply(0664), 0555); | ||||
| 
 | ||||
|     mask = Core::FilePermissionsMask::from_symbolic_notation("a+X"sv); | ||||
|     EXPECT(!mask.is_error()); | ||||
|     EXPECT_EQ(mask.value().clear_mask(), 0); | ||||
|     EXPECT_EQ(mask.value().write_mask(), 0); | ||||
|     EXPECT_EQ(mask.value().directory_or_executable_mask().clear_mask(), 0); | ||||
|     EXPECT_EQ(mask.value().directory_or_executable_mask().write_mask(), 0111); | ||||
|     EXPECT_EQ(mask.value().apply(0), 0); | ||||
|     EXPECT_EQ(mask.value().apply(0100), 0111); | ||||
|     EXPECT_EQ(mask.value().apply(S_IFDIR | 0), S_IFDIR | 0111); | ||||
|     mask = TRY_OR_FAIL(Core::FilePermissionsMask::from_symbolic_notation("a+X"sv)); | ||||
|     EXPECT_EQ(mask.clear_mask(), 0); | ||||
|     EXPECT_EQ(mask.write_mask(), 0); | ||||
|     EXPECT_EQ(mask.directory_or_executable_mask().clear_mask(), 0); | ||||
|     EXPECT_EQ(mask.directory_or_executable_mask().write_mask(), 0111); | ||||
|     EXPECT_EQ(mask.apply(0), 0); | ||||
|     EXPECT_EQ(mask.apply(0100), 0111); | ||||
|     EXPECT_EQ(mask.apply(S_IFDIR | 0), S_IFDIR | 0111); | ||||
| 
 | ||||
|     mask = Core::FilePermissionsMask::from_symbolic_notation("z+rw"sv); | ||||
|     EXPECT(mask.is_error()); | ||||
|     EXPECT(mask.error().string_literal().starts_with("invalid class"sv)); | ||||
|     auto mask_error = Core::FilePermissionsMask::from_symbolic_notation("z+rw"sv); | ||||
|     EXPECT(mask_error.is_error()); | ||||
|     EXPECT(mask_error.error().string_literal().starts_with("invalid class"sv)); | ||||
| 
 | ||||
|     mask = Core::FilePermissionsMask::from_symbolic_notation("u*rw"sv); | ||||
|     EXPECT(mask.is_error()); | ||||
|     EXPECT(mask.error().string_literal().starts_with("invalid operation"sv)); | ||||
|     mask_error = Core::FilePermissionsMask::from_symbolic_notation("u*rw"sv); | ||||
|     EXPECT(mask_error.is_error()); | ||||
|     EXPECT(mask_error.error().string_literal().starts_with("invalid operation"sv)); | ||||
| 
 | ||||
|     mask = Core::FilePermissionsMask::from_symbolic_notation("u+rz"sv); | ||||
|     EXPECT(mask.is_error()); | ||||
|     EXPECT(mask.error().string_literal().starts_with("invalid symbolic permission"sv)); | ||||
|     mask_error = Core::FilePermissionsMask::from_symbolic_notation("u+rz"sv); | ||||
|     EXPECT(mask_error.is_error()); | ||||
|     EXPECT(mask_error.error().string_literal().starts_with("invalid symbolic permission"sv)); | ||||
| 
 | ||||
|     mask = Core::FilePermissionsMask::from_symbolic_notation("u+rw;g+rw"sv); | ||||
|     EXPECT(mask.is_error()); | ||||
|     EXPECT(mask.error().string_literal().starts_with("invalid symbolic permission"sv)); | ||||
|     mask_error = Core::FilePermissionsMask::from_symbolic_notation("u+rw;g+rw"sv); | ||||
|     EXPECT(mask_error.is_error()); | ||||
|     EXPECT(mask_error.error().string_literal().starts_with("invalid symbolic permission"sv)); | ||||
| } | ||||
| 
 | ||||
| TEST_CASE(file_permission_mask_parse) | ||||
| { | ||||
|     auto numeric_mask = Core::FilePermissionsMask::parse("750"sv); | ||||
|     auto symbolic_mask = Core::FilePermissionsMask::parse("u=rwx,g=rx,o-rwx"sv); | ||||
|     auto numeric_mask = TRY_OR_FAIL(Core::FilePermissionsMask::parse("750"sv)); | ||||
|     auto symbolic_mask = TRY_OR_FAIL(Core::FilePermissionsMask::parse("u=rwx,g=rx,o-rwx"sv)); | ||||
| 
 | ||||
|     EXPECT_EQ(numeric_mask.value().apply(0), 0750); | ||||
|     EXPECT_EQ(symbolic_mask.value().apply(0), 0750); | ||||
|     EXPECT_EQ(numeric_mask.apply(0), 0750); | ||||
|     EXPECT_EQ(symbolic_mask.apply(0), 0750); | ||||
| 
 | ||||
|     EXPECT_EQ(numeric_mask.value().clear_mask(), symbolic_mask.value().clear_mask()); | ||||
|     EXPECT_EQ(numeric_mask.value().write_mask(), symbolic_mask.value().write_mask()); | ||||
|     EXPECT_EQ(numeric_mask.clear_mask(), symbolic_mask.clear_mask()); | ||||
|     EXPECT_EQ(numeric_mask.write_mask(), symbolic_mask.write_mask()); | ||||
| 
 | ||||
|     auto mask = Core::FilePermissionsMask::parse("888"sv); | ||||
|     EXPECT(mask.is_error()); | ||||
|  | @ -120,20 +110,17 @@ TEST_CASE(file_permission_mask_parse) | |||
| TEST_CASE(numeric_mask_special_bits) | ||||
| { | ||||
|     { | ||||
|         auto mask = Core::FilePermissionsMask::parse("750"sv); | ||||
|         EXPECT(!mask.is_error()); | ||||
|         EXPECT_EQ(mask.value().apply(07000), 07750); | ||||
|         auto mask = TRY_OR_FAIL(Core::FilePermissionsMask::parse("750"sv)); | ||||
|         EXPECT_EQ(mask.apply(07000), 07750); | ||||
|     } | ||||
| 
 | ||||
|     { | ||||
|         auto mask = Core::FilePermissionsMask::parse("7750"sv); | ||||
|         EXPECT(!mask.is_error()); | ||||
|         EXPECT_EQ(mask.value().apply(0), 07750); | ||||
|         auto mask = TRY_OR_FAIL(Core::FilePermissionsMask::parse("7750"sv)); | ||||
|         EXPECT_EQ(mask.apply(0), 07750); | ||||
|     } | ||||
| 
 | ||||
|     { | ||||
|         auto mask = Core::FilePermissionsMask::parse("0750"sv); | ||||
|         EXPECT(!mask.is_error()); | ||||
|         EXPECT_EQ(mask.value().apply(07000), 0750); | ||||
|         auto mask = TRY_OR_FAIL(Core::FilePermissionsMask::parse("0750"sv)); | ||||
|         EXPECT_EQ(mask.apply(07000), 0750); | ||||
|     } | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Ben Wiederhake
						Ben Wiederhake