@@ -963,6 +963,33 @@ TEST(Error, FileErrorTest) {
963
963
});
964
964
}
965
965
966
+ TEST (Error, FileErrorErrorCode) {
967
+ for (std::error_code EC : {
968
+ make_error_code (std::errc::not_supported),
969
+ make_error_code (std::errc::invalid_argument),
970
+ make_error_code (std::errc::no_such_file_or_directory),
971
+ }) {
972
+ EXPECT_EQ (EC, errorToErrorCode (
973
+ createFileError (" file.bin" , EC)));
974
+ EXPECT_EQ (EC, errorToErrorCode (
975
+ createFileError (" file.bin" , /* Line=*/ 5 , EC)));
976
+ EXPECT_EQ (EC, errorToErrorCode (
977
+ createFileError (" file.bin" , errorCodeToError (EC))));
978
+ EXPECT_EQ (EC, errorToErrorCode (
979
+ createFileError (" file.bin" , /* Line=*/ 5 , errorCodeToError (EC))));
980
+ }
981
+
982
+ // inconvertibleErrorCode() should be wrapped to avoid a fatal error.
983
+ EXPECT_EQ (
984
+ " A file error occurred." ,
985
+ errorToErrorCode (createFileError (" file.bin" , inconvertibleErrorCode ()))
986
+ .message ());
987
+ EXPECT_EQ (
988
+ " A file error occurred." ,
989
+ errorToErrorCode (createFileError (" file.bin" , /* Line=*/ 5 , inconvertibleErrorCode ()))
990
+ .message ());
991
+ }
992
+
966
993
enum class test_error_code {
967
994
unspecified = 1 ,
968
995
error_1,
0 commit comments